Como Juntar Vários PDFs em Um Só Usando PowerShell e PdfSharp NUGET
- Leandro Cascão
- 10 de out. de 2024
- 2 min de leitura
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:
entrar no site e baixar o arquivo nuget
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:
Acesse o site NuGet PdfSharp.
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!
Certifique-se de que todos os caminhos dos PDFs estejam corretos.
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.
Kommentare