ドキュメント管理

ドキュメント管理

ドキュメント管理

Document は Aspose.PDF FOSS for .NET のルートオブジェクトです。 それは
PDF ファイル全体を表し、ページ、メタデータ、フォームフィールド、そして他のすべての PDF 構造へのアクセスを提供します。
既存のファイルは Document.Open で開き、
Document コンストラクタで新しいものを作成します。


ドキュメントの開封と作成

// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));

// Open from a file path
using var doc2 = new Document("input.pdf");

// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");

ページの操作

PageCollection はドキュメントのページを管理します。1 ベースのインデックスでページにアクセスし、
新しいページを追加したり、既存のページを削除したりできます。

using var doc = Document.Open(pdfBytes);

// Access first page
var page = doc.Pages[1];

// Add a blank page
var newPage = doc.Pages.Add();

// Get page count
int count = doc.Pages.Count;

ページジオメトリ

各ページは複数のバウンディングボックスを定義します。Page のセッターメソッドを使用してそれらを調整してください。

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

ドキュメントの保存

ファイル パス、ストリーム、またはバイト配列に保存します。

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

ファイル添付

FileSpecification は PDF の埋め込みファイル添付を表します。

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

画像スタンプ

ImageStamp は、指定された位置にページ上のラスタ画像をオーバーレイします。

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

演算子コレクション

OperatorCollection は各ページで生のコンテンツストリーム演算子を保持します。低レベルのコンテンツ検査や操作に使用してください。

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

ヒントとベストプラクティス

  • Documentusing ステートメントでラップして、ファイルハンドルを速やかに解放します。
  • ファイルロックの問題を回避するため、インメモリ ワークフローでは Document.Open(byte[]) を使用します。
  • 正しい座標空間を確保するため、コンテンツを追加する前にページボックス(MediaBox、CropBox)を変更します。
  • すべての変更後に Save を一度だけ呼び出します — 繰り返し保存は遅くなりますが安全です。
  • すべてのページにわたるアノテーションをバッチ処理するには PageCollection.Accept(AnnotationSelector) を使用します。

一般的な問題

IssueCauseFix
Document.Open が有効な PDF で例外をスローファイルがパスワードで暗号化されているコンストラクタで password パラメータを指定する
構築後のページ数が 0新しい Document() は空の状態で開始するdoc.Pages.Add() を呼び出して空白ページを追加する
保存されたファイルが予想より大きい画像またはフォントが複数回埋め込まれている最適化を使用する(Conversion and Optimization guide 参照)
Pages[0] がインデックスエラーをスローページは 1 ベースで、0 ベースではない最初のページには Pages[1] を使用する

よくある質問

PDF ドキュメントを 2 つ結合するにはどうすればよいですか?

Facades API の PdfFileEditor.Concatenate を使用するか、PageCollection を使用して手動でページを別のドキュメントにコピーします。

URL またはストリームから PDF を開くことはできますか?

はい。URL のコンテンツをまず byte[] に読み込み、次にそれを
Document.Open(byte[])

ページを削除するにはどうすればよいですか?

doc.Pages.Delete(pageNumber) を呼び出すとき、pageNumber は 1 ベースです。

Document はスレッドセーフですか?

いいえ。各スレッドはそれぞれの Document インスタンスで動作すべきです。


API リファレンス概要

Class / MethodDescription
DocumentルートPDFオブジェクト; ページ、メタデータ、フォームフィールドを保持
Document.Openバイト配列からPDFを開くための静的ファクトリ
Document.Saveドキュメントをファイルまたはストリームにシリアライズ
Pageコンテンツ、注釈、ジオメトリを含む単一のPDFページ
Page.SetMediaBoxページのメディアボックスを定義
Page.SetCropBox可視クロップ領域を定義
Page.SetRotationページを0、90、180、または270度回転
PageCollectionドキュメント内のページの順序付けられたコレクション
PageCollection.Add空白ページを追加
OperatorCollectionページの生コンテンツストリーム演算子
FileSpecification埋め込みファイル添付記述子
ImageStampページ用の画像オーバーレイスタンプ
XFormCollectionドキュメント内の再利用可能なフォームXObject

参照

 日本語