[]
出力インテントは、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プロファイルを設定する方法を示します。
// 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で開き、 [編集]> [環境設定]> [ページ表示]の順に移動して、 [オーバープリントプレビューを使用]を[常時]に設定します。
| 「オーバープリントプレビューを使用」オプションの設定前 | 「オーバープリントプレビューを使用」オプションの設定後 |
|---|---|
![]() |
![]() |
type=note
メモ: 上記のコードで使用されるICCプロファイルは、ICCプロファイルレジストリ(英語版)からダウンロードできます。