Adobe Acrobat: Como agrupar em lote vários arquivos pdf?

9

Eu tenho 3 pastas:

Folder 1 
Folder 2
Folder 3

Em cada pasta eu tenho 5 arquivos pdf:

    Folder 1 
       file1.pdf
       file2.pdf
    Folder 2
       file1.pdf
       file2.pdf
    Folder 3
       file1.pdf
       file2.pdf

Eu quero que em cada pasta tenha um arquivo combinado desses dois arquivos:

    Folder 1 
       binder.pdf
    Folder 2
       binder.pdf
    Folder 3
       binder.pdf

Alguma ideia? Não diga para fazer isso manualmente. Este caso é apenas para explicar o meu problema. Acho que tenho centenas de pastas. :) Talvez eu possa usar outra ferramenta em vez do Adobe Acrobat?!

    
por Andrei Andre 14.02.2012 / 14:00

8 respostas

12

Você pode fazer isso com um arquivo de lote curto e pdftk.exe (não pdftk Builder que é a GUI versão).
Não há necessidade de instalar nada.

Preparação

  • download & extrair pdftk com UniExtract
  • Abra .. \ pdftk \ bin * e copie pdftk.exe e libiconv2.dll para uma pasta de sua escolha
  • crie um novo arquivo de texto e cole o seguinte código

    @echo off
    setlocal enabledelayedexpansion
    FOR %%A IN (%*) DO (set command=!command! %%A)
    pdftk.exe %command% cat output "%~dp1binder.pdf"
    
  • Salve como [email protected] na mesma pasta que pdftk.exe e libiconv2.dll
  • crieumatalhodeste.cmdecoloque-onasuapastasendto(Win+R»shell:sendto)

Uso

  • VáparaumapastacomalgunsarquivosPDFeselecionequantosPDFsdesejar
  • Cliquecomobotãodireitodomouseeescolhaoatalhoquevocêacaboudecriar
  • umnovoPDFfichárionamesmapastaserácriado,ondetodososPDFsselecionadosserãomescladosemum

Atualização: Versão que usa o nome da pasta atual como nome do arquivo para o pdf gerado

@echo off
setlocal enabledelayedexpansion
:: Concat all paths fromselected files and save it as command
FOR %%A IN (%*) DO (set command=!command! %%A)

:: Take path from first selected file and save it as path
set path=%~dp1
echo %path%

:: Check if a trailing slash is present. If yes, remove it
IF %path:~-1%==\ SET path=%path:~0,-1%

:: Get last folder from path
FOR %%F in ("%path%") do (set lastFolder=%%~nxF)

:: Call pdftk, pass on command. use lastFolder as filename
pdftk.exe %command% cat output "%path%\%lastFolder%.pdf"
    
por 02.01.2013 / 14:37
5

Se você estiver no Linux (ou Mac, ou em qualquer ambiente em que esteja instalado), poderá usar uma ferramenta de linha de comando chamada ghostscript para combiná-los.

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH file1.pdf file2.pdf file3.pdf

Você também pode usar o seguinte para combinar todos os arquivos na pasta atual

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH *.pdf 

Você pode fazer o download do ghostscript aqui . Há uma versão do Windows também, mas eu não testei.

    
por 14.02.2012 / 14:18
3

Eu usei a solução acima com sucesso. No entanto, no meu sistema (Windows 7 64-bit) o código como ele adiciona os PDFs em (aparentemente) ordem aleatória, não em ordem alfabética por nome de arquivo.

Para conseguir adicionar arquivos em ordem alfabética, você precisará adicionar o parâmetro sort-object ao comando DIR (aka Get-ChildItem) (o sort-object não usa nenhum parâmetro aqui, pois filename / alphabetically é o padrão):

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | group DirectoryName % {& $PDFtk $.group CAT OUTPUT "$($.Name)\$outputfile" verbose}

Aqueles que têm nomes de arquivos no formato 1.pdf 2.pdf ... 10.pdf etc. em vez de 01.pdf 02.pdf .. 10.pdf também pode tentar uma variação disso:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf
    
por 07.03.2014 / 10:15
1

Existe uma nova ferramenta avançada de Manipulação de PDF avançada chamada Sej-da que ainda está em Beta, que tem uma infinidade de funções PDF (capacidade de mesclar vários PDFs). É grátis & poderia ajudar bem as suas necessidades.

link

Uma breve revisão de suas funções foi realizada há apenas duas semanas pela Revisão 3:

link

    
por 02.12.2012 / 10:45
1

Talvez seja melhor usar um cenário em lote. Crie e colete todos os seus arquivos pdf como xxxx.abcdef.pdf.

A primeira parte é a chamada tag batch; segunda parte é o identificador de arquivo (nome do arquivo). Tags para cada back são semelhantes em comprimento e valor; nome dos arquivos vem depois do ponto.

Por exemplo, seu primeiro lote consiste em 1111.3425.pdf, 1111.76501.pdf, e assim por diante. Seu segundo lote é 22222.1432.pdf, 22222.4398, e assim por diante. E assim por diante para outros lotes.

Em seguida, você pode usar o software de mesclagem automatizado que pode lidar com milhares de arquivos, criando uma mesclagem separada para cada lote. Eu encontrei este Dysprosium software livre que não precisa de uma linha de comando ou um script em lotes. Você pode baixá-lo como um arquivo JAR portátil. Tem diferentes cenários automatizados; um descrito nesta resposta como marcação e um como sua pasta requerida separada.

Dependendo do seu hardware, você pode agrupar milhares de arquivos em lotes pré-destinados.

    
por 24.03.2014 / 16:44
0

Experimente o PDFMerge . Mas não use o formulário inicial no qual você precisa selecionar cada arquivo, um por um. Em vez disso, aguarde até que o site verifique sua instalação do Java e, em seguida, clique no link "Tentar o Applet Java do PDFMerge". Quando o applet for carregado e permitido, clique no botão Choose files , e você poderá selecionar vários arquivos (para mesclar em um arquivo).

A fusão será super rápida e poderá lidar com um grande número de arquivos, já que nada é carregado no site. Tudo é feito em seu próprio computador usando sua instalação Java.

PS: Desculpe se você está procurando um software off-line que pode ser personalizado para criar arquivos PDF únicos em várias pastas.

    
por 14.02.2012 / 14:14
0

Se você estiver no mac, poderá criar um script do Automator para realizar essa tarefa. Faça isso como uma ação de pasta e simplesmente solte os PDFs nele e veja isso acontecer! Se você quiser eu posso te mostrar como, você está executando o mac?

    
por 02.12.2012 / 10:31
0

No Linux

Eu escrevi esta longa linha de comando

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} dirname {} | uniq | xargs -L1 -I {} bash -c 'cd "$0" && pdftk *.pdf cat output binder.pdf' {}

Mas ele faz o trabalho, eu testei, também funciona com quantos níveis de pastas você tem. Apenas certifique-se de executar a raiz da estrutura de pastas.

Você precisa de pdftk e tree para isso e no Ubuntu Linux você pode instalá-lo com apt:

sudo apt install pdftk tree
    
por 08.02.2018 / 10:15