各种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);
        }


补充 - 有意思的一点是:如果你引用的是VS Tools for Office中关于Office 2007版本的.net库,那么,你的程序最终能同时支持Office 2010和Office 2013。可以参考微软的相关说明:https://msdn.microsoft.com/zh-cn/library/bb772080.aspx

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

它唯一的缺憾,可能就是收费比较贵。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值