用 Python 将 Markdown 转换为 PDF
本文介绍了如何使用 Aspose.HTML for Python via .NET API 将 Markdown 转换为 PDF。您将了解所支持的 Markdown 到 PDF 的转换场景,并考虑用 Python 示例来说明这些场景。此外,您还可以试用在线 Markdown 转换器来测试 Aspose.HTML 的功能并即时转换 Markdown。
在线 Markdown 转换器
您可以使用 Aspose.HTML 将 Markdown 实时转换为其他格式。加载 Markdown 文件,选择输出格式并运行示例。保存选项是默认配置的。您将立即以单独文件的形式收到转换结果。
如果您想以编程方式将 Markdown 转换为 PDF,请参阅以下 Python 代码示例。
将 Markdown 转换为 PDF
例如,如果您需要将 Markdown 文档渲染为 PDF 文件格式,下面的示例演示了如何简单地实现这一点:
- 加载源 Markdown 文档。在示例中,我们从代码中创建了一个 Markdown 文件。
- 将 Markdown 转换为 HTML。使用 convert_markdown() 方法将 Markdown 保存为 HTML 文档。
- 创建一个新的 PdfSaveOptions 对象,并指定所需的属性。
- 使用转换器类的
convert_html() 方法。您需要将
HTMLDocument、PdfSaveOptions和输出文件路径save_path传递给convert_html()方法。
如果您想直接在代码中根据用户字符串创建 Markdown 文档并将其转换为 PDF 文件,下面的示例可以帮到您:
1# Convert Markdown to PDF using Python
2
3import os
4import aspose.html.converters as conv
5import aspose.html.saving as sav
6
7# Setup output directory and paths
8output_dir = "output/"
9os.makedirs(output_dir, exist_ok=True)
10source_path = os.path.join(output_dir, "document.md")
11save_path = os.path.join(output_dir, "markdown-to-pdf.pdf")
12
13# Create a simple Markdown example file
14code = "### Hello, World!\nConvert Markdown to PDF!"
15with open(source_path, "w") as file:
16 file.write(code)
17
18# Convert Markdown file to an intermediate HTMLDocument
19document = conv.Converter.convert_markdown(source_path)
20
21# Create an instance of PdfSaveOptions
22options = sav.PdfSaveOptions()
23
24# Convert HTML to PDF
25conv.Converter.convert_html(document, options, save_path)使用 PdfSaveOptions 将 Markdown 转换为 PDF
将 Markdown 转换为 PDF 的过程可以灵活定制。Aspose.HTML for Python via .NET 提供了
PdfSaveOptions类,可让您对如何将文档保存为 PDF 格式进行更多控制。以下是 PdfSaveOptions 中可用属性的说明:
- page_setup – 该属性提供对 PageSetup 对象的访问,该对象用于配置输出 PDF 页面的布局和设置,以适应特定的打印或显示要求。
- horizontal_resolution – 该属性控制处理过程中使用的内部图像和 HTML 中包含的任何外部图像的水平分辨率。默认设置为 300 dpi。
- vertical_resolution – 与 horizontal_resolution 类似,该属性管理 PDF 生成过程中内部和外部图像的垂直分辨率。与水平分辨率一样,它的默认值也是 300 dpi。
- background_color – 该属性设置或检索填充每个 PDF 文档页面的背景颜色。默认值为透明色,但可根据品牌或审美偏好进行自定义,以确保所有页面的一致性。
- css – 该属性使用一个
CssOptions对象来配置在 HTML 转换为 PDF 的过程中对 CSS 属性的处理。它允许精确控制如何在生成的 PDF 中解释和应用 HTML 中的样式。 - document_info – 该属性包含有关输出 PDF 文档的元数据和信息,如标题、作者、主题和关键字。这些元数据有助于文档管理、索引编制和可搜索性,使 PDF 文件内容更丰富、更有条理。
- form_field_behaviour – 该属性指定生成的 PDF 中交互式表单字段的行为。
- jpeg_quality – 该属性决定嵌入 PDF 文档的图像所使用的 JPEG 压缩质量。默认质量设置为 95,在图像保真度和文件大小之间取得了良好的平衡。通过设置此属性,您可以根据具体需要优化文件大小或图像质量。
- encryption – 该属性提供有关 PDF 文档加密的详细信息,包括密码保护和权限设置。如果未配置该属性,则不会应用加密,但设置该属性可以安全地分发和控制对敏感 PDF 内容的访问。
- is_tagged_pdf – 设置为
true时,将在 PDF 文档中创建标记布局,从而提高残疾用户的可访问性。这可确保内容结构合理,可使用辅助技术进行导航,并符合可访问性标准。
您应使用 PdfSaveOptions 类来指定影响将文档保存为 PDF 的结果的其他选项。该类包含决定如何显示 PDF 输出的属性。下面的 Python 代码片段展示了如何使用 PdfSaveOptions 将 Markdown 转换为 PDF:
1# Convert Markdown to PDF using Python with custom settings
2
3import os
4import aspose.html.converters as conv
5import aspose.html.saving as sav
6import aspose.html.drawing as dr
7
8# Setup directories and define paths
9output_dir = "output/"
10input_dir = "data/"
11if not os.path.exists(output_dir):
12 os.makedirs(output_dir)
13document_path = os.path.join(input_dir, "document.md")
14save_path = os.path.join(output_dir, "md-to-pdf-with-save-options.pdf")
15
16# Convert Markdown to HTML
17document = conv.Converter.convert_markdown(document_path)
18
19# Create an instance of PdfSaveOptions
20options = sav.PdfSaveOptions()
21options.page_setup.any_page = dr.Page(dr.Size(300, 300), dr.Margin(30, 10, 10, 10))
22options.css.media_type.PRINT
23options.jpeg_quality = 100
24
25# Convert HTML to PDF
26conv.Converter.convert_html(document, options, save_path)如何将 Markdown 转换为 XPS
Aspose.HTML for Python via .NET 支持 Markdown 到 XPS 的转换。为此,您应使用
XpsSaveOptions 获得保存选项对象,并将其传递给convert_html()方法:
options = sav.XpsSaveOptions()
使用 XpsSaveOptions 可以自定义渲染过程;您可以指定 page_setup、 background_color、 css、 horizontal_resolution 和 vertical_resolution 属性。
另见
下载 Aspose.HTML for Python via .NET库,它能让您成功、快速、轻松地将 HTML、MHTML、EPUB、SVG 和 Markdown 文档转换为最流行的格式。
您可以从 GitHub 下载完整的示例和数据文件。
您可以使用我们的在线 MD 到 PDF 转换器 检查 Markdown 转换为 PDF 的质量。上传、转换您的文件并在几秒钟内获得结果。现在就免费试用我们的 Markdown to PDF Converter!
