使用 PDF Writer

使用 PDF Writer

Aspose.Words FOSS for Python 将文档导出为 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 传递给 writer 的构造函数来配置 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 编写器在内部使用四个专用渲染器:

RendererHandles
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.PDFPDF 保存格式的常量
LdmPdfWriter().write(doc, path)将文档保存为 PDF

另请参阅

 中文