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”,点击“安装”。等待程序安装完成。

(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)
{ //新建并加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Sample.pdf"); //保存为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)
'新建并加载PDF文档
Dim doc As PdfDocument = New PdfDocument
doc.LoadFromFile("Sample.pdf")
'保存为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(); //加载文档.
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
'加载文档.
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("image5.png");
//在 PDF 中设置图像的显示位置和大小
//调整图片大小以适合页面宽度
float widthFitRate = image.PhysicalDimension.Width / page.Canvas.ClientSize.Width;
float heightFitRate = image.PhysicalDimension.Height / page.Canvas.ClientSize.Height;
float fitRate = Math.Max(widthFitRate, heightFitRate);
//获取图片大小
float fitWidth = image.PhysicalDimension.Width / fitRate;
float fitHeight = image.PhysicalDimension.Height / fitRate;
//绘图
page.Canvas.DrawImage(image, 0, 30, fitWidth, fitHeight); string output = "image.pdf"; pdf.SaveToFile(output); }
}
}

【VB.NET】

Imports System
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics Namespace ImageToPdf Class Program Private Shared Sub Main(ByVal args() As String)
' 创建一个添加了section和页面的 pdf 文档.
Dim pdf As PdfDocument = New PdfDocument
Dim section As PdfSection = pdf.Sections.Add
Dim page As PdfPageBase = pdf.Pages.Add
'加载图片
Dim image As PdfImage = PdfImage.FromFile("image5.png")
'在 PDF 中设置图像的显示位置和大小
'调整图片大小以适合页面宽度
Dim widthFitRate As Single = (image.PhysicalDimension.Width / page.Canvas.ClientSize.Width)
Dim heightFitRate As Single = (image.PhysicalDimension.Height / page.Canvas.ClientSize.Height)
Dim fitRate As Single = Math.Max(widthFitRate, heightFitRate)
' 获取图片大小
Dim fitWidth As Single = (image.PhysicalDimension.Width / fitRate)
Dim fitHeight As Single = (image.PhysicalDimension.Height / fitRate)
'绘图
page.Canvas.DrawImage(image, 0, 30, fitWidth, fitHeight)
Dim output As String = "image.pdf"
pdf.SaveToFile(output)
End Sub
End Class
End Namespace

效果图:

注意:测试代码中的文件路径为程序Debug路径,仅供参考,文件路径可自定义为其他路径。

【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF的更多相关文章

  1. C# 将PDF转为SVG的3种情况

    PDF格式的文档广泛用于各种办公场所,在工作中难免会有将PDF文档转换为其他文档格式的需要.在本篇文档中,将介绍PDF转为SVG的方法.根据不同的转换需求,这里分三种情况进行讲述,即转PDF所有页为S ...

  2. Java 将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML

    同一文档在不同的编译或阅读环境中,需要使用特定的文档格式来打开,通常需要通过转换文档格式的方式来实现.下面将介绍在Java程序中如何来转换Word文档为其他几种常见文档格式,如PDF.图片png.sv ...

  3. Java 将PDF 转为Word、图片、SVG、XPS、Html、PDF/A

    本文将介绍通过Java编程来实现PDF文档转换的方法.包括: 1. PDF转为Word 2. PDF转为图片 3. PDF转为Html 4. PDF转为SVG 4.1 将PDF每一页转为单个的SVG ...

  4. Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了接口PdfConvertApi通过convert()方法将PDF文档以及XPS文档转为指定文档格式,如转PDF为Word(支持Docx.Doc). ...

  5. C#/VB.NET 将PDF转为OFD

    OFD,全称Open Fixed-layout Document ,是一种可存储.读取以及编辑的国家标准版式的电子文档格式,属于中国的一种自主文件格式,在安全性上有可靠保证.为突破国外技术在我们软硬件 ...

  6. C#/VB.NET 将彩色PDF转为灰度PDF

    本文以C#代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即 将PDF文档里面的彩色图片或者文字等通过调用PdfGrayConverter.ToGrayPdf()方法转为文档页面为灰 ...

  7. C#/VB.NET 将PDF转为Excel

    PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容.但是在避免他人⽆意修改的同时也妨碍了正常的修改.如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现.Excel拥有强大的数据处理功 ...

  8. C#/VB.NET 将PDF转为PDF/X-1a:2001

    PDF/X-1a是一种PDF文件规范标准,在制作.使用PDF以及印刷时所需要遵循的技术条件,属于PDF/X-1标准下的一个子标准. PDF/X-1标准有由CGATS于1999年制定的PDF/X-1:1 ...

  9. C# 如何将PDF转为多种图像文件格式(Png/Bmp/Emf/Tiff)

    PDF是一种在我们日常工作学习中最常用到的文档格式之一,但常常也会因为文档的不易编辑的特点,在遇到需要编辑PDF文档内容或者转换文件格式的情况时让人苦恼.通常对于开发者而言,可选择通过使用组件的方式来 ...

随机推荐

  1. MFC---视图和窗口

    视类窗口 视类窗口是指程序运行后,显示信息的那一部分.对应的类是CTestOneView(TestOne表示项目名称)类,CTestOneView类是派生于CView类,而CView类又派生于CWnd ...

  2. vue--vuex 状态管理模式

    前言 vuex作为vue的核心插件,同时在开发中也是必不可少的基础模块,本文来总结一下相关知识点. 正文 1.基于单向数据流问题而产生了Vuex 单向数据流是vue 中父子组件的核心概念,props ...

  3. 第十三届蓝桥杯省赛C/C++ B组

    @(第十三届蓝桥杯省赛C/C++B组) A顺子日期 答案是1478 B顺子日期 答案14(如果012算的话) C刷题统计 数据范围1e18,所以不能直接暴力,先取余,再暴力剩下的 #include&l ...

  4. Go xmas2020 学习笔记 11、io.Reader

    11-Homework #2. 11-Reader. Reader interface. NewReader func. Reader Struct. Len .Size,Read func. Pra ...

  5. golang-grpc

    目录 1. 什么是grpc和protobuf 1.1 grpc 1.2 protobuf 2.go下grpc 2.1官网下载protobuf工具 2.2 下载go的依赖包 2.3 编写proto文件 ...

  6. MATLAB R2019b超详细安装教程(附完整安装文件)

    摘要:本文详细介绍Matlab的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用.本文目录如首页 ...

  7. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  8. python3 获取函数变量

    Python 3.8可以使用f字符串调试功能: 1 test_dict = {1: "1", 2: "2", 3: "3"} 2 print ...

  9. 干货 | Nginx负载均衡原理及配置实例

    一个执着于技术的公众号 Nginx系列导读 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 理解正向代理与反向代理的区别 ...

  10. mmsegmentation中构造自己的数据集和数据加载部分,跑现有demo

    在mmsegmentation中训练自己的数据集 先在mmse/dataset下创建一个python文件,我的名字是my_thermal_dataset.py 在其中填写下面内容 这里要注意,在设置s ...