首页 > 代码库 > 各种PDF转换问题(二).将OFFICE文档转为PDF文档
各种PDF转换问题(二).将OFFICE文档转为PDF文档
原则上说,PDF一旦创建,其本身是不可以修改的(某些操作,如批注等,则不属于此范围),又因为PDF有轻量,格式通用,允许包含的内容丰富等诸多优点,故很多企事业单位都喜欢将PDF作为最后的文档发放格式。OFFICE转PDF,则成了一个很常用的操作。
OFFICE转PDF的手段很多,但最主流的,可能有这么三种:
1.使用微软的免费OFFICE插件SaveAsPDFandXPS。这个插件可以直接到微软官网下载,特点是免费,转换风险低。插件安装好之后,会在OFFICE开始菜单中,“另存为”子项,出现一个"PDF或XPS“项,点击此项,即可开始OFFICE转PDF操作。而若要使用程序调用OFFICE的COM库来实现转换,则操作就不是很统一,大致有两种方式(一下程序均以C#为例):
1)Document对象的SaveAs方法:
public static void conv(Document document, object oTarget, object oFormat) { document.SaveAs(ref oTarget, ref oFormat, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing, ref m_oMissing); }
对于WORD来说,这里的oFormat,要求是:WdSaveFormat.wdFormatPDF,而PowerPoint这里的格式要求是PpSaveAsFileType.ppSaveAsPDF
2)Excel似乎只能使用Workbook对象的ExportAsFixedFormat来进行转PDF操作:
public static void save(Workbook workbook, object oTarget, XlFixedFormatType oFormat) { //workbook.Save(); workbook.ExportAsFixedFormat(oFormat, oTarget, XlFixedFormatQuality.xlQualityStandard, m_oTrue, m_oFalse, m_oMissing, m_oMissing, m_oMissing, m_oMissing); }
2.使用Acrobat的OFFICE插件。它的特点是速度快,定制能力比强。一般安装了Adobe Acrobat之类的软件,这个插件就会自动装上。手动操作此插件很简单,其操作项也在OFFICE开始菜单中的”另存为“中。但使用程序来自动操作,本人尚未研究过(因为第1种方式已经能够满足我的要求了)。
3.使用Aspose控件来完成PDF相关操作。Aspose是一组很强大的控件,我所接触到的,主要是OFFICE和PDF相关的部分。使用Aspose,可以完全脱离OFFICE环境来操作OFFICE--转PDF自然不在话下,PDF转各种图片也很方便。程序自动化实现,可以参考其官方例子:
http://www.aspose.com/demos/default.aspx
它唯一的缺憾,可能就是收费比较贵。
各种PDF转换问题(二).将OFFICE文档转为PDF文档