如何将多种文件类型合并为一个 PDF?

如何将多种文件类型合并为一个 PDF?

我通常有多个不同类型的文档(docx、pdf、png、jpg),需要将它们合并为一个 PDF 文件。例如,我现在在目录中有以下文件:

DeclarationForHearing20180512.docx, ExhibitA.pdf, ExhibitB.png,
ExhibitC.jpg, TestimonyWitness1.docx, Evidence212232.pdf, etc...

我需要将这些文件合并为一个 PDF 文件。现在,我进入每个 Word 文档并将其导出为 PDF。然后我通过打印到 PDF 打印机将所有图像文件(png、jpg)转换为 PDF。然后我使用 PDFSam Basic 将所有生成的 PDF 合并为一个。

您可能已经注意到,这是一个繁琐的过程。理想情况下,我想编写一个批处理文件(或类似的:powershell 或 vbs),循环遍历目录中的文件,进行所有必要的转换,然后合并到最终文档中。

可以做这样的事吗?

答案1

我不认为单击一下就能完成任务。因此,我想针对其中一些问题提出解决方案。

1. VBA 代码将文件夹中的多个 Word 文件转换为单独的 pdf 文件。

Sub convertword()
    Dim irow As Integer
    Dim objWord As Word.Application
    Dim newdoc As Word.Document
    Set objWord = New Word.Application
    objWord.Visible = True

    irow = 4
    Do While Cells(irow, 2) <> Empty
        Set newdoc = objWord.Documents.Open(Cells(irow, 2).Value)
        newdoc.ExportAsFixedFormat OutputFileName:=Cells(irow, 3).Value, _
            ExportFormat:=wdExportFormatPDF
        newdoc.Close (False)
        irow = irow + 1
    Loop
    objWord.Quit
End Sub

注意:添加对 Microsoft Word 15.0 对象库的引用,然后尝试此代码。

这将帮助您使用 VBA 合并 PDF 文件。

Dim objCAcroPDDocDestination As Acrobat.CAcroPDDoc
Dim objCAcroPDDocSource As Acrobat.CAcroPDDoc
Dim i As Integer
Dim iFailed As Integer

On Error GoTo NoAcrobat:
Set objCAcroPDDocDestination = CreateObject("AcroExch.PDDoc")
Set objCAcroPDDocSource = CreateObject("AcroExch.PDDoc")


objCAcroPDDocDestination.Open (arrFiles(LBound(arrFiles))) 'open the first file

   For i = LBound(arrFiles) + 1 To UBound(arrFiles)
        objCAcroPDDocSource.Open (arrFiles(i))
        If objCAcroPDDocDestination.InsertPages(objCAcroPDDocDestination.GetNumPages - 1, objCAcroPDDocSource, 0, objCAcroPDDocSource.GetNumPages, 0) Then
          MergePDFs = True
        Else

          iFailed = iFailed + 1
        End If
        objCAcroPDDocSource.Close
    Next i
objCAcroPDDocDestination.Save 1, strSaveAs 'Save it as a new name
objCAcroPDDocDestination.Close
Set objCAcroPDDocSource = Nothing
Set objCAcroPDDocDestination = Nothing

NoAcrobat:
If iFailed <> 0 Then
    MergePDFs = False
End If
On Error GoTo 0
End Function

注意:从参考中添加 Adob​​e Acrobat X.0 类型库。

相关内容