出力インテントは、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プロファイルレジストリ(英語版)からダウンロードできます。