Office中国论坛/Access中国论坛

标题: 自制PDF合并小工具 [打印本页]

作者: worryd1    时间: 2023-11-12 22:29
标题: 自制PDF合并小工具
本帖最后由 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
复制代码








欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3