ドキュメントの各ページは、ページのコンテンツなどの属性の参照を含むページオブジェクトとして表されます。DioDocs for PDF の GrapeCity.Documents.Pdf アセンブリに保持されている Page クラスを使用して、ページを操作することができます。Page クラスは、GcPdfDocument 内の 1 つのページを表します。最初に、NewPage メソッドを使用して、PDF ドキュメントにページを追加する必要があります。新しく作成されたページは、ドキュメントのページのコレクションであるページコレクションに追加されます。このコレクションを使用して、要素(ページ)の追加、挿入、削除、移動などの標準的なコレクション操作を実行することができます。これらのページは、PDF ドキュメントの作成中に、ページごとに次のページプロパティを使用して変更できます。
PDF ドキュメントに空白のページを挿入するには
Page.cs |
コードのコピー
|
---|---|
GcPdfDocument doc = new GcPdfDocument(); // 空白のページを挿入します var page = doc.NewPage(); |
ドキュメントから特定のページを取得するには
Page.cs |
コードのコピー
|
---|---|
// FileStreamを使用して既存のPDFをロードします FileStream fileStream = File.OpenRead(args[0].ToString()); GcPdfDocument doc = new GcPdfDocument(); doc.Load(fileStream, null); // ページのプロパティを取得するには、PageCollectionオブジェクトを使用します PageCollection pageCollection = doc.Pages; // ページの所有者を取得します Console.WriteLine("ページの所有者: {0}", pageCollection[0].Owner); |
ページプロパティを取得するには
C# |
コードのコピー
|
---|---|
// FileStreamを使用して既存のPDFをロードします FileStream fileStream = File.OpenRead(args[0].ToString()); GcPdfDocument doc = new GcPdfDocument(); var page = doc.NewPage(); doc.Load(fileStream, null); // 特定のページを取得するには、PageCollectionオブジェクトを使用します PageCollection pageCollection = doc.Pages; // 最初のページのサイズを取得します Console.WriteLine("用紙サイズ: {0}", pageCollection[0].Size); |
ページプロパティを設定するには
C# |
コードのコピー
|
---|---|
GcPdfDocument doc = new GcPdfDocument(); // 空白のページを挿入します var page = doc.NewPage(); // ページのプロパティを設定します page.Rotate = 90; |
ドキュメントで新しいページサイズと向きを設定するには
PageSize.cs |
コードのコピー
|
---|---|
var doc = new GcPdfDocument(); // デフォルトのページサイズは縦向きのLetter(8 1/2"x 11")です var page = doc.NewPage(); // ページサイズと方向を変更します page.PaperKind = PaperKind.A4; page.Landscape = true; |
DioDocs for PDF では、PDFドキュメント内のページを識別するためにページ番号だけでなく、重要な説明を持つページラベルを定義することもできます。ページラベルを使用して、ドキュメントを論理的に関連した一連のページ範囲に分割できます。さらに、1つのPDFドキュメントに交差しない複数のページラベルの範囲を追加することもできます。本機能は、PDFドキュメントに序文、謝辞、本文、索引などのさまざまなセクションが含まれている場合に役立ちます。
DioDocs for PDF の PageLabelingRange クラスは、範囲に対してページ番号のスタイルとその範囲を表す有意義なプレフィックスを定義するページラベルの範囲を示します。PDFドキュメントにページラベルを追加するには、GcPdfDocument クラスの PageLabelingRanges プロパティを使用します。
C# |
コードのコピー
|
---|---|
public void CreatePDF() { //GcPdfDocumentを初期化します var doc = new GcPdfDocument(); //テキストレイアウトを定義します var tl = new TextLayout(72); tl.MaxWidth = doc.PageSize.Width; tl.MaxHeight = doc.PageSize.Height; TextSplitOptions to = new TextSplitOptions(tl) { MinLinesInFirstParagraph = 2, MinLinesInLastParagraph = 2 }; doc.Pages.Add(); //ドキュメントにランダムなテキストを生成します doc.Pages.Last.Graphics.DrawTextLayout(tl, PointF.Empty); tl.Clear(); tl.Append(Common.Util.LoremIpsum(17)); tl.PerformLayout(true); //ランダムなテキストを印刷します while (true) { var splitResult = tl.Split(to, out TextLayout rest); doc.Pages.Last.Graphics.DrawTextLayout(tl, PointF.Empty); if (splitResult != SplitResult.Split) break; tl = rest; var p = doc.Pages.Add(); } //コンテンツページに対してPageLabelingRangeを定義します //PageLabelingRangeはNumberingStyleのDecimalArabicを使用し、ページラベルのプレフィックスとして //「Content Page, p. 」を使用します doc.PageLabelingRanges.Add(2, new PageLabelingRange($"Content Page, p. ", NumberingStyle.DecimalArabic, 1)); // 完了 doc.Save("NewPageLabel.pdf"); } |
ContentStream オブジェクトは、ページ内にレンダリングされるグラフィカルな要素を記述する一連のインストラクションが含まれています。ContentStream は、1 つの PDF ドキュメント内で複数のグラフィック要素を使用する際に便利な機能です。PDF ドキュメントに追加されたすべてのコンテンツストリームは PageContentStreamCollection に格納されます。このクラスにアクセスして、項目をコンテンツストリームに追加したり、削除することができます。
ページでコンテンツストリームを使用するには
C# |
コードのコピー
|
---|---|
public void CreatePDF(Stream stream) { GcPdfDocument doc = new GcPdfDocument(); var page = doc.NewPage(); var g = page.Graphics; const float In = 72; var tf = new TextFormat() { Font = StandardFonts.Times, FontSize = 12 }; // PageContentStreamオブジェクトを作成します PageContentStream contentStream = new PageContentStream(doc); // ContentStreamにグラフィックスを追加します contentStream.Doc.Pages[0].Graphics.DrawString( "1. サンプル文字列。", tf, new PointF(In, In)); // ドキュメントを保存します doc.Save(stream); } |
DioDocs for PDF を使用したページの実装の詳細については、DioDocs for PDF サンプルブラウザを参照してください。
DioDocs for PDF では、PageCollection クラスの ClonePage メソッドを使用して、PDF ファイルに指定されたインデックスから特定のページを複製し、同じ PDF ファイルの指定されたインデックスに挿入できます。ClonePage メソッドは、cloneAnnotations と cloneFields という 2 つの追加のブール型パラメータもサポートしています。これらのパラメータを使用して、ユーザーは複製されるページ上の注釈とフィールドの複製を許可または制限できます。
C# |
コードのコピー
|
---|---|
// GcPdfDocument を初期化します GcPdfDocument doc = new GcPdfDocument(); // ストリームから PDF ファイルをロードします var fs = new FileStream(Path.Combine("digital-signature-sample.pdf"), FileMode.Open, FileAccess.Read); doc.Load(fs); // ページのクローンをインデックス 0 に作成してインデックス 1 に挿入し、フィールドをコピーしますが、注釈はスキップします doc.Pages.ClonePage(0, 1, false, true); // PDF ドキュメントを保存します doc.Save("ClonePDFPageWithoutAnnotationsWithFields.pdf"); |
メモ:DioDocs for PDF の MergeWithDocument メソッドは、異なる PDF ファイル間でページをコピーします。 ドキュメントの結合の詳細については、「ドキュメントの結合」を参照してください。