top of page

Como Juntar Vários PDFs em Um Só Usando PowerShell e PdfSharp NUGET

Unir arquivos PDF é uma tarefa comum, e se você gosta de automatizar processos como eu, vai adorar fazer isso usando o PowerShell. Neste tutorial, vou te mostrar como juntar vários PDFs em um único arquivo com um script simples usando a biblioteca PdfSharp.




Passo 1: Instalando o NUGET


Antes de começarmos, precisamos da biblioteca PdfSharp, que nos permitirá manipular arquivos PDF diretamente no PowerShell. Siga os passos abaixo:


  1. entrar no site e baixar o arquivo nuget

    1. NuGet Gallery | Downloads

      1. https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

  2. Crie uma pasta c:\Nuget e coloque o arquivo dentro


Dentro do ISE execute o comando como administrador : (colocando a pasta Nuget no path)


[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Nuget", [EnvironmentVariableTarget]::Machine)


Passo 2: Baixando a Biblioteca PdfSharp


Antes de começarmos, precisamos da biblioteca PdfSharp, que nos permitirá manipular arquivos PDF diretamente no PowerShell. Siga os passos abaixo:

  1. Acesse o site NuGet PdfSharp.

  2. Baixe a versão mais recente ou use o NuGet CLI para instalar:


nuget install PdfSharp
nuget install Microsoft.Extensions.Logging.Abstractions

Isso criará uma pasta chamada PdfSharp.<versão>, onde você encontrará a DLL necessária. A DLL estará no caminho lib/netstandard2.0/PdfSharp.dll.



Passo 3: Criando o Script


# Carregar a biblioteca PDFSharp
[Reflection.Assembly]::LoadFrom("C:\Windows\System32\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll")
[Reflection.Assembly]::LoadFrom("C:\Windows\System32\PDFsharp.6.1.1\lib\netstandard2.0\PdfSharp.dll")

# Caminhos dos PDFs que deseja unir
$arquivo1 = "C:\caminho\para\arquivo1.pdf"
$arquivo2 = "C:\caminho\para\arquivo2.pdf"
$arquivo3 = "C:\caminho\para\arquivo3.pdf"

# Caminho do arquivo PDF de saída
$arquivoSaida = "C:\caminho\para\arquivo_saida.pdf"

# Função para unir os arquivos PDF
function Merge-PDFs {
    param (
        [string[]]$pdfFiles,
        [string]$outputFile    )

    # Criar um documento PDF novo
    $outputDocument = New-Object PdfSharp.Pdf.PdfDocument
    foreach ($pdfFile in $pdfFiles) {
        # Abrir cada arquivo PDF
        $inputDocument = [PdfSharp.Pdf.IO.PdfReader]::Open($pdfFile, [PdfSharp.Pdf.IO.PdfDocumentOpenMode]::Import)
        # Adicionar cada página do documento ao novo documento
        for ($i = 0; $i -lt $inputDocument.PageCount; $i++) {           $outputDocument.AddPage($inputDocument.Pages[$i])
        }
    }
    # Salvar o documento de saída
    $outputDocument.Save($outputFile)
    Write-Host "PDFs unidos com sucesso em: $outputFile"
}

# Chamar a função passando os arquivos e o caminho de saída
Merge-PDFs -pdfFiles @($arquivo1, $arquivo2, $arquivo3) -outputFile $arquivoSaida


Passo 4: Executando o Script


Agora que você tem o script pronto, só falta rodá-lo!

  1. Certifique-se de que todos os caminhos dos PDFs estejam corretos.

  2. Execute o script no PowerShell. Ele vai carregar os arquivos PDF que você especificou e juntá-los em um novo arquivo.

Merge-PDFs -pdfFiles @("C:\caminho\para\arquivo1.pdf", "C:\caminho\para\arquivo2.pdf", "C:\caminho\para\arquivo3.pdf") -outputFile "C:\caminho\para\arquivo_saida.pdf"

Se tudo estiver certo, você verá a mensagem "PDFs unidos com sucesso!", e o arquivo resultante será salvo no local que você especificou.



Conclusão

Agora você tem uma ferramenta poderosa para juntar arquivos PDF de forma automatizada no PowerShell! Esse método é ótimo para quando você precisa consolidar documentos, criar relatórios ou simplesmente organizar seus arquivos de maneira prática.

Se você gostou desse tutorial, compartilhe com seus amigos que também adoram automação! Qualquer dúvida ou sugestão, deixe nos comentários.

Posts recentes

Ver tudo

Kommentare


bottom of page