PDF Writer の使用
PDFライターの使用
Aspose.Words は Python 用のFOSSで、専用のレンダリングパイプラインを通じて文書をPDFにエクスポートします。パイプラインは各LDM要素 — 段落、ラン、シェイプ、テーブル — を、専門のレンダラーを使用してPDF出力に変換します。
基本的なPDFエクスポート
LdmPdfWriter を使用して、読み込んだ任意の文書をPDFとして保存します:
import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
doc = aw.Document("input.docx")
LdmPdfWriter().write(doc, "output.pdf")読み込み時に入力形式は自動的に検出されます — Document は DOCX、DOC、RTF、TXT、Markdown ファイルを受け付け、LdmPdfWriter は入力形式に関係なく常に PDF 出力を生成します:
import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
doc = aw.Document("input.doc")
LdmPdfWriter().write(doc, "output.pdf")PdfSaveOptions の使用
ライターのコンストラクタに PdfSaveOptions を渡すことで、PDF 出力を構成します:
import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
from aspose.words_foss.saving import PdfSaveOptions
doc = aw.Document("input.docx")
opts = PdfSaveOptions()
LdmPdfWriter(opts).write(doc, "output.pdf")PDFレンダリングパイプライン
PDFライターは内部で4つの専門レンダラーを使用します:
| Renderer | Handles |
|---|---|
ParagraphRenderer | LDM段落をPDFにレンダリングします — 配置、間隔、インデントを処理 |
RunRenderer | 書式設定されたランをレンダリングします — フォント、色、リンク付きのテキストセグメント |
ShapeRenderer | 形状、画像、および位置指定要素をレンダリングします |
TableRenderer | LDMテーブルをレンダリングします — セルの枠線、結合、パディング |
これらのレンダラーは協力して最終的なPDFを生成します。LdmPdfWriter を介して間接的に操作します。
複数フォーマットをPDFに変換する
PDFライターは、サポートされている任意のリーダー(DOCX、DOC、RTF、TXT、Markdown)からの入力を受け付けます:
import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
writer = LdmPdfWriter()
for input_file in ["report.docx", "legacy.doc", "notes.rtf", "readme.txt"]:
doc = aw.Document(input_file)
pdf_name = input_file.rsplit(".", 1)[0] + ".pdf"
writer.write(doc, pdf_name)
print(f"Saved {pdf_name}")ヒントとベストプラクティス
- デフォルトを超えてPDF出力をカスタマイズする必要がある場合は、
PdfSaveOptionsを使用してください。 - バッチ変換では、ループでロードおよび保存します — レンダラーはステートレスで、ドキュメント間で再利用可能です。
- PDFライターは、ソース文書から太字、斜体、下線、フォントサイズ、色を保持します。
- テーブルセルの結合 (
CellMerge) は、PDF出力で正しくレンダリングされます。 - 本番環境に展開する前に代表的な文書でテストしてください — 複雑なレイアウトは調整が必要になる場合があります。
よくある問題
| 問題 | 原因 | 修正 |
|---|---|---|
| PDFでフォントが異なる | システムにフォントがありません | 必要なフォントをインストールするか、フォント置換を使用してください |
| 表の配置がずれている | 複雑な入れ子テーブル構造 | ソース文書のテーブルの入れ子構造を簡素化する |
| 画像が欠落しています | 画像データがソースに埋め込まれていません | 画像が外部リンクではなく埋め込まれていることを確認してください |
FAQ
どの入力フォーマットをPDFにエクスポートできますか?
DOCX、DOC、RTF、TXT、Markdown ファイルはすべて読み込んで PDF として保存できます。
PDFライターはページヘッダーとフッターに対応していますか?
ソース文書のヘッダーとフッターが LDM に存在する場合、PDF 出力に含まれます。
PDF のページサイズと向きを制御できますか?
ソース文書のページ設定プロパティ(サイズ、向き、余白)は PDF に保持されます。保存する前に、Document セクションの PageSetup を変更して、これらの値を変更してください。
API Reference の概要
| クラス / メソッド | 説明 |
|---|---|
PdfSaveOptions | ドキュメントを PDF として保存するオプション |
ParagraphRenderer | LDM段落をPDFにレンダリングします |
RunRenderer | 書式設定されたラン(フォント、色、リンク付きテキスト)をレンダリングします |
ShapeRenderer | 図形、画像、配置された要素をレンダリングします |
TableRenderer | LDMテーブルをPDFにレンダリングします |
SaveFormat.PDF | PDF保存形式の定数 |
LdmPdfWriter().write(doc, path) | 文書をPDFに保存 |