用 Python 将 SVG 转换为 PDF

本文将介绍如何使用 Converter 类的 convert_svg() 方法将 SVG 转换为 PDF,以及如何应用 PdfSaveOptions。使用 Aspose.HTML for Python via .NET,您可以通过编程将 SVG 转换为 PDF 格式,并完全控制各种转换参数。 此外,您还可以试用在线 SVG 转换器来测试 Python API 的功能并即时转换 SVG。

在线 SVG 转换器

您可以使用 Aspose.HTML API 将 SVG 实时转换为其他格式。请从本地文件系统或 URL 加载 SVG,选择输出格式并运行示例。默认设置**保存选项。您将立即以单独文件的形式收到转换结果。

                
            

将 SVG 转换为 PDF

让我们来看看如何将 SVG 文档转换成 PDF 文件格式。Converter 类中的 convert_svg() 方法主要用于将 SVG 文件转换成各种格式的最简单方法。您应遵循以下几个步骤:

  1. 加载 SVG 文档。要进行转换,可以从文件、URL 或代码字符串加载 SVG。在下面的示例中,我们通过代码创建一个 SVG 文件。
  2. 创建一个新的 PdfSaveOptions对象。如果您没有为保存生成的 PDF 文件设置特定选项,则将使用默认选项。
  3. 使用转换器类的 convert_svg(content, base_uri, options, output_path) 方法将 SVG 保存为 PDF 文件。
 1# Convert SVG code to PDF document using Python
 2
 3import os
 4import aspose.html.converters as conv
 5import aspose.html.saving as sav
 6
 7# Setup directories and define paths
 8output_dir = "output/"
 9if not os.path.exists(output_dir):
10    os.makedirs(output_dir)
11save_path = os.path.join(output_dir, "circles.pdf")
12
13# SVG code
14svg_code = """
15<svg xmlns="http://www.w3.org/2000/svg">
16    <circle id="base" cx="100" cy="100" r="80" fill="teal" stroke="salmon" stroke-width="10" />
17    <g> 
18        <use href="#base" transform="translate(120, 10) scale(0.9)" />
19        <use href="#base" transform="translate(240, 20) scale(0.8)" />
20        <use href="#base" transform="translate(360, 30) scale(0.7)" />
21        <use href="#base" transform="translate(480, 40) scale(0.6)" />
22        <use href="#base" transform="translate(600, 50) scale(0.5)" />
23    </g>
24</svg>
25"""
26
27# Initialize PdfSaveOptions
28options = sav.PdfSaveOptions()
29
30# Convert SVG to PDF
31conv.Converter.convert_svg(svg_code, ".", options, save_path)

下图以 “circles.pdf “文件的一个片段为例,展示了 SVG 到 PDF 的渲染质量。之所以说是文件片段,是因为保存选项被设置为默认值后,整个文件大小相当于一页 A4 纸。

文本 “circles.pdf 图像”

使用 PdfSaveOptions 将 SVG 转换为 PDF

Aspose.HTML for Python via .NET 提供了 PdfSaveOptions类,使您可以对如何以 PDF 格式保存文档进行更多控制。该类的某些属性继承了基类的属性,如 PdfRenderingOptions 或 RenderingOptions。下面是 “PdfSaveOptions “中一些可用属性的说明:

要将 SVG 转换为指定了 PdfSaveOptions 的 PDF,需要遵循以下几个步骤:

  1. 使用 SVGDocument 类的 SVGDocument() 构造函数之一加载 SVG 文件。
  2. 创建一个新的 PdfSaveOptions 对象并指定保存选项。
  3. 使用 convert_svg() 方法之一将 SVG 保存为 PDF 文件。在示例中,convert_svg() 方法接收 documentoptions 和输出文件路径 save_path 并执行转换操作。

以下 Python 代码片段可配置 PDF 保存选项,以设置页面大小和页边距,应用 CSS 规则进行打印,以 80% 的质量压缩 JPEG 图像,并启用标记 PDF 以提高可访问性:

 1# Convert SVG to PDF with custom settings using Python
 2
 3import os
 4import aspose.html.dom.svg as ahsvg
 5import aspose.html.converters as conv
 6import aspose.html.saving as sav
 7import aspose.html.drawing as dr
 8
 9# Setup directories and define paths
10output_dir = "output/"
11input_dir = "data/"
12if not os.path.exists(output_dir):
13    os.makedirs(output_dir)
14
15document_path = os.path.join(input_dir, "flower.svg")
16save_path = os.path.join(output_dir, "svg-to-pdf.pdf")
17
18# Load an SVG document
19document = ahsvg.SVGDocument(document_path)
20
21# Initialize PdfSaveOptions
22options = sav.PdfSaveOptions()
23
24# Customize save options for PDF
25options.page_setup.any_page = dr.Page(dr.Size(600, 500), dr.Margin(20, 20, 10, 10))
26options.css.media_type.PRINT
27options.jpeg_quality = 80
28options.is_tagged_pdf = True
29
30# Convert SVG to PDF
31conv.Converter.convert_svg(document, options, save_path)

在上述示例中,我们使用

使用我们的在线 SVG 到 PDF 转换器 查看 SVG 转换为 PDF 的质量。上传、转换您的文件并在几秒钟内获得结果。现在就免费试用我们强大的 SVG 到 PDF 转换器!

下载我们的 Aspose.HTML for Python via .NET library 可以让您成功、快速、轻松地将 HTML、MHTML、EPUB、SVG 和 Markdown 文档转换为最流行的格式。

您可以从 GitHub 下载完整的示例和数据文件。

文本 “SVG 到 PDF 转换器”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.