基于C#语言实现的PDF与OFFICE文档之间的转换小工具

(整期优先)网络出版时间:2021-11-04
/ 2

基于 C#语言实现的 PDF与 OFFICE文档之间的转换小工具

唐健

桂林信息科技学院,广西 桂林 541004

摘要:由于在日常工作当中经常需要将Office文档格式进行转换,而网络上大多数提供的是收费服务。本论文则主要研究如何通过免费的组件来实现少量的文件格式转换,以满足个人文档资料格式转换的需求,并分析具体实现的方法。

关键词: C#;.net;PDF;OFFICE

中图分类号:TP311


  1. 引言

随着网络的大力普及,越来越多的人们通过互联网来查找资料,而在查找文档资料的过程当中,经常会遇到需要转换文档类型的情况,虽然在网络上也有着各种各样的转换工具可以使用,但这些工具经常是需要扫码、注册、登陆甚至需要授权读取个人信息才能使用,并且有的还需要充值才能提供服务。

为了更经济、方便、快捷地实现文档间的转换,本人将通过使用免费的Spire.PDF For .NET以及Spire.XLS For .NET来实现常用的几种文档格式之间的转换。

  1. Spire.PDF for .NET简单介绍

Spire.PDF for .NET 是一款独立的PDF 控件,用于 .NET 程序中创建、读取、写入、编辑和操作PDF文档。使用Spire.PDF类库,开发人员可以新建一个PDF文档或者对现有的PDF文档进行处理,且无需安装Adobe Acrobat。

  1. 具体实现方法

本人使用的开发环境是Microsoft Visual Studio2013,使用的是C#语言,以Winform桌面小程序的形式来呈现小工具,最后运行效果如图1所示。

61836b3299143_html_998707d6644cedd3.png

1 文件转换小工具

本文主要论述如何由PDF转换成Word的具体实现的方式:

  1. 首先新建项目,选择C#语言,Windows窗体应用程序。

  2. 由于小工具是实现的PDF与Office间文档之间的双向转换,所以需要在引用当中添加引用Microsoft.Office.Interop.Excel、Microsoft.Office. Interop.Powerpoint、Microsoft.Office. Interop.Word、Spire.PDF、Spire.License、Spire.XLS(后三个可在https://www.e-iceblue.cn/免费下载)七个DLL,前四个是用于Office转PDF时使用,后三个是用于PDF转Office时使用。除了添加引用外,还需要添加命名空间,Spire.Pdf以及Office相关的几个命名空间:Microsoft.Office.Interop.Excel、 Microsoft.Office.Interop. PowerPoint、 Microsoft.Office.Interop.Word。

  3. 添加Click事件,如:PDF转Word的单击事件。

//添加click事件

private void btnPdfToWord_Click(object sender, EventArgs e)

{

string strpath=txtFile.Text.Trim();

//获取当前需要转换的文件路径,判断路径是否为空

if (strpath == "")

{

MessageBox.Show("还未添加文件!");

}

else

{

pdftoWord(strpath);//调用具体的实现方法

}

}

  1. PDF转换成Word 的具体实现方法。

public void pdftoWord(string sourcePath)

{

string targetfileName="";//生成的目标文件名

Random ran = new Random();//产生随机数

targetfileName = decimal.Parse(string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmssfff"), ran.Next(100, 999)));//使用时间加随机数生成目标文件名,避免重名

if (IsAllowedExtension(sourcePath))//首先需要判断是否为Word文件

{

PdfDocument doc = new PdfDocument();//创建一个实例

doc.LoadFromFile(sourcePath); //加载源文件

targetfileName = "WORD" + targetfileName.ToString();

doc.SaveToFile(@"E:\changed\" + targetfileName + ".doc", FileFormat.DOC);//转换成Word的目标文件名均以WORD开头,用以区分

doc.Close();

MessageBox.Show("转换成功");

}

else

MessageBox.Show("文件格式不对。");

}

  1. PDF转Excel的实现方法与Word类似,不再重述。

  1. 目前存在的问题

由于使用的是免费版本,对于文档大小,页码数有限制,所以当转换过大的文档时会存在部分文档不能转化,PDF转WORD只能转最多10页,但是由于此工具为方便个人使用,普通文档转换是够用的。如需商业使用,需要转换大量文档的话,则需要购买收费版本的Spire.PDF For .NET。

  1. 实现效果

如图二所示,test.docx为源文件,PDF20211010143830810204.PDF为转换后的PDF文件,再依据此转换后的PDF文件为基础又能转换成Word、Excel文件。本小工具还实现了Excel及PPT转PDF文件的功能。

61836b3299143_html_8f5746c1d6e7ce0a.png

图二 文档间转换后的文件

如图三所示为WORD转PDF后的效果,图四为PDF转WORD后的效果,图五为PDF转Excel后效果呈现。

经测试,目前速度根据源文件大小而言,基本都是在可接受范围内,效果也是比较清晰,格式也未有错乱现象,满足日常工作所需。

61836b3299143_html_d916c81649c9a34f.png

图三 WordPDF效果

61836b3299143_html_a6dc070dcf707164.png

图四 PDFWord效果

61836b3299143_html_5faa0e0c8ad2aeb.png

图四 PDFExcel效果

  1. 结束语

本文主要研究PDF与OFFICE文档之间的双向转换,并且是基于免费的、独立的PDF 控件Spire.PDF For .NET,不仅实现简单,更是使用方便,经济实惠。通过简单的接口调用,也可以使初学者学会使用,对软件开发爱好者、学习者都是具有积极的意义,该组件仍有更多更强的功能提供使用。


参考文献


[1] 李金峰..NET(C#)中使用pdf2htmlEX实现pdf向html的格式转换器[J].电脑知识与技术,2016,12(09):102-104.