Combine vários arquivos PDF em um (organizados em uma matriz)

Combine vários arquivos PDF em um (organizados em uma matriz)

Tendo um conjunto de arquivos PDF, digamos: in-01.pdf, in-02.pdf, in-03.pdf, ... gostaria de combinar todos eles em um único, formando uma M x Nmatriz.

O comando montagepermite fazer isso ( Me Ndevem ser números inteiros):

montage -mode concatenate -tile NxM in-*.pdf out.pdf

O problema é que o tamanho do PDF resultante é enorme, embora eu esperasse que fosse (talvez apenas) um pouco maior que a soma de todos os tamanhos de PDF de entrada. Acho que montageé primeiro converter os PDFs de entrada em imagens e depois criar o PDF de saída a partir dessas imagens (por exemplo, o texto nos PDFs originais não é mostrado como texto no PDF de saída, mas como uma imagem com qualidade inferior e maior tamanho).

Acho que deveria haver uma maneira de fazer isso (LATEX, por exemplo, permite inserir uma imagem PDF em outro PDF sem a necessidade de convertê-la primeiro em uma imagem).

Estou procurando uma alternativa de linha de comando usando ferramentas de software gratuitas em sistemas GNU/Linux.

OBSERVAÇÃO: podemos assumir que esses arquivos PDF têm exatamente a mesma dimensão (largura e altura). São imagens PDF geradas automaticamente que normalmente consistem em um gráfico/plotagem (formas simples, linhas, linhas e retângulos) e alguns textos (título, rótulos...).

Responder1

Você poderia usar o programa utilitário pdfnupdopdfjamsuíte.

pdfnup in.pdf --nup 3x3

deve gerar o arquivoin-nup.pdfcom as páginas deem.pdforganizado em uma série de páginas com uma matriz 3x3 do pdf de origem.

Você deve mesclar todos os seus arquivos PDF em um único, também deve especificar um tamanho de papel para o arquivo de saída, consulte a documentação do pdfjam para obter detalhes.

Responder2

O layout que você está tentando emular aqui é chamadoN-up. Existem algumas maneiras de fazer isso. Como no comentário do xae, você pode fazer isso com o pdfjam. Veja meu comentário lá. Por exemplo:

pdfjam --suffix nup --nup 2x2 input.pdf

produzirá uma matriz 2x2 4-up. Alternativamente, você pode passar a --landscapeopção de orientar a matriz como vista em paisagem em vez de retrato.

Você também pode fazer isso passando pelo postscript

pdf2ps input.pdf input.ps
psnup -4 input.ps output.ps
ps2pdf output.ps output.pdf

onde -4significa 4-up (2x2)

E se você está tentando imprimir este arquivo PDF diretamente no Linux, acho que o cliente CUPS inclui uma versão do spooler de impressão Berkley LPR ( lpr) com uma opção N-up. Você pode usar a opção com

lpr -o number-up=4 input.pdf

ou defina-o como padrão

lpoptions -p QueueName -o number-up=4

informação relacionada