设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

自制PDF合并小工具

[复制链接]
跳转到指定楼层
1#
发表于 2023-11-12 22:29:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 worryd1 于 2023-11-14 22:10 编辑
因工作需要打印大量的发票,两张打印一张A4纸正好,而合并软件收费居多而且不方便,所以自己做了一个(也都是网上查和总结的)希望对大家有帮助
1,先安装 Adobe Acrobat 软件,然后添加acrobat access 3.0 Type Libarry 引用
2,分别设置了合并文件夹内所有PDF文件,和选择PDF文件合并两种方式3,因为级别不够不能发附件,把源码直接发出来
[free]

  1. Private Sub 合并PDF1_Click()
  2. 'On Error GoTo ErrorHandler:
  3. Dim PDFdoc As Object, TempPDFdoc As Object
  4. Dim PageNum As Long
  5. Dim PDFFolder As String, PDFFileName As String
  6. If Len(Nz(Me.SaveFile, "")) = 0 Then
  7.     Call SaveFile_Click
  8.     Exit Sub
  9. End If
  10. PDFFolder = Me.SaveFile & ""
  11. Set PDFdoc = CreateObject("AcroExch.PDDoc")
  12. Set TempPDFdoc = CreateObject("AcroExch.PDDoc")

  13. TempPDFdoc.Create


  14. For i = 0 To Me.plist.ListCount - 1
  15.     PDFFileName = Me.plist.ItemData(i)
  16.     If PDFdoc.Open(PDFFileName) Then
  17.         PageNum = PDFdoc.GetNumPages
  18.         TempPDFdoc.InsertPages TempPDFdoc.GetNumPages - 1, PDFdoc, 0, PageNum, 0
  19.         PDFdoc.Close
  20.     End If
  21. Next



  22.     With TempPDFdoc
  23.         .Save PDSaveFull, PDFFolder & "合并.pdf"
  24.         .Close
  25.     End With


  26. Exithere:

  27.     Exit Sub

  28. ErrorHandler:
  29.         MsgBox Err.Description, vbInformation, "提示"
  30.         Resume Exithere
  31. End Sub

  32. Private Sub PDF选择按钮_Click()
  33.     With Application.FileDialog(3)
  34.         .AllowMultiSelect = False
  35.         .Filters.Clear
  36.         .Filters.Add *.pdf"
  37.         If .Show Then Me.plist.AddItem .SelectedItems(1)
  38.     End With
  39. End Sub


  40. Sub 合并PDF文件()
  41. Dim PDFdoc As Object, TempPDFdoc As Object
  42. Dim PageNum As Long
  43. Dim PDFFolder As String, PDFFileName As String
  44. PDFFolder = Me.SourceFile & ""
  45. Set PDFdoc = CreateObject("AcroExch.PDDoc")
  46. Set TempPDFdoc = CreateObject("AcroExch.PDDoc")
  47. TempPDFdoc.Create
  48. PDFFileName = Dir(PDFFolder & "*.pdf")
  49. Do
  50.     If PDFdoc.Open(PDFFolder & PDFFileName) Then
  51.         PageNum = PDFdoc.GetNumPages
  52.         TempPDFdoc.InsertPages TempPDFdoc.GetNumPages - 1, PDFdoc, 0, PageNum, 0
  53.         PDFdoc.Close
  54.     End If
  55.     PDFFileName = Dir
  56. Loop Until PDFFileName = ""
  57. With TempPDFdoc
  58.     .Save PDSaveFull, PDFFolder & "合并.pdf"
  59.     .Close
  60. End With
  61. Set PDFdoc = Nothing
  62. Set TempPDFdoc = Nothing
  63. End Sub
复制代码



本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 20:07 , Processed in 0.085847 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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