C#/VB.NET 将PDF转为SVG/Image, SVG/Image转PDF

听闻少年二字,当与平庸相斥。这篇文章主要讲述C#/VB.NET 将PDF转为SVG/Image, SVG/Image转PDF相关的知识,希望能为你提供帮助。
SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。本文将介绍如何实现将PDF文档与SVG/Image相互转换的方法。经过综合对比之后,最后筛选出这一方法。此方法操作起来比较方便且代码量较少。下面是我整理的详细步骤及C#/VB.NET代码供大家参考。
类库引入及代码思路:本次功能测试中,使用到的是?? Free Spire.PDF for .NET??。Spire.PDF.dll文件的引入方法如下:
方法1:将 Free Spire.PDF for .NET 下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的Spire.PDF.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。
方法2:通过  ??NuGet??  安装。可通过以下2种方法安装:
(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”。等待程序安装完成。
【C#/VB.NET 将PDF转为SVG/Image, SVG/Image转PDF】(2)将以下内容复制到PM控制台安装。
Install-Package FreeSpire.PDF -Version 8.2.0
将PDF转为SVG格式具体步骤:

  • 创建 PdfDocument 类的对象。
  • 调用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
  • 通过 PdfDocument.SaveToFile() 方法保存为 SVG 格式。
完整代码:
【C#】
using System;
using Spire.Pdf;


namespace PdfToSVG

class Program

static void Main(string[] args)

//创建 PdfDocument 类的对象
String file = "Sample.pdf";

//打开PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(file);

//转换为SVG文件
doc.SaveToFile("ToSVG-result.svg", FileFormat.SVG);
doc.Close();





【VB.NET】
Imports System
Imports Spire.Pdf

Namespace PdfToSVG

Class Program

Private Shared Sub Main(ByVal args() As String)
创建 PdfDocument 类的对象
Dim file As String = "Sample.pdf"
打开PDF文档
Dim doc As PdfDocument = New PdfDocument
doc.LoadFromFile(file)
转换为SVG文件
doc.SaveToFile("ToSVG-result.svg", FileFormat.SVG)
doc.Close
End Sub
End Class
End Namespace




效果图:

将SVG转为PDF格式具体步骤:
  • 创建一个 PdfDocument 对象。
  • 用PdfDocument.LoadFromSvg()方法加载SVG文档
  • 用PdfDocument.SaveToFile()方法保存为PDF文档
完整代码:
【C#】
using Spire.Pdf;
using System;


namespace SVGToPdf

class Program

static void Main(string[] args)

//创建一个 PdfDocument 对象.
PdfDocument doc = new PdfDocument();

//加载SVG文档.
doc.LoadFromSvg("ToSVG-result.svg");

//保存文档
String result = "SVgToPDF_out.pdf";
doc.SaveToFile(result);






【VB.NET】
Imports Spire.Pdf
Imports System

Namespace SVGToPdf

Class Program

Private Shared Sub Main(ByVal args() As String)
创建一个 PdfDocument 对象.
Dim doc As PdfDocument = New PdfDocument
加载SVG文档.
doc.LoadFromSvg("ToSVG-result.svg")
保存文档
Dim result As String = "SVgToPDF_out.pdf"
doc.SaveToFile(result)
End Sub
End Class
End Namespace


?效果图:

将PDF转为图像具体步骤:
  • 新建一个PDF文件并用PdfDocument.LoadFromFile()方法加载PDF文件
  • 用Image.Save()方法保存为图片
完整代码:
【C#】
using System;
using System.Drawing;
using Spire.Pdf;


namespace ToImage

class Program

static void Main(string[] args)


//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Sample1.pdf");

//保存为图片
for (int i = 0; i < doc.Pages.Count; i++)

String fileName = String.Format("ToImage-img-0.png", i);
using (Image image = doc.SaveAsImage(i, 300, 300))

image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);



doc.Close();




【VB.NET】
Imports System
Imports System.Drawing
Imports Spire.Pdf

Namespace ToImage

Class Program

Private Shared Sub Main(ByVal args() As String)
加载PDF文档
Dim doc As PdfDocument = New PdfDocument
doc.LoadFromFile("Sample1.pdf")
保存为图片
Dim i As Integer = 0
Do While (i < doc.Pages.Count)
Dim fileName As String = String.Format("ToImage-img-0.png", i)
Dim image As Image = doc.SaveAsImage(i, 300, 300)
image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png)
i = (i + 1)
Loop

doc.Close
End Sub
End Class
End Namespace


效果图:

将图像转为PDF格式具体步骤:
  • 创建一个添加了section和页面的 pdf 文档。
  • 用PdfImage.FromFile()方法加载图片
  • 在 PDF 中设置图像的显示位置和大小
  • 通过PdfImage.PhysicalDimension属性获取图片高度和宽度
  • 使用 PdfPage.Canvas.DrawImage() 方法在第一页 (0, 30) 处绘制 PdfImage 对象
  • 使用 PdfDocument.SaveToFile() 方法将文档保存为 PDF 文件
完整代码:
【C#】
using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace ImageToPdf

class Program

static void Main(string[] args)

//创建添加了section和页面的 pdf 文档.
PdfDocument pdf = new PdfDocument();
PdfSection section = pdf.Sections.Add();
PdfPageBase page = pdf.Pages.Add();

//加载图片
PdfImage image = PdfImage.FromFile("image1.png");
//在 PDF 中设置图像的显示位置和大小
//调整图片大小以适合页面宽度
float widthFitRate = image.PhysicalDimension.Width / page.Canvas.ClientSize.Width;
float heightFitRate

    推荐阅读