将 SVG 转换为 PDF – C# 示例

SVG 文档转换为其他格式是 Aspose.SVG for .NET API 的主要功能之一。需要转换的原因有多种:以熟悉、方便的格式工作或利用不同的格式来完成特定任务。 PDF 是所有操作系统都支持的文件格式,用于呈现图像、文档和书籍。 PDF 格式的文件可以轻松查看、打印和在线共享。

本文提供了有关受支持的 SVG 到 PDF 转换方案列表以及如何执行这些方案的信息。您可以通过任何方式(在线或以编程方式)将 SVG 转换为 PDF 和其他流行格式。

在线 SVG 转换器

您可以检查 Aspose.SVG API 功能并实时转换 SVG。请从本地文件系统加载 SVG,选择输出格式并运行示例。在示例中,保存选项是默认设置的。您将立即收到作为单独文件的结果。

                
            

如果您想以编程方式将 SVG 转换为 PDF,请参阅以下 C# 代码示例。

使用 ConvertSVG() 方法将 SVG 转换为 PDF

Converter 类的静态方法可以通过一行代码将 SVG 转换为 PDF。这是最简单的转换方法。使用 ConvertSVG() 方法将文件转换为另一种格式是一系列操作,其中文档加载和保存:

以下代码片段可用于将 SVG 文件转换为 PDF 格式:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Converters;
 4using System.Drawing;
 5using Aspose.Svg.Saving;
 6...
 7
 8    // Initialize an SVG document from a file
 9    using (var document = new SVGDocument(Path.Combine(DataDir, "lineto.svg")))
10    {
11        // Initialize an instance of the PdfSaveOptions class
12        var saveOptions = new PdfSaveOptions();
13        saveOptions.BackgroundColor = Color.Gray;
14
15        // Convert SVG to PDF
16        Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "lineto_out.pdf"));
17    }

PdfSaveOptions() 构造函数初始化传递给 ConvertSVG() 方法的 PdfSaveOptions 类的实例。 ConvertSVG() 方法获取 documentsaveOptions、输出文件路径并执行转换操作。在上面的示例中,我们添加了用于设置 Color 的 BackgroundColor 属性,该属性将填充每个页面的背景。

您可以从 GitHub 下载完整的示例和数据文件。您可以从 如何运行示例 部分了解如何从 GitHub 下载并运行示例。

保存选项

您可以使用默认或自定义保存选项将 SVG 转换为 PDF。 PdfSaveOptionsPdfRenderingOptions 使用使您能够自定义渲染过程;您可以指定页面大小、边距、背景颜色、文件权限、Css 等。

PropertyDescription
JpegQualitySpecifies the quality of JPEG compression for images. The default value is 95.
CssGets a CssOptions object which is used for configuration of CSS properties processing.
DocumentInfoThis property contains information about the output PDF document.
BackgroundColorThis property sets the color that will fill the background of every page. By default, this property is Transparent.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets the horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets the vertical resolution for output images in pixels per inch. The default value is 300 dpi.
EncryptionThis property gets or sets encryption details. If it is not set, then no encryption will be performed.

注意:使用 PdfSaveOptions 类实现的选项继承自 PdfRenderingOptions 类。

使用 RenderTo() 方法将 SVG 转换为 PDF

考虑使用 RenderTo() 方法将 SVG 转换为 PDF 的场景:

以下代码片段可用于将 SVG 文件转换为 PDF 格式:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Drawing;
 4using Aspose.Svg.Rendering;
 5using Aspose.Svg.Rendering.Pdf;
 6...
 7
 8	// Initialize an SVG document from a file
 9	using (var document = new SVGDocument(Path.Combine(DataDir, "light.svg")))
10	{
11	    // Initialize an instance of the PdfRenderingOptions class and set custom PageSetup and JpegQuality properties
12		var pdfRenderingOptions = new PdfRenderingOptions();
13	    pdfRenderingOptions.PageSetup.AnyPage = new Page(new Drawing.Size(500, 500), new Margin(10, 10, 10, 10));
14	    pdfRenderingOptions.JpegQuality = 10;
15
16		// Initialize an instance of the PdfDevice class
17	    using (IDevice device = new PdfDevice(pdfRenderingOptions, Path.Combine(OutputDir, "light_out.pdf")))
18	    {
19	        // Render SVG to PDF and send the document to the rendering device
20			document.RenderTo(device);
21	    }
22	}

PdfRenderingOptions() 构造函数初始化 PdfRenderingOptions 类的新对象,该对象作为参数传递给 PdfDevice(options, file) 构造函数。最后一个通过渲染选项和输出文件名初始化 PdfDevice 类的新实例。 RenderTo(device) 方法将 SVG 转换为 PDF 并将当前文档发送到输出渲染设备。

JpegQuality 指定图像的 JPEG 压缩质量。默认值为 95。在上面的示例中,使用的 JpegQuality 值为 10。该图说明了两个文件 light.svglineto.svg 将 SVG 转换为 PDF: JpegQuality 值为默认值; b) JpegQuality 值为 10。

文本“使用各种 JpegQuality 值渲染为 PDF 的图像”

您可以使用我们的免费在线 SVG 到 PDF 转换器 将 SVG 转换为 PDF,该转换器质量高、简单且快速。只需上传、转换文件即可在几秒钟内获得结果!

文本“横幅 SVG 到 PDF 转换器”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.