Como combinar vários tipos de arquivos em um único PDF?

0

Normalmente, tenho vários documentos de diferentes tipos (docx, pdf, png, jpg) que precisam ser combinados em um único arquivo PDF. Por exemplo, eu tenho os seguintes arquivos agora no diretório:

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

Eu preciso combiná-los em um único arquivo PDF. Agora, eu vou em cada documento do Word e exporto como PDF. Em seguida, converto todos os arquivos de imagem (png, jpg) em PDFs, imprimindo em uma impressora PDF. Então eu uso PDFSam Basic para mesclar todos os PDFs resultantes em um único.

Como você provavelmente pode dizer, este é um procedimento tedioso. Idealmente, gostaria de escrever um arquivo de lote (ou similar: powershell ou vbs) que passasse pelos arquivos no diretório, fizesse todas as conversões necessárias e mesclasse no documento final.

É possível fazer algo assim?

    
por AngryHacker 19.04.2018 / 09:27

1 resposta

1

Eu não acho que apenas um único clique no JOB pode ser satisfeito. Por isso, gostaria de sugerir solução para alguns deles.

1. Código VBA para converter vários arquivos do Word em uma pasta para arquivos PDF individuais.

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

N.B. Adicione uma referência à Biblioteca de Objetos do Microsoft Word 15.0 e tente este código.

Isso ajudará você a combinar arquivos PDF com o VBA.

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

N.B. Adicione a Biblioteca de Tipos do Adobe Acrobat X.0 da Referência.

    
por 19.04.2018 / 10:04