听闻少年二字,当与平庸相斥。这篇文章主要讲述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推荐阅读
- Win使用技巧#导入Word文档图片#
- iscsi设备的部署,使用2台服务器进行挂载测试(1/3)
- JAVA SQL注入测试
- 基于ansible在远程centos服务器docker环境安装kafka
- 计算机类SQL语言例子汇总
- 90天Java---mybatis与mybatis plus-1
- Clickhouse重复数据处理
- mysql|mysql删除重复数据,一条sql就搞定
- 全国超10亿用户!AntDB数据库的电信核心交易替换之路