桂林信息科技学院,广西 桂林 541004
摘要:由于在日常工作当中经常需要将Office文档格式进行转换,而网络上大多数提供的是收费服务。本论文则主要研究如何通过免费的组件来实现少量的文件格式转换,以满足个人文档资料格式转换的需求,并分析具体实现的方法。
关键词: C#;.net;PDF;OFFICE
中图分类号:TP311
引言
随着网络的大力普及,越来越多的人们通过互联网来查找资料,而在查找文档资料的过程当中,经常会遇到需要转换文档类型的情况,虽然在网络上也有着各种各样的转换工具可以使用,但这些工具经常是需要扫码、注册、登陆甚至需要授权读取个人信息才能使用,并且有的还需要充值才能提供服务。
为了更经济、方便、快捷地实现文档间的转换,本人将通过使用免费的Spire.PDF For .NET以及Spire.XLS For .NET来实现常用的几种文档格式之间的转换。
Spire.PDF for .NET简单介绍
Spire.PDF for .NET 是一款独立的PDF 控件,用于 .NET 程序中创建、读取、写入、编辑和操作PDF文档。使用Spire.PDF类库,开发人员可以新建一个PDF文档或者对现有的PDF文档进行处理,且无需安装Adobe Acrobat。
具体实现方法
本人使用的开发环境是Microsoft Visual Studio2013,使用的是C#语言,以Winform桌面小程序的形式来呈现小工具,最后运行效果如图1所示。
图1 文件转换小工具
本文主要论述如何由PDF转换成Word的具体实现的方式:
首先新建项目,选择C#语言,Windows窗体应用程序。
由于小工具是实现的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。
添加Click事件,如:PDF转Word的单击事件。
//添加click事件
private void btnPdfToWord_Click(object sender, EventArgs e)
{
string strpath=txtFile.Text.Trim();
//获取当前需要转换的文件路径,判断路径是否为空
if (strpath == "")
{
MessageBox.Show("还未添加文件!");
}
else
{
pdftoWord(strpath);//调用具体的实现方法
}
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("文件格式不对。");
}
PDF转Excel的实现方法与Word类似,不再重述。
目前存在的问题
由于使用的是免费版本,对于文档大小,页码数有限制,所以当转换过大的文档时会存在部分文档不能转化,PDF转WORD只能转最多10页,但是由于此工具为方便个人使用,普通文档转换是够用的。如需商业使用,需要转换大量文档的话,则需要购买收费版本的Spire.PDF For .NET。
实现效果
如图二所示,test.docx为源文件,PDF20211010143830810204.PDF为转换后的PDF文件,再依据此转换后的PDF文件为基础又能转换成Word、Excel文件。本小工具还实现了Excel及PPT转PDF文件的功能。
图二 文档间转换后的文件
如图三所示为WORD转PDF后的效果,图四为PDF转WORD后的效果,图五为PDF转Excel后效果呈现。
经测试,目前速度根据源文件大小而言,基本都是在可接受范围内,效果也是比较清晰,格式也未有错乱现象,满足日常工作所需。
图三 Word转PDF效果
图四 PDF转Word效果
图四 PDF转Excel效果
结束语
本文主要研究PDF与OFFICE文档之间的双向转换,并且是基于免费的、独立的PDF 控件Spire.PDF For .NET,不仅实现简单,更是使用方便,经济实惠。通过简单的接口调用,也可以使初学者学会使用,对软件开发爱好者、学习者都是具有积极的意义,该组件仍有更多更强的功能提供使用。
参考文献:
[1] 李金峰..NET(C#)中使用pdf2htmlEX实现pdf向html的格式转换器[J].电脑知识与技术,2016,12(09):102-104.