コア PDF ドキュメント管理は、ほぼすべての PDF ワークフローに現れる操作、すなわちドキュメントのオープンまたは作成、ページとそのコンテンツへのアクセス、アノテーションの読み書き、テキストの抽出、インタラクティブ アクションの操作をカバーします。Aspose.PDF FOSS for .NET は、.NET 8+ API を提供し、Document と Page タイプを中心とした一貫したオブジェクトモデルを通じてこれらすべてのタスクを処理します。
ドキュメント ライフサイクル: 作成、開く、保存
すべてのワークフローは、新しいドキュメントを作成するか、既存のドキュメントをロードすることから始まります。Document.Create() は新しい空の Document インスタンスを返します。Document.Open(data) は byte[] または Stream を受け取り、PDF 構造を解析します:
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com
このスニペットは最小限の PDF を開き、ページ 1 にリンクアノテーションを追加し、MemoryStream に保存し、再読み込み後にアノテーションが保持されていることを検証します。Document.Save(Stream) のオーバーロードは完全に更新された構造を書き込み、Document.ToArray() はバイト列を直接返します。
ページアクセスとPagesコレクション
ページは Pages プロパティを使用し、1 ベースの整数インデックスでアクセスします: doc.Pages[1] は最初のページを返し、doc.Pages[doc.Pages.Count] は最後のページを返します。各 Page オブジェクトは次を公開します:
Annotations— そのページのAnnotationCollection、AddLinkAnnotationをサポートし、タイプ別に既存の注釈を列挙します。- Content stream operators —
Operatorsコレクションを介したページ描画コマンドへの低レベルアクセス。
1ベースのインデックスは API 全体で一貫しています。アノテーション検索、GoTo アクションの宛先ページインデックス、そして他のすべてのページ参照は同じ規則を使用します。
TextFragmentAbsorber を使用したテキスト抽出
TextFragmentAbsorber は PDF ページからテキストを読み取るための標準エントリーポイントです。引数なしコンストラクタを使用してすべてのフラグメントを抽出するか、検索フレーズを渡して一致するテキストにフィルタリングします:
using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"Found: {fragment.Text} size={fragment.FontSize}");
}
単一ページを処理するには absorber.Visit(page) を呼び出します。結果として得られる TextFragments コレクションには TextFragment オブジェクトが含まれ、各オブジェクトは Text(文字列コンテンツ)と FontSize(レンダリングされたポイントサイズ)を公開します。第2のオーバーロード TextFragmentAbsorber(searchPhrase, isRegex) は、パターンベース検索のための正規表現フラグを受け取ります。
インタラクティブ アクション
PdfAction は、すべての標準 PDF アクション タイプのファクトリ クラスです。4 つの静的ファクトリ メソッドが最も一般的なケースをカバーします:
PdfAction.CreateUri(uri)— ユーザーのブラウザでURLを開きます。PdfAction.CreateGoTo(pageIndex, fitType)— ドキュメント内の特定のページへ移動します。PdfAction.CreateJavaScript(script)— PDFビューアでJavaScript文字列を実行します。PdfAction.CreateLaunch(filePath)— 外部ファイルまたはアプリケーションを起動します。
アクションはアノテーションを通じてページに添付されます。 AnnotationCollection.AddLinkAnnotation(rectangle, action) は、指定された矩形領域上に、指定されたアクションが添付された LinkAnnotation を配置します:
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count); // 1
Console.WriteLine(annot.AnnotationType); // Link
AnnotationType.Link はアノテーションがリンクタイプとして作成されたことを確認します。Rectangle コンストラクタは、PDF ユーザースペース単位で左、下、右、上の座標を受け取ります。
ドキュメント メタデータとライセンス
Document クラスは IsLicensed(FOSS ビルドでは true を返します)、JavaScript(ドキュメントレベル スクリプト用の JavaScriptCollection)、および DocumentActions を、BeforeClosing や BeforeSaving などのライフサイクル イベントに対して公開します。
FOSS パッケージは NuGet を介してインストールされます:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
ライセンスキーは必要ありません。MIT ライセンスは、ライセンス通知を保持すること以外の帰属要件なしに、商用アプリケーションでの使用を許可します。