设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2500|回复: 10
打印 上一主题 下一主题

[与其它组件] 【源码开放】Word与PDF批量互转(要求版本:2007以上)

[复制链接]
跳转到指定楼层
1#
发表于 2015-9-23 12:00:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
       这是培训群里一个群友今天提出的问题。顺手做了个例子,供大家使用。

       据说,将文件发布为XPS或者PDF是Office 2007版就有的功能,——不过我几乎没用过2007版,而是2010和2013版的。由此PDF与Word之间的互转就方便了很多。需要注意的是:


  • 扫描的PDF属于图片形式,如果使用了这个功能,我只能告诉你,这会成为你了解乱码的一个途径。
  • 另外,加密的PDF应该也是无法转换的。
  • 即便PDF可以转Word,如果含有表格或者图片等对象,往往会出现格式问题,需要进一步修改。所以不太建议这样转。

       不过,我们Word批量转PDF还是没问题的。按惯例,这时候应该贴代码了(PDFToWord请参考附件,采用“打开/另存”方式即可转,这里不再贴代码):

  1. Sub WordToPDF()
  2. '文件拾取器
  3. Dim fd As FileDialog
  4. '定义word应用程序和word文档组件
  5. Dim objWord As Word.Application
  6. Dim doc As Word.Document
  7. '定义PDF文件名(绝对路径)
  8. Dim strNewName As String

  9. Dim i As Long

  10. Set fd = Application.FileDialog(msoFileDialogFilePicker)
  11. With fd
  12.         .AllowMultiSelect = True
  13.         '清空默认,只允许打开word文档
  14.         .Filters.Clear
  15.         .Filters.Add "Word文档", "*.doc;*.docx"
  16.         '如果打开
  17.         If .Show = -1 Then
  18.             Set objWord = New Word.Application
  19.             For i = 1 To fd.SelectedItems.Count
  20.                 Set doc = objWord.Documents.Open(fd.SelectedItems(i))
  21.                 strNewName = Left(doc.FullName, InStr(1, doc.FullName, ".") - 1) & ".pdf"
  22.             '如果文件存在则删除
  23.                 If Len(Dir(strNewName)) > 0 Then Kill strNewName
  24.             '导出PDF文档,并关闭Word
  25.                 doc.ExportAsFixedFormat strNewName, wdExportFormatPDF
  26.                 doc.Close
  27.             Next
  28.           MsgBox "已转换完毕", vbInformation, "Roych提醒您"
  29.         End If
  30. End With
  31. objWord.Quit
  32. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖 订阅订阅
10#
发表于 2016-4-9 20:32:04 | 只看该作者
好东西
回复

使用道具 举报

9#
发表于 2016-3-16 22:48:43 | 只看该作者
好的,下载下来试一下,谢了

点击这里给我发消息

8#
发表于 2015-11-29 09:58:53 | 只看该作者
好东西,收了,谢谢分享
7#
发表于 2015-11-28 21:18:07 | 只看该作者
ROYCH,您这个是适合于什么版本呀?
6#
发表于 2015-11-15 18:31:55 | 只看该作者
WORD2003不能批量转,可以用半手工的方法,具体方法是看附件,可能有高手已经知道了,我也许发的太多余了吧,不要怪我哟!{:soso_e106:}{:soso_e183:}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2015-9-25 07:36:01 | 只看该作者
谢谢分享!
回复

使用道具 举报

4#
发表于 2015-9-23 17:34:18 | 只看该作者
好奇,学习下
3#
发表于 2015-9-23 14:35:54 | 只看该作者
word2003能用吗?

点评

不能。转换器是2007才有。如果用2003的话,需要使用Adobe PDF Reader控件的API,比较复杂,而且可能会出现控件无法注册的问题。  发表于 2015-9-23 14:40

点击这里给我发消息

2#
发表于 2015-9-23 13:00:35 | 只看该作者
下载瞧瞧。谢谢分享!
以前一直要使用API来实现这个,的确很烦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 19:17 , Processed in 0.123423 second(s), 39 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表