Aspose.PDF FOSS for .NET は、PDF ドキュメントの読み取り、作成、操作のための無料で MIT ライセンスの .NET ライブラリです。寛容なオープンソースライセンスの下でリリースされており、エンタープライズクラスの PDF 機能への従来の障壁を取り除きます — ライブラリ内のすべての機能は商用ライセンスを購入せずに利用可能です。

Aspose.PDF FOSS for .NET とは何ですか?

このライブラリは .NET 8 以降を対象としています。パッケージ ID Aspose.Pdf.Foss で NuGet に公開されており、単一のコマンドで任意の .NET 8+ プロジェクトに追加できます:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

主要な名前空間はAspose.Pdfで、関連する名前空間にはAspose.Pdf.TextAspose.Pdf.FormsAspose.Pdf.Facadesが含まれます。ライブラリは805の公開APIクラスを提供し、7,488件の文書化されたクレームとテストスイートから直接抽出された100のコードスニペットに裏付けられています。

コア機能

API は PDF ドキュメントの全ライフサイクルをカバーします:

  • ドキュメント作成とロードDocument.Create() は空白のドキュメントを生成します; Document.Open(data) はバイト配列またはストリームから既存の PDF をロードします。
  • ページとコンテンツへのアクセスPages コレクションは個々のページに対して 1 ベースのインデックスアクセスを提供し、各ページはアノテーション、演算子、コンテンツストリームを公開します。
  • テキスト抽出TextFragmentAbsorber はページを走査し、すべてのテキストフラグメントを収集します。オプションで検索フレーズのフィルタリングや正規表現のサポートが可能です。
  • インタラクティブ アクションPdfAction.CreateUriPdfAction.CreateGoToPdfAction.CreateJavaScript、および PdfAction.CreateLaunch は標準的な PDF アクションタイプをカバーします。
  • アノテーションAnnotationCollection.AddLinkAnnotation はページ上の任意の矩形領域に、関連付けられたアクションを持つリンクアノテーションを付加します。
  • フォームAspose.Pdf.Forms 名前空間と Aspose.Pdf.Facades は AcroForm フィールド、外観フォーマット、およびフィールドレベルの JavaScript 拡張へのアクセスを提供します。

ドキュメントを開いてリンクを追加する

次の例はラウンドトリップ パターンを示しています: 新しい PDF ドキュメントを作成し、最初のページに URI アクション リンク アノテーションを追加し、ストリームに保存し、再ロードしてアノテーションが保持されていることを確認します。

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

Document.Open 静的メソッドは byte[] またはストリームを受け取ります。 doc.Pages[1] は 1 ベースのインデックスで最初のページにアクセスします — ライブラリ全体で使用されている同じインデックス規約です。 MemoryStream に保存した後、ドキュメントを再読み込みでき、すべての注釈が保持されます。


ページ上のテキスト検索

TextFragmentAbsorber は任意のページのコンテンツストリームに対してキーワード検索を提供します。結果を絞り込むにはコンストラクタに検索フレーズを渡すか、引数なしのオーバーロードを使用してすべてのフラグメントを収集します:

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}");
}

結果として得られるコレクション内の各TextFragmentは、TextFontSize、および位置データを含むプロパティを公開し、抽出されたフラグメント上に検索、ハイライト、または赤字処理のワークフローを構築することが容易になります。


MIT ライセンスとオープン開発

すべてのソースコードは GitHub で公開され、MIT ライセンスの下で配布されています。評価用の透かしはなく、使用制限もなく、管理する別個のライセンスファイルもありません。FOSS ビルドでは Document.IsLicensed プロパティは常に true を返します。

パッケージは現在バージョン 0.1.0-alpha で、積極的な開発が行われています。API のサーフェスはすでにかなりの規模で、805 クラス、7,488 クレーム — そして alpha 指定は、1.0 リリース前に API シグネチャが進化する可能性があることを示しています。


はじめに

関連リソース