Office中国论坛/Access中国论坛
标题:
【源码开放】Word与PDF批量互转(要求版本:2007以上)
[打印本页]
作者:
roych
时间:
2015-9-23 12:00
标题:
【源码开放】Word与PDF批量互转(要求版本:2007以上)
这是培训群里一个群友今天提出的问题。顺手做了个例子,供大家使用。
据说,将文件发布为XPS或者PDF是Office 2007版就有的功能,——不过我几乎没用过2007版,而是2010和2013版的。由此PDF与Word之间的互转就方便了很多。需要注意的是:
扫描的PDF属于图片形式,如果使用了这个功能,我只能告诉你,这会成为你了解乱码的一个途径。
另外,加密的PDF应该也是无法转换的。
即便PDF可以转Word,如果含有表格或者图片等对象,往往会出现格式问题,需要进一步修改。所以不太建议这样转。
不过,我们Word批量转PDF还是没问题的。按惯例,这时候应该贴代码了(PDFToWord请参考附件,采用“打开/另存”方式即可转,这里不再贴代码):
Sub WordToPDF()
'文件拾取器
Dim fd As FileDialog
'定义word应用程序和word文档组件
Dim objWord As Word.Application
Dim doc As Word.Document
'定义PDF文件名(绝对路径)
Dim strNewName As String
Dim i As Long
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = True
'清空默认,只允许打开word文档
.Filters.Clear
.Filters.Add "Word文档", "*.doc;*.docx"
'如果打开
If .Show = -1 Then
Set objWord = New Word.Application
For i = 1 To fd.SelectedItems.Count
Set doc = objWord.Documents.Open(fd.SelectedItems(i))
strNewName = Left(doc.FullName, InStr(1, doc.FullName, ".") - 1) & ".pdf"
'如果文件存在则删除
If Len(Dir(strNewName)) > 0 Then Kill strNewName
'导出PDF文档,并关闭Word
doc.ExportAsFixedFormat strNewName, wdExportFormatPDF
doc.Close
Next
MsgBox "已转换完毕", vbInformation, "Roych提醒您"
End If
End With
objWord.Quit
End Sub
复制代码
[attach]57232[/attach]
作者:
admin
时间:
2015-9-23 13:00
下载瞧瞧。谢谢分享!
以前一直要使用API来实现这个,的确很烦
作者:
aodou51899
时间:
2015-9-23 14:35
word2003能用吗?
作者:
ithink2012
时间:
2015-9-23 17:34
好奇,学习下
作者:
xie62
时间:
2015-9-25 07:36
谢谢分享!
作者:
purplerose
时间:
2015-11-15 18:31
WORD2003不能批量转,可以用半手工的方法,具体方法是看附件,可能有高手已经知道了,我也许发的太多余了吧,不要怪我哟!{:soso_e106:}{:soso_e183:}
作者:
purplerose
时间:
2015-11-28 21:18
ROYCH,您这个是适合于什么版本呀?
作者:
WFH6898
时间:
2015-11-29 09:58
好东西,收了,谢谢分享
作者:
purplerose
时间:
2016-3-16 22:48
好的,下载下来试一下,谢了
作者:
newglord
时间:
2016-4-9 20:32
好东西
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3