Conversion
Conversion
このページでは、PDF を他の形式にレンダリングし、PDF/A 準拠へ文書を変換する方法について説明します。Document は、全体の文書に対して出力形式ごとに 1 つの To*() メソッドを提供します。同様のメソッドは、単一ページをレンダリングするために Page にも存在します。
他の文書形式へのレンダリング
Document.ToHtml()、Document.ToDocx()、および Document.ToMarkdown() はすべてのページをレンダリングします;Page.ToSvg() と Page.ToImage() は単一ページをスタンドアロンの SVG 文字列または PNG バイトにレンダリングします。各メソッドはそれぞれ独自のオプションを受け取ります — mode は DocxOptions 上で(‘flow’ はコンテンツを再フローし、’textbox’ は各ページのジオメトリを保持)し、images は MarkdownExportOptions 上で(‘inline’ は画像データ URI を埋め込み、’external’ は imageDir に個別ファイルを書き出します)。
const doc = Document.OpenFile('in.pdf');
const svg = doc.Pages[0].ToSvg(); // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml(); // standalone semantic HTML, all pages
const md = doc.ToMarkdown(); // GFM Markdown, all pages
const docx = doc.ToDocx(); // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' }); // .docx keeping each page's own geometry
ImageOptions(Page.ToImage() 用)は、format、quality、scale、明示的な width / height、および background(‘white’ または ’transparent’)も受け付けます。
PDF/A への変換
Document.ConvertToPdfA() は、文書を PDF/A level(‘b’ または ‘u’)に向けて修正し、再検証します。その結果、ConversionReport を返し、applied(実行された修正アクション)、unresolved(修正できなかった問題)、および passed を含みます。コピー上で実行してください — 例えば Document.ExtractPages() で作成したもの — これにより、ライブの作業中の文書が変換によって変更されることはありません。
// ExtractPages gives an independent copy; ConvertToPdfA never touches the original.
const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');
console.log(`applied ${conversion.applied.length} action(s), `
+ `${conversion.unresolved.length} unresolved, `
+ `result: ${conversion.passed ? 'passes' : 'still fails'} PDF/A-2b`);
copy.WriteTo('output-pdfa.pdf');その他のエクスポート形式
HTML、Markdown、DOCX、SVG、PNG に加えて、ライブラリは TIFF(TiffExportOptions、encodeTiff())もエクスポートし、FDF および XFDF(exportFdfFile()、exportXfdfFile()、importFdfFile()、importXfdfFile())で AcroForm フィールド値のインポート/エクスポートも行います — PDF 本体とは別に入力済みフォームデータを交換するのに便利です。
ヒントとベストプラクティス
Document.ConvertToPdfA()はコピー(たとえばDocument.ExtractPages()から取得)で実行し、変換せずに保存が必要なライブ文書では絶対に実行しないでください。passedがtrueの場合でも、より緩やかな検証レベルのためにConversionReport.unresolvedを確認してください — 一部の是正措置は、より厳格なレベルでのみ完全に解決します。- DOCX 出力で各ページの正確なビジュアルジオメトリを保持する必要がある場合は
DocxOptionsにmode: 'textbox'を使用し、通常のワードプロセッシング文書のようにリフローさせる場合はデフォルトの'flow'モードを使用してください。 - 大きな文書の場合は、デフォルトのインラインデータ URI ではなく、
MarkdownExportOptions上でimages: 'external'とimageDirを渡して、Markdown ファイル自体を小さく保ちます。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
ConvertToPdfA() はまだ passed: false を報告しています | すべての ConversionReport.unresolved リストにある問題が自動的に修正できるわけではありません (例: 埋め込みフォントが欠如している、または /OutputIntent が欠如している場合) | 特定の unresolved ルールを手動で対処し、次に ConvertToPdfA() を再実行してください |
| PDF/A 変換の試行後にライブドキュメントが予期せず変更されました | コピーではなく作業ドキュメント上で直接 ConvertToPdfA() が呼び出されました | Document.ExtractPages()で作成したコピーに対して呼び出す |
| Markdownエクスポートは1つの巨大なファイルを生成します | デフォルトのimages: 'inline'はすべての画像をデータURIとして埋め込みます | 画像を個別ファイルとして書き出すには{ images: 'external', imageDir: '...' }を渡してください |
| DOCX出力では元のページレイアウトが失われます | デフォルトのmode: 'flow'はワードプロセッサのようにコンテンツを再配置します | 各ページ固有のジオメトリを保持するには{ mode: 'textbox' }を渡してください |
FAQ
PDF を変換できる形式は何ですか?
HTML、Markdown、および DOCX は文書全体用(Document.ToHtml() / ToMarkdown() / ToDocx());SVG と PNG はページ単位(Page.ToSvg() / Page.ToImage());さらに TIFF と FDF/XFDF のフォームデータエクスポートが可能です。
PDF/A に変換すると元のドキュメントが変更されますか?
直接 ConvertToPdfA() を呼び出した場合のみです。コピーに対して呼び出す—例えば doc.ExtractPages(doc.Pages.map((_, i) => i + 1))—ことで、元のドキュメントを変換せずに保つことができます。
PDF/A の変換が実際に成功したかどうかは、どうやって確認できますか?
ConversionReport.passed を確認してください。applied は変換で修正された項目を一覧表示し、unresolved は修正できなかった項目を一覧表示します — passed が true であっても、unresolved を検査してください。
PDF 本体なしで、入力済みのフォームフィールドの値だけをエクスポートできますか?
はい — exportFdfFile() と exportXfdfFile() は現在の AcroForm フィールド値を別々の FDF または XFDF ファイルに書き込みます; importFdfFile() / importXfdfFile() はそれらをドキュメントに戻します。
API Reference 概要
| クラス/メソッド | 説明 |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | すべてのページを別の文書形式にレンダリングする |
Page.ToSvg() / Page.ToImage() | 単一ページをSVGまたはPNGにレンダリングする |
DocxOptions / MarkdownExportOptions / ImageOptions | フォーマット別のレンダリングオプション |
Document.ConvertToPdfA() | 文書をPDF/Aレベルに向けて修正し、再検証する |
ConversionReport | 変換結果: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | TIFF にエクスポート |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | AcroForm フィールドの値を FDF/XFDF としてエクスポートまたはインポート |