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 N
matriz.
O comando montage
permite fazer isso ( M
e N
devem 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 pdfnup
dopdfjamsuí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 --landscape
opçã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 -4
significa 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