[]
コンテンツとは別に、PDF ファイルにはいくつかの追加情報がドキュメントプロパティの形式で保持されます。これらのプロパティにより、ドキュメントのさまざまな属性がまとめて定義されます。
DioDocs for PDF では、次のドキュメントプロパティが GcPdfDocument クラスを通して提供されます。
圧縮
DioDocs for PDFでは、CompressionLevel プロパティを使用して、ドキュメントの元のファイルサイズを圧縮・縮小できます。圧縮レベルは Fastest、Nocompression、Optimal のいずれかを設定できます。デフォルトは、System.IO.Compression.CompressionLevel.Fastest です。
ドキュメント情報
DioDocs for PDF の DocumentInfo プロパティには、ドキュメントの識別に役立つ、タイトル、作成者、サブタイトルなどのドキュメント関する基本情報が含まれています。このデータが明示的に設定されない場合は、自動的に生成されます。
フォントの埋め込み
DioDocs for PDF の FontEmbedMode プロパティを使用して、フォントの埋め込みモードを設定することができます。デフォルトでは、いくつかのフォントサブセットがドキュメントに埋め込まれます。ただし、このプロパティを変更することで、フォント全体を埋め込んだり、フォントを埋め込まないように指定することができます。
メタデータ
DioDocs for PDF の Metadata プロパティを使用して、ドキュメントに関連付けられているメタデータを取得できます。キーワードや説明などのメタデータは、検索エンジンが検索条件を絞り込むために使用されます。このプロパティには、共同作成者、作成者、著作権、説明などへのアクセサが事前に定義されています。
アクション
DioDocs for PDF の OpenAction メソッドを使用して、ドキュメントを開く際に実行するアクションを指定する値を提供します。
Pdf バージョン
DioDocs for PDF の PdfVersion プロパティを使用して、選択したドキュメントの PDF バージョンを設定することができます。ドキュメントのバージョンは自動的に決定されますが、明示的に設定することもできます。
ビューワの設定
DioDocs for PDF の ViewerPreferences プロパティを使用して、ドキュメントをビューワで開く際にどのように表示するかを指定できます。このプロパティを使用すると、テキストを読む順、このファイルの印刷ダイアログが開かれたときの印刷部数などを設定できます。

特定の PDF ドキュメントからドキュメントプロパティを取得するには
GcPdfDocument クラスのオブジェクトを作成します。
Load メソッドを使用して、既存の PDF ファイルをロードします。
GcPdfDocument オブジェクトを使用して、PDF ファイルのドキュメントプロパティを取得します。
static void Main(string[] args)
{
// FileStreamを使用して既存のPDFをロードします
FileStream fileStream = File.OpenRead(args[0].ToString());
GcPdfDocument doc = new GcPdfDocument();
doc.Load(fileStream, null);
// プロパティの値を取得して表示します
Console.WriteLine("このドキュメントの作成者は {0} です", doc.DocumentInfo.Author);
Console.WriteLine("このドキュメントのサブタイトルは {0} です", doc.DocumentInfo.Subject);
Console.WriteLine("このドキュメントのタイトルは {0} です", doc.DocumentInfo.Title);
}PDF ドキュメントの生成中にドキュメントプロパティを設定するには
GcPdfDocument クラスのオブジェクトを作成します。
作成したオブジェクトを使用して、ドキュメントプロパティを設定します。
public void PDFDoc(Stream stream)
{
const float In = 150;
// 新しいPDF文書を作成します
var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;
var tf = new TextFormat() { Font = StandardFonts.Times, FontSize = 12 };
// PDFのバージョンを指定します
doc.PdfVersion = "1.7";
doc.DocumentInfo.Title = "GcPdf Document Info Sample";
doc.DocumentInfo.Author = "John Doe";
doc.DocumentInfo.Subject = "GcPdfDocument.DocumentInfo";
doc.DocumentInfo.Producer = "GcPdfWeb Producer";
doc.DocumentInfo.Creator = "GcPdfWeb Creator";
// 作成日時を設定します
doc.DocumentInfo.CreationDate = DateTime.Today;
// ドキュメントメタデータは、GcPdfDocument.Metadataプロパティを介して利用できます
// これは、以下のようないくつかの事前定義されているアクセサを提供します
doc.Metadata.Contributors.Add("contributor 1");
doc.Metadata.Contributors.Add("contributor 2");
doc.Metadata.Copyright = "MESCIUS Inc.";
doc.Metadata.Creators.Add("作成者 1");
doc.Metadata.Creators.Add("作成者 2");
doc.Metadata.Description = "ドキュメントのサンプル説明";
doc.Metadata.Keywords.Add("キーワード1");
doc.Metadata.Keywords.Add("キーワード2");
doc.Metadata.Source = "Sourced by GcPdfWeb";
// 最後に、ドキュメントにテキストを追加してドキュメントを保存します
g.DrawString("1. テスト文字列。 これはサンプルテキストです。",tf, new PointF(In, In));
doc.Save(stream);
}2つのPDFドキュメントを1つのドキュメントに結合するには、GcPdfDocument クラスの MergeWithDocument メソッドを使用します。
//PDFを作成します
GcPdfDocument doc1 = new GcPdfDocument();
GcPdfGraphics g = doc1.NewPage().Graphics;
g.DrawString("Hello World!", new TextFormat() { Font = StandardFonts.Times,
FontSize = 12 }, new PointF(72, 72));
//2枚目のPDFを作成します
GcPdfDocument doc2 = new GcPdfDocument();
GcPdfGraphics g1 = doc2.NewPage().Graphics;
g1.DrawString("このPDFは別のPDFに結合されます。", new TextFormat()
{
Font = StandardFonts.Times, FontSize = 12
},
new PointF(72, 72));
//2つのドキュメントを結合します
doc1.MergeWithDocument(doc2, new MergeDocumentOptions());
doc1.Save("MergedDocument.pdf");!type=note
メモ: ClonePage メソッドを使用して、指定されたインデックスから PDF ファイル内の特定のページを複製し、同じ PDF ファイルの指定されたインデックスに挿入することもできます。 ページの複製の詳細については、「ページの複製」を参照してください。
MergeDocumentOptions クラスの RemoveDuplicateImages プロパティを使用して、PDFドキュメントを結合する際に同一画像の重複インスタンスを削除できます。重複インスタンスを削除することで、結合されたPDFドキュメントのサイズを縮小できます。RemoveDuplicateImages プロパティのデフォルト値は false です。
RemoveDuplicateImages プロパティは 、RemoveDuplicateImages メソッドを呼び出し、結合中に重複インスタンスをスキャンするため、結合のパフォーマンスに影響します。これを避けるには、まずドキュメントを結合してから、RemoveDuplicateImages メソッドを使用して同じ画像の重複インスタンスを削除できます。詳細については、「ドキュメントサイズの最適化」を参照してください。
次のサンプルコードは、RemoveDuplicateImagesメソッドを使用して結合されたPDFドキュメントから同じ画像の重複インスタンスを削除する方法を示します。
// 最初の PDF ドキュメントの GcPdfDocument を初期化します
GcPdfDocument doc1 = new GcPdfDocument();
// ファイルストリームで最初のPDFドキュメントを開きます
FileStream fs1 = File.OpenRead("Invoice_Jan.pdf");
// PDFドキュメントをロードします
doc1.Load(fs1);
// 2番目のPDFドキュメントの GcPdfDocument を初期化します
GcPdfDocument doc2 = new GcPdfDocument();
// ファイルストリームで2番目のPDFドキュメントを開きます
FileStream fs2 = File.OpenRead("Invoice_Feb.pdf");
// 2番目のPDFドキュメントをロードします
doc2.Load(fs2);
// PDFドキュメントを現在のドキュメントに結合します
doc1.MergeWithDocument(doc2);
// 重複画像を削除します
doc1.RemoveDuplicateImages();
// PDFドキュメントを保存します
doc1.Save("Merged.pdf");DioDocs for PDFに用意されたdocument.Redactメソッドにより、PDFドキュメントに墨消しを適用してドキュメントからコンテンツを削除できます。墨消しを適用するには、まずは、PDFドキュメントに削除対象のコンテンツを表す墨消し注釈を追加します。そして、document.Redactメソッドを使用してそのコンテンツを削除します。墨消し注釈の適用方法の詳細については、注釈の種類を参照してください。