DioDocs for PDF
ドキュメント
機能 > ドキュメント
このトピックの内容:

コンテンツとは別に、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 プロパティを使用して、ドキュメントをビューワで開く際にどのように表示するかを指定できます。このプロパティを使用すると、テキストを読む順、このファイルの印刷ダイアログが開かれたときの印刷部数などを設定できます。

DocumentProperties

ドキュメントプロパティの取得

特定の PDF ドキュメントからドキュメントプロパティを取得するには

  1. GcPdfDocument クラスのオブジェクトを作成します。
  2. Load メソッドを使用して、既存の PDF ファイルをロードします。
  3. GcPdfDocument オブジェクトを使用して、PDF ファイルのドキュメントプロパティを取得します。
C#
コードのコピー
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 ドキュメントの生成中にドキュメントプロパティを設定するには

  1. GcPdfDocument クラスのオブジェクトを作成します。
  2. 作成したオブジェクトを使用して、ドキュメントプロパティを設定します。
C#
コードのコピー
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 = "GrapeCity 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);
}
先頭に戻る

ドキュメントサイズの最適化

GcPdfDocument クラスの RemoveDuplicateImages メソッドを使用して、ドキュメントのサイズを効率的に縮小できます。このメソッドは、ドキュメント内にある同一画像の重複インスタンスを排除し、1つのインスタンスのみを複数の場所で保持します。これにより、ドキュメントのサイズが縮小されます。

次のサンプルコードは、RemoveDuplicateImages メソッドを使用してドキュメントのファイルサイズを最適化する方法を示します。

C#
コードのコピー
// GcPDFDocumentを初期化します
GcPdfDocument doc = new GcPdfDocument();

// ファイル ストリームで PDF ドキュメントを開きます
FileStream fs = File.OpenRead("Invoice.pdf");

// ドキュメントをロードします
doc.Load(fs);

// 重複画像を削除します
doc.RemoveDuplicateImages();

// PDF ドキュメントを保存します
doc.Save("RemovedDuplicateImages.pdf");
メモ: 結合された PDF ドキュメントのファイルサイズを最適化することもできます。詳細については、 「結合されたドキュメントから重複画像を削除する」を参照してください。

先頭に戻る

ドキュメントの結合

2つのPDFドキュメントを1つのドキュメントに結合するには、GcPdfDocument クラスの MergeWithDocument メソッドを使用します。

C#
コードのコピー
//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");
メモ: ClonePage メソッドを使用して、指定されたインデックスから PDF ファイル内の特定のページを複製し、同じ PDF ファイルの指定されたインデックスに挿入することもできます。 ページの複製の詳細については、「ページの複製」を参照してください。

先頭に戻る

結合されたドキュメントから複製画像の削除

MergeDocumentOptions クラスの RemoveDuplicateImages プロパティを使用して、PDFドキュメントを結合する際に同一画像の重複インスタンスを削除できます。重複インスタンスを削除することで、結合されたPDFドキュメントのサイズを縮小できます。RemoveDuplicateImages プロパティのデフォルト値は false です。

RemoveDuplicateImages プロパティは 、RemoveDuplicateImages メソッドを呼び出し、結合中に重複インスタンスをスキャンするため、結合のパフォーマンスに影響します。これを避けるには、まずドキュメントを結合してから、RemoveDuplicateImages メソッドを使用して同じ画像の重複インスタンスを削除できます。詳細については、「ドキュメントサイズの最適化」を参照してください。

次のサンプルコードは、RemoveDuplicateImagesメソッドを使用して結合されたPDFドキュメントから同じ画像の重複インスタンスを削除する方法を示します。

C#
コードのコピー
// 最初の 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メソッドを使用してそのコンテンツを削除します。墨消し注釈の適用方法の詳細については、注釈の種類を参照してください。