Adobe Acrobat: Como fazer o lote para combinar vários arquivos PDF?

10

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

Qualquer ideia? Não diga para fazê-lo manualmente. Este caso é apenas para explicar o meu problema. Pense que eu tenho centenas de pastas. :) Talvez eu possa usar outra ferramenta em vez do Adobe Acrobat ?!

Andrei Andre
fonte
O que exatamente você quer dizer com "possui um arquivo combinado desses dois arquivos" ? Será que concatenar e mesclar esses dois arquivos em um trabalho PDF para você?
Kurt Pfeifle
Adobe Acrobat ou Adobe Acrobat Reader ?
Wmz
@AndreiAndre Muitas boas soluções foram postadas na sua pergunta. Talvez você possa escolher aquele que atenda a todas as suas necessidades e marcá-lo como aceito.
Nixda

Respostas:

12

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

Preparação

  • Baixe e extraia o pdftk com o UniExtract
  • Abrir .. \ pdftk \ bin * e copiar 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 (comando set =! Command! %% A)
    pdftk.exe% command% cat output "% ~ dp1binder.pdf"
    
  • Salve-o como [email protected] na mesma pasta que pdftk.exe e libiconv2.dll insira a descrição da imagem aqui
  • crie um atalho para este .cmd e coloque-o na sua pasta sendto ( Win+ R»shell: sendto)

Uso

  • Vá para uma pasta com alguns arquivos PDF e selecione quantos PDFs desejar
  • Clique com o botão direito do mouse neles e escolha o atalho que você acabou de criar
  • um novo PDF do fichário na mesma pasta será criado, onde todos os PDFs selecionados serão mesclados em um

    insira a descrição da imagem aqui

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"
nixda
fonte
Resposta MUITO legal. Estou lutando para modificá-lo, para que ele salve como FOLDERNAME em vez de binder.pdf. Como eu pude fazer isso?
Chen Estat. Yu
@ChenStatsYu See update
nixda
ÓTIMO!! Desculpe perguntar novamente, não tenho certeza se devo iniciar um novo post. Apenas uma última solicitação, como estou repetindo isso para quase 40/50 pastas, podemos modificá-lo para enviar a "pasta" para o cmd e usar o nome da pasta, em vez de selecionar alguns PDFs da pasta?
Chen Estat. Yu
Além disso, espero que ele suporte nomes de pastas fora do inglês.
Chen Estat. Yu
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á-las.

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 baixar o ghostscript aqui . Também existe uma versão para Windows, mas não a testei.

Cacovsky
fonte
1
Também funciona no Windows. Eu tive que escrever o caminho completo para o executável ghostscript (no meu PC é "c: \ arquivo de programa \ gs \ gs9.07 \ bin \ gswin32c.exe") e a expansão "* .pdf" não funciona, mas O próprio ghostscript funciona perfeitamente.
Pitarou
3

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

Para adicionar arquivos em ordem alfabética, você precisará adicionar o parâmetro de objeto de classificação ao comando DIR (também conhecido como Get-ChildItem) (o objeto de classificação não aceita nenhum parâmetro aqui, pois o nome do arquivo / em ordem alfabética é 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 arquivo no formato 1.pdf 2.pdf ... 10.pdf etc. em vez de 01.pdf 02.pdf .. 10.pdf também podem tentar uma variação disso:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf
Giles Hudson
fonte
"solução acima" - presumivelmente você quer dizer a solução da nixda. Se a sua resposta foi votada mais alta que a da Nixda, ela seria abaixo
noodle
1

Existe uma nova ferramenta on-line de manipulação avançada de PDF chamada Sej-da, que ainda está na versão beta, que possui inúmeras funções de PDF (capacidade de mesclar vários PDFs). É gratuito e pode muito bem ajudar suas necessidades.

http://sejda.com/

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

http://revision3.com/tzdaily/sejda-online-pdf

Simon
fonte
o OP é claramente capaz de mesclar arquivos PDF, ele deseja mesclar em lote com um processo automatizado. A sua resposta não dá detalhes de como usar sejda desta forma, também não é evidente a partir do seu site
macarrão de
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 etiqueta de lote; segunda parte é identificador de arquivo (nome do arquivo). Tags para cada verso são semelhantes em tamanho e valor; O nome dos arquivos vem após o ponto.

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

Em seguida, você pode usar um software de mesclagem automatizada que pode lidar com milhares de arquivos, criando uma mesclagem separada para cada lote. Encontrei este software livre do Dysprosium que não precisa de uma linha de comando ou de um script em lote. Você pode fazer o download como um arquivo JAR portátil. Possui diferentes cenários automatizados; um descrito nesta resposta como marcação e outro como a pasta necessária separada.

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

Qualquer pessoa
fonte
0

Experimente o PDFMerge . Mas não use o formulário inicial em que você deve selecionar cada arquivo um por um. Em vez disso, aguarde o site verificar sua instalação do Java e clique no link "Experimente o PDFMerge Java Applet". Depois que o applet é carregado e pode ser executado, clique no botão Escolher arquivos 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, pois nada é carregado no site. Tudo é feito no seu computador, usando sua instalação Java.

PS: desculpe se você está procurando um software offline que possa ser personalizado para criar arquivos PDF únicos em várias pastas.

ADTC
fonte
0

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

Henrik Söderlund
fonte
0

No Linux

Eu escrevi essa linha de comando bastante longa

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 funciona, eu testei, também funciona com quantos níveis de pastas você possui. Apenas certifique-se de executá-lo na raiz da estrutura de pastas.

Você precisa pdftke treepara isso e no Ubuntu Linux você pode instalá-lo com o apt:

sudo apt install pdftk tree
Eduard Florinescu
fonte