由于工作需要,使用了两种方式实现了word文件转PDF的功能。以下的程序是我使用VB6编写,供大家参考。

第一种方法,使用PDFMAKERAPILib,使用这种方法,可以设置文件的安全性。这种方式是ADOBE不推荐的方式,因为Adobe从来没有公布过PDFMAKERAPILib的API,不建议大家使用,但是经过测试,Acrobat pro 8和acrobat pro 7上都能正常执行。

'------------------------------------------------------------------------------------------
'【功能】将Word文件转换成PDF文件
'------------------------------------------------------------------------------------------
Public Function convertDocToPdf(ByVal docFileName As String, ByVal pdfFileName As String)
    Dim pdfMarker As PDFMAKERAPILib.PDFMakerApp
   
    Set pdfMarker = New PDFMAKERAPILib.PDFMakerApp
   
    pdfMarker.CreatePDF srcFilePath:=docFileName, pdfFilePath:=pdfFileName, bShowProgress:=False, _
                        psettings:=createConversionSettings(), bConvertsilent:=True
   
    Set pdfMarker = Nothing
   
End Function

Private Function createConversionSettings() As Object
   
    Dim settings As ConversionSettings
   
    Set settings = New ConversionSettings
   
    Dim security As SecuritySettings
    Set security = New SecuritySettings
   
    security.AllowedChanges = kAllowChangesNone
   
    security.AttachmentPasswd = "123456"
    security.AttachmentPasswdNeeded = True
   
    security.EnableCopyingContent = False
   
    security.PermsPasswdNeeded = True
    security.PermsPasswd = "123456"
   
    security.EncryptAttachmentsOnly = True
    security.EnablePlaintextMetadata = False
    security.EnableTextAccessibility = False
   
    security.AllowedPermissionsBits = kAllowedPermNone
   
    security.PrintingModeAllowed = kPrintingAllowedHighRes
   
    Call settings.SetSecuritySettings(security)
   
    Set createConversionSettings = settings
End Function

第二种方法,使用Word的打印功能,把文件转换成ps文件。再使用PdfDistiller Api把ps文件,转换成PDF。这是最常用的方法,程序的兼容性会比较强一些,但是不能设置pdf文件的安全性。

Private Function convertDocToPdf_bak(ByVal docFileName As String, ByVal pdfFileName As String)

Dim printer As String
    printer = Util.getAdobePrinter
   
    If Len(printer) = 0 Then
        Err.Raise 1000, , "不能取得Adobe的打印机,请确认是否安装Adobe Acrobat Professional"
    End If
   
    Dim wordApp As Object
   
    On Error GoTo convertPdfToDocError
   
    Set wordApp = CreateObject("Word.application")
   
    Dim prnFile As String
   
    prnFile =  "c:/1234.prn"
   
    wordApp.Documents.Open docFileName
   
    '选择Adobe的打印机
    wordApp.WordBasic.FilePrintSetup printer:=printer, DoNotSetAsSysDefault:=1
   
    '将Word文件通过打印功能,输出成prn文件。
    wordApp.PrintOut Range:=0, Copies:=1, PageType:=0, _
                     ManualDuplexPrint:=False, Background:= _
                     True, PrintZoomColumn:=0, PrintZoomRow:=0, _
                     PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0, OutputFileName:="", _
                     Append:=False, _
                     PrintToFile:=True, OutputFileName:=prnFile
   
    '使用PDF的API,将prn文件转成PDF文件
    Dim pdfDist As Object
    Set pdfDist = New ACRODISTXLib.PdfDistiller
    pdfDist.FileToPDF prnFile, pdfFileName, ""

convertPdfToDocError:
    If IsObject(wordApp) Then
        wordApp.Quit
    End If
   
    If (Err.Number > 0) Then
        Dim errDesc, errSrc As String
        errDesc = Err.Description
        errSrc = Err.source
       
        Err.Raise Err.Number, errSrc, errDesc
    End If
End Function

'--------------------------------------------------------------------------------------
'【功能】取得Adobe打印机的名称
'--------------------------------------------------------------------------------------
Public Function getAdobePrinter()
    getAdobePrinter = ""
    Dim i As Integer
   
    For i = 0 To Printers.Count - 1
        Dim deviceName As String
        deviceName = LCase(Printers(i).deviceName)
        Dim pos As Integer
       
        pos = InStr(1, deviceName, "adobe")
       
        If (pos > 0) Then
            getAdobePrinter = Printers(i).deviceName
            Exit For
        End If
    Next
   
End Function

将word文件转换成PDF的两种方法相关推荐

  1. 用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)

    用Python批处理将WORD文件转换成PDF格式 一.问题分析 key words:批处理.WORD转换PDF.办公自动化 二.材料准备 三.代码实现 ☆其他问题:日常遇到问题,整理笔记不易,欢迎交 ...

  2. Acrobat如何将word文件转换成pdf格式

    很多朋友电脑装了Adobe Acrobat,却不知道Acrobat如何将word文件转换成pdf格式,现在就给大家讲解一下.比如,我们电脑安装Adobe Acrobat  Professional 7 ...

  3. 将ppt转换成pdf的三种方法分享

    在我们工作中,总免不了将一些ppt幻灯片里的内容复制到pdf文档中,一些同仁遇到这种现象常常不知道如何下手,有的甚至直接将ppt文本内容复制到word文档中,然后保存成pdf格式,这样打开肯定会导致排 ...

  4. 如何将word文件转换成pdf文件,一键轻松搞定

    因为Word的文件可能会使文件和图片表格综合在一起的情况,在word转PDF的时候可能会导致排版会出现一些问题,影响阅读体验,尤其是在批量处理word转PDF的时候,更容易出现类似的情况,关于如何把w ...

  5. 将XPS文件转换成PDF格式有哪些方法?

    XPS文件在我们日常工作中使用比较少,大部分时候我们都会将它转换成PDF格式后进行修改或保存等操作,那么如何将XPS转换成PDF呢? 方法1:修改后缀 我们都知道XPS跟PDF一样都可以通过虚拟打印生 ...

  6. 怎么将pdf文件转换成图片?三种方法

    在实际的工作过程中,PDF是非常常见的文档存储格式,也是很多网站默认的保存格式.对于PDF文件来说,其具备很多其他文件格式没有的优势和特点.例如,在PDF文件中,其排版整齐且固定,浏览直观且方便,为工 ...

  7. C#实现将excel转换成pdf的三种方法

    文章目录 1.使用免费版的spire 2.使用Microsoft.Office.Interop.Excel 3.使用Aspose.Cells 本人经过一上午的搜索,总结了C#将excel转pdf的三种 ...

  8. 集合转换成数组的两种方法---toArray()和toArray(T[] a)

    实际开发中经常会用到将集合转换成数组进行操作,list有两种方法可以进行数组的转换. 首先看下List的这两个方法的说明:  Object[ ] toArray() :返回按适当顺序包含列表中的所有元 ...

  9. python(opencv2、PIL)将图片透明背景转换成白色背景的两种方法

    对于急需要用的朋友可以直接用下面的代码 opencv2实现 import cv2def alpha2white_opencv2(img):sp=img.shapewidth=sp[0]height=s ...

最新文章

  1. nodejs中的exports和module.exports
  2. 【收藏】用户私自搭建伪服务器怎么办?禁它
  3. 秒杀系统优化方案(下)吐血整理
  4. 深度学习(莫烦 神经网络 lecture 3) Keras
  5. 三大运营商一季度财报出炉:营收集体下降
  6. 小学六年级计算机教案超链接,六年级信息技术《制作其他网页》优秀教案
  7. 【死磕DDD】聊聊领域建模方法论
  8. 商品进销存管理系统、ERP系统源码
  9. ImGui添加背景图片的两种方式
  10. 鸿蒙系统安装第三方,网友表示:鸿蒙最新系统可以通过连接U盘安装第三方软件了...
  11. 九大PHP开源Wiki(维基百科)程序评测
  12. C/C++ 语言 const 关键字
  13. 常用音频工具介绍与汇总
  14. mockjs详细介绍
  15. L1-051 打折 (5 分)
  16. Android程序员必会!Android面试必刷的200道真题,附答案
  17. 六大身边的生活场景 看令你震惊的大数据
  18. 明月镜片在创业板注册:营收增速骤降,产能利用率走低还要再扩产
  19. 计算摄影:基于深度学习的畸变校正
  20. 手帐秀秀,新版重生,可惜审核不通过,发个美图秀一下先吧。

热门文章

  1. HuaWei ❉ DNS详解
  2. Linux云计算架构-系统调优【CPU、IO、网络、内核参数调优】
  3. persevere的用法_persevere是什么意思_persevere怎么读_persevere翻译_用法_发音_词组_同反义词_坚忍_熬住-新东方在线英语词典...
  4. 软件测试年终总结报告模板
  5. msp430的定时器,pwm,CCR0,CCR1,CCR2 和多时段计时的基础知识
  6. 还在删减文件?知乎百万人追捧的内存增加术,让你的内存秒翻倍
  7. 项目上传至Gitte
  8. ubuntu错误dpkg:error processing realplay
  9. 【图像分割】直觉模糊C均值聚类的图像分割IFCM
  10. Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解