Aspose.PDF FOSS for TypeScript 機能
Aspose.PDF FOSS for TypeScript の機能
このページでは、Aspose.PDF FOSS for TypeScript の主要な機能領域と、それらへのエントリーポイントとなるクラスを調査し、目的のタスクに適した developer-guide ページを見つけられるようにしています。各領域はそれぞれのページで詳しく解説しています。
文書とページの管理
Document はすべての操作のエントリーポイントです: Document.New() は指定された PageFormat で空の文書を開始し、Document.OpenFile() / Document.Open() はファイルパスまたはメモリ上のバイトから既存の文書をロードします。doc.Pages は Page オブジェクトの配列で、Document.WriteTo() / Document.Save() は結果を書き出します。
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');参照 Core API 文書のライフサイクル、分割、マージ、ページ組み立てについて。
形式変換
Document.ToHtml()、Document.ToDocx()、および Document.ToMarkdown() は文書のすべてのページを別の形式にレンダリングします。Page でも同様のメソッドがあり、単一ページをレンダリングできます。さらに、PNG ラスタ出力には Page.ToImage()、スタンドアロン SVG には Page.ToSvg() を使用します。
const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml(); // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 }); // PNG bytes for page 1
参照 Conversion エクスポート形式とオプションの全セットについて。
注釈
Page.AddHighlight() とその兄弟である Page.Add*() メソッドは、マークアップとシェイプの注釈を作成します;それぞれはライブ Annotation ハンドルを返します。Annotation.Flatten() は注釈の外観をページのコンテンツストリームに直接焼き込み、/Annots から削除し、永続的でインタラクティブでないものにします。
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();参照 Annotations 注釈タイプの全セットおよび注釈テキストの検索について。
フォームとフィールドのフラット化
AcroForm フィールドは、doc.Form、Form ファサード、または Page 上で Page.AddTextField() / Page.AddCheckbox() を使用して直接作成されます。Form.AddTextField() と Form.AddCheckbox() はフィールドハンドルを返し、そのハンドルの Flatten() メソッドは Annotation.Flatten() と同様の方法で静的コンテンツに焼き込みます。
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();参照 Forms 完全なフィールドタイプのセットについては。
Security
Document.OpenFile() と Document.Open() は保護された文書を開くための password オプションを受け入れ、Document.Save() は保存時に保護するための encrypt オプションを受け入れます。Document.Sign() と Document.Certify() はデジタル署名を追加し、Document.VerifySignatures() は文書内に既に存在するすべての署名をチェックします。
import { Document, InvalidPasswordError } from '@asposefoss/pdf';
try {
const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
doc.WriteTo('decrypted.pdf');
} catch (e) {
if (e instanceof InvalidPasswordError) console.error('wrong password');
else throw e;
}参照 Security 暗号化、署名、署名検証については。
Redaction
Page.AddRedact() はページをまだ変更せずに矩形領域を編集対象としてマークし、Page.ApplyRedactions() はその後コンテンツストリームを破壊的に書き換えて、マークされたコンテンツを完全に削除し、適用された編集数を返します。
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();参照 Redaction マークモードと適用された編集の詳細については。
文書構造とアクセシビリティ
Document.AutoTag() はページレイアウトから /StructTreeRoot を推測・生成します — フォントサイズのクラスタリングによる見出し、段落、そして(opts.alt を使用した)図 — そして AutoTagReport を返します。Document.GetStructTree() は結果として得られた構造ツリーを読み戻し、Document.ValidatePdfUa() は文書を PDF/UA-1 の機械判定可能なサブセットと照合してチェックします。
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);参照 Structure アウトライン、タグ付け、名前付きデスティネーションについては。
ヒントとベストプラクティス
- ライブドキュメントから取得されていない別の変数に保持されているアノテーション、フィールド、またはページである
Pageオブジェクトを、doc.Pages経由で直接変更しないでください — 取得されていないものは、Save()/WriteTo()を呼び出したときに反映されません。 Flatten()はAnnotationとフォームフィールドハンドル(TextField、CheckboxField、その他のフィールドタイプ)両方で利用可能です — インタラクティブコンテンツが永続的で編集不可のページコンテンツになるタイミングで一度呼び出してください。- そのページのすべての
Page.AddRedact()マークが追加された後にのみPage.ApplyRedactions()を呼び出してください;呼び出し後に追加されたマークは適用されません。 - 信頼できない入力に対して
Document.OpenFile()/Document.Open()を呼び出す際は、より広範なキャッチオールの前にInvalidPasswordErrorを個別に捕捉してください。 Document.AutoTag()はヒューリスティックな構造ツリーを生成します — 完全なアクセシビリティ準拠を前提にせず、常にDocument.GetStructTree()またはValidatePdfUa()で結果をスポットチェックしてください。
一般的な問題
| 課題 | 原因 | 修正 |
|---|---|---|
Document.OpenFile() / Document.Open() は InvalidPasswordError をスローします | このドキュメントはパスワードで保護されており、パスワードが提供されていないか、間違ったパスワードが提供されました。 | { password: '...' } を Document.OpenFile() / Document.Open() に渡す |
| 削除マークは効果がありません | Page.ApplyRedactions() が呼び出されなかったか、マークが追加される前に呼び出されました | まず各マークごとに Page.AddRedact() を呼び出し、次に Page.ApplyRedactions() を一度だけ呼び出してください |
| 平坦化されたフィールドまたは注釈が依然としてインタラクティブとして表示されます | Flatten() がコピーに対して呼び出され、Add*() 呼び出しで返されたハンドルではありませんでした | Flatten() を、AddTextField() / AddHighlight() / などから直接返されるオブジェクトに対して呼び出してください. |
ValidatePdfUa() は AutoTag() 後も構造が欠落していると報告し続けます | AutoTag() はヒューリスティックであり、alt コールバックが無い場合、すべての図にタグ付けしない可能性があります | 画像に代替テキストを提供するために、opts.alt 関数を AutoTag() に渡してください |
FAQ
TypeScript 用の Aspose.PDF FOSS は商用 PDF エンジンに依存していますか?
いいえ。MIT ライセンスの下でリリースされており、そのレンダリング、変換、署名ロジックはすべて TypeScript/JavaScript で実行されます。
PDF を直接 HTML、Markdown、または DOCX に変換できますか?
はい — Document.ToHtml()、Document.ToMarkdown()、および Document.ToDocx() は文書のすべてのページをレンダリングします。対応する Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() メソッドは単一ページをレンダリングします。
マークすることとレダクションを適用することの違いは何ですか?
Page.AddRedact() は領域をマークするだけです — 基礎となるコンテンツは依然として存在し、コピー選択可能です。Page.ApplyRedactions() が呼び出されると、破壊的に削除されます。
注釈やフォームフィールドを永続的かつ編集不可にするにはどうすればよいですか?
それを作成した Add*() 呼び出しが返すオブジェクトに対して Flatten() を呼び出します — 注釈の場合は Annotation.Flatten()、AcroForm フィールドの場合はフィールドハンドル自身の Flatten() を使用します。
次はどこへ行けばいいですか?
Getting Started ではインストールと最初の動作例を取り上げています。この開発者ガイドは、上記でリンクされている各機能領域ごとの専用ページで続きます。
API Reference 概要
| クラス/メソッド | 説明 |
|---|---|
Document | エントリーポイント — PDF の作成、読み込み、保存、管理 |
Document.New() / Document.OpenFile() / Document.Open() | 空白のドキュメントを開始するか、ファイルパスまたはメモリ上のバイトから読み込む |
Document.WriteTo() / Document.Save() | ドキュメントをファイルパスに書き込むか、バイトとして返す |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | すべてのページを別の形式へレンダリングする |
Page.ToImage() / Page.ToSvg() | 単一ページを PNG または SVG にレンダリングする |
Page.AddHighlight() と他の Page.Add*() アノテーション手法 | アノテーションを作成し、ライブハンドルを返す |
Annotation.Flatten() | アノテーションの外観を静的ページコンテンツにベイクする |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm ファサードとフィールド作成 |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | デジタル署名を追加または検証する |
Page.AddRedact() / Page.ApplyRedactions() | コンテンツの削除処理をマークして適用する |
Document.AutoTag() / Document.GetStructTree() | 文書の論理構造ツリーを作成し、読み取る |