使用 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 编写器在内部使用四个专用渲染器:
| 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 |