首页 > 代码库 > 各种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文档