2

Adobe 以外の製品を使用してプログラムで PDF ファイルを結合する方法については、SO やその他の場所で多くの提案があります。

私の有料コピーの Adob​​e Acrobat Standard (Reader ではない) を (かなり簡単に) 使用して、プログラムで 2 つ以上の PDF ファイルを新しい PDF ファイルに結合する方法はありません (結合 -> 複数のファイルを使用して手動で実行できることはわかっています)。

コマンド (たとえば、file1.pdf file2.pdf combined.pdf をコピー) を好むが、VBA に頼ることもいとわない。

アイデアをありがとう!

4

2 に答える 2

1
Sub MergePDFs(nDocs As Integer, BaseFileName As String)

    Dim AcroApp As Acrobat.CAcroApp
    Dim iDoc As Integer

    Dim BaseDocument As Acrobat.CAcroPDDoc
    Dim PartDocument As Acrobat.CAcroPDDoc

    Dim numPages As Integer

    Set AcroApp = CreateObject("AcroExch.App")

    Set BaseDocument = CreateObject("AcroExch.PDDoc")
    Set PartDocument = CreateObject("AcroExch.PDDoc")


    BaseDocument.Open (ActiveWorkbook.Path & "\" & BaseFileName & "_" & 1 & ".pdf")
    For iDoc = 2 To nDocs
        PartDocument.Open (ActiveWorkbook.Path & "\" & BaseFileName & "_" & iDoc & ".pdf")
        numPages = BaseDocument.GetNumPages()

        ' Insert the pages of Part after the end of Base
        If BaseDocument.InsertPages(numPages - 1, PartDocument, 0, PartDocument.GetNumPages(), True) = False Then
            MsgBox "Cannot insert pages"
        End If
        PartDocument.Close
    Next iDoc
    If BaseDocument.Save(PDSaveFull, ActiveWorkbook.Path & "\" & BaseFileName & ".pdf") = False Then
        MsgBox "Cannot save the modified document"
    Else
        ' Remove intermediate documents
        For iDoc = 1 To nDocs
            Kill ActiveWorkbook.Path & "\" & BaseFileName & "_" & iDoc & ".pdf"
        Next iDoc
    End If
    BaseDocument.Close

    AcroApp.Exit
    Set AcroApp = Nothing
    Set BaseDocument = Nothing
    Set PartDocument = Nothing

End Sub
于 2012-06-27T07:42:51.153 に答える
0

Acrobat 用の VBA はありません。VBA は Microsoft のものです (そして、私が読んだものからすぐに消えていくようです [編集: それを打ってください; Office 2010 ではまだ生きていて、うまくいっているようです])。

Acrobat SDKを使用すると、Acrobat を自動化し、やりたいことを実行できますが、気弱な人向けではありません。他の場所で読んだ無料のソリューションの 1 つを使用する方が簡単かもしれません (とにかく短期的には)。

于 2009-09-30T04:24:33.030 に答える