DioDocs for PDF
出力インテント
機能 > 出力インテント

出力インテントは、PDFドキュメントが描画される出力デバイスのカラー特性を記述します。

GcPDFでは、OutputIntentsプロパティを使用して、GcPdfDocumentクラスの出力インテントを指定できます。OutputIntentクラスは、PDFの出力インテントを表し、出力インテントを作成するためにCreateメソッドを提供します。また、OutputIntentクラスのSubtypeプロパティを使用して、出力インテントのサブタイプを次のように設定できます。

出力インテントをICCプロファイルと組み合わせて使用することにより、ソースカラーを出力に必要なカラーに変換できます。ICCプロファイルは、PDF/A、PDF/X、およびPDF/VT規格で出力インテントを記述するために使用されます。DioDocs for PDFは、出力インテントを作成するために必要なICCプロファイルを表すICCProfileクラスを提供します。出力インテントの詳細については、PDF 1.7仕様(セクション14.11.5)を参照してください。

以下のコードは、PDFドキュメントに出力インテントとICCプロファイルを設定する方法を示します。

C#
コードのコピー
// ICCプローブプロファイルのさまざまなバージョン
var profiles = new (string, string)[] {
    ("Probev2_ICCv4.icc", @"https://www.color.org/probeprofile.xalter"),
    ("Probev1_ICCv4.icc", @"https://www.color.org/probeprofile.xalter"),
    ("Probev1_ICCv2.icc", @"https://www.color.org/probeprofile.xalter"),
};
           
var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;
var sb = new StringBuilder();
const string bullet = "\x2022\x2003";
sb.AppendLine("このドキュメントには、次の出力インテントが含まれます(最初のインテントがデフォルトです)。 ");
int i = 0;
foreach (var profile in profiles)
{
    sb.AppendLine($"{bullet}{profile.Item1}, ソース: {profile.Item2}");
    using (FileStream fs = File.OpenRead(Path.Combine("Resources", "Misc", profile.Item1)))
    {
        var oi = OutputIntent.Create($"Output intent testing {i++}", "", "http://www.color.org", profile.Item1, fs);
        doc.OutputIntents.Add(oi);
    }
}
var rc = Common.Util.AddNote(sb.ToString(), page);
g.DrawImage(Image.FromFile(Path.Combine("Resources", "Images", "roofs.jpg")),
    new RectangleF(rc.Left, rc.Bottom + 24, rc.Width, rc.Width), null, ImageAlign.StretchImage);
            
doc.Save(stream);

上記のコードでは、処理後に色が意図的に歪められたICCプローブプロファイルを使用しているので、プロファイルが使用されていることを視覚的に確認できます。PDFで効果を確認するには、PDFをAdobe Acrobat Reader DCで開き、 [編集]> [環境設定]> [ページ表示]の順に移動して、 [オーバープリントプレビューを使用]を[常時]に設定します。

「オーバープリントプレビューを使用」オプションの設定前 「オーバープリントプレビューを使用」オプションの設定後

メモ: 上記のコードで使用されるICCプロファイルは、ICCプロファイルレジストリ(英語版)からダウンロードできます。