将word文件转换成PDF的两种方法
由于工作需要,使用了两种方式实现了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的两种方法相关推荐
- 用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)
用Python批处理将WORD文件转换成PDF格式 一.问题分析 key words:批处理.WORD转换PDF.办公自动化 二.材料准备 三.代码实现 ☆其他问题:日常遇到问题,整理笔记不易,欢迎交 ...
- Acrobat如何将word文件转换成pdf格式
很多朋友电脑装了Adobe Acrobat,却不知道Acrobat如何将word文件转换成pdf格式,现在就给大家讲解一下.比如,我们电脑安装Adobe Acrobat Professional 7 ...
- 将ppt转换成pdf的三种方法分享
在我们工作中,总免不了将一些ppt幻灯片里的内容复制到pdf文档中,一些同仁遇到这种现象常常不知道如何下手,有的甚至直接将ppt文本内容复制到word文档中,然后保存成pdf格式,这样打开肯定会导致排 ...
- 如何将word文件转换成pdf文件,一键轻松搞定
因为Word的文件可能会使文件和图片表格综合在一起的情况,在word转PDF的时候可能会导致排版会出现一些问题,影响阅读体验,尤其是在批量处理word转PDF的时候,更容易出现类似的情况,关于如何把w ...
- 将XPS文件转换成PDF格式有哪些方法?
XPS文件在我们日常工作中使用比较少,大部分时候我们都会将它转换成PDF格式后进行修改或保存等操作,那么如何将XPS转换成PDF呢? 方法1:修改后缀 我们都知道XPS跟PDF一样都可以通过虚拟打印生 ...
- 怎么将pdf文件转换成图片?三种方法
在实际的工作过程中,PDF是非常常见的文档存储格式,也是很多网站默认的保存格式.对于PDF文件来说,其具备很多其他文件格式没有的优势和特点.例如,在PDF文件中,其排版整齐且固定,浏览直观且方便,为工 ...
- C#实现将excel转换成pdf的三种方法
文章目录 1.使用免费版的spire 2.使用Microsoft.Office.Interop.Excel 3.使用Aspose.Cells 本人经过一上午的搜索,总结了C#将excel转pdf的三种 ...
- 集合转换成数组的两种方法---toArray()和toArray(T[] a)
实际开发中经常会用到将集合转换成数组进行操作,list有两种方法可以进行数组的转换. 首先看下List的这两个方法的说明: Object[ ] toArray() :返回按适当顺序包含列表中的所有元 ...
- python(opencv2、PIL)将图片透明背景转换成白色背景的两种方法
对于急需要用的朋友可以直接用下面的代码 opencv2实现 import cv2def alpha2white_opencv2(img):sp=img.shapewidth=sp[0]height=s ...
最新文章
- nodejs中的exports和module.exports
- 【收藏】用户私自搭建伪服务器怎么办?禁它
- 秒杀系统优化方案(下)吐血整理
- 深度学习(莫烦 神经网络 lecture 3) Keras
- 三大运营商一季度财报出炉:营收集体下降
- 小学六年级计算机教案超链接,六年级信息技术《制作其他网页》优秀教案
- 【死磕DDD】聊聊领域建模方法论
- 商品进销存管理系统、ERP系统源码
- ImGui添加背景图片的两种方式
- 鸿蒙系统安装第三方,网友表示:鸿蒙最新系统可以通过连接U盘安装第三方软件了...
- 九大PHP开源Wiki(维基百科)程序评测
- C/C++ 语言 const 关键字
- 常用音频工具介绍与汇总
- mockjs详细介绍
- L1-051 打折 (5 分)
- Android程序员必会!Android面试必刷的200道真题,附答案
- 六大身边的生活场景 看令你震惊的大数据
- 明月镜片在创业板注册:营收增速骤降,产能利用率走低还要再扩产
- 计算摄影:基于深度学习的畸变校正
- 手帐秀秀,新版重生,可惜审核不通过,发个美图秀一下先吧。
热门文章
- HuaWei ❉ DNS详解
- Linux云计算架构-系统调优【CPU、IO、网络、内核参数调优】
- persevere的用法_persevere是什么意思_persevere怎么读_persevere翻译_用法_发音_词组_同反义词_坚忍_熬住-新东方在线英语词典...
- 软件测试年终总结报告模板
- msp430的定时器,pwm,CCR0,CCR1,CCR2 和多时段计时的基础知识
- 还在删减文件?知乎百万人追捧的内存增加术,让你的内存秒翻倍
- 项目上传至Gitte
- ubuntu错误dpkg:error processing realplay
- 【图像分割】直觉模糊C均值聚类的图像分割IFCM
- Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解