Alguém sabe de uma boa maneira de dividir as páginas em pdf no meio em duas novas páginas?
Para ser claro, eu sou não tentando dividir as páginas já existentes de um pdf; Eu estou tentando criar duas novas páginas de uma única página existente.
Alguém sabe de uma boa maneira de dividir as páginas em pdf no meio em duas novas páginas?
Para ser claro, eu sou não tentando dividir as páginas já existentes de um pdf; Eu estou tentando criar duas novas páginas de uma única página existente.
Respostas:
Experimentar BRISS .
Ele permite que você divida cada página em quantas subpáginas desejar, definindo regiões com uma GUI. Ele agrupa todas as páginas semelhantes em grupos para você, portanto, você pode definir regiões para esse grupo uma vez.
É multi-plataforma, livre e de código aberto.
Você pode resolver isso com a ajuda do Ghostscript. pdftk
sozinho não pode fazer isso (para o melhor do meu conhecimento). Vou te dar os passos da linha de comando para fazer isso manualmente. Será fácil roteirizar isso como um procedimento, também com parâmetros diferentes para tamanhos de página e números de página. Mas você disse que pode fazer isso sozinho ;-)
... e pela diversão, eu recentemente fiz isso não com um ficheiro de entrada com páginas "duplas", mas uma com "agudos". Você pode ler a resposta para este caso nesta outra resposta .
Seu caso é ainda mais simples. Você parece ter algo parecido com isso:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Você quer criar 1 PDF com 4 páginas, cada uma com o tamanho de 421 pt x 595 pt.
Vamos primeiro extrair as seções da esquerda de cada uma das páginas de entrada:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
O que esses parâmetros fizeram?
Primeiro, saiba que em PDF 1 polegada == 72 pontos . Então o resto é:
-o ...............:
Nomes de arquivo de saída. Implicitamente também usa -dBATCH -dNOPAUSE -dSAFER
. -sDEVICE=pdfwrite :
queremos PDF como formato de saída. -g................:
define o tamanho da mídia de saída em pixels. A resolução padrão do pdfwrite é de 720 dpi. Por isso, multiplique por 10 para obter uma correspondência para PageOffset. -c "..............:
pede ao Ghostscript para processar o trecho de código PostScript fornecido antes do arquivo de entrada principal (que precisa ser seguido -f
). <</PageOffset ....:
configura a mudança da imagem da página no meio. (Claro, para as páginas da esquerda a mudança de [0 0]
não tem efeito real.) -f ...............:
processar este arquivo de entrada. Qual resultado o último comando alcançou?
Este:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Em seguida, as seções corretas:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Resultado:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Agora combinamos as páginas em um único arquivo. Poderíamos fazer isso com ghostscript também, mas usaremos pdftk
em vez disso, porque é mais rápido para este trabalho:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
Feito. Aqui está o resultado desejado. 4 páginas diferentes, tamanho 421x595 pt.
Resultado:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
. Eu acho que depende da orientação do arquivo original. Excelente resposta, no entanto. :)
Graças a @marttt e sua responder em Unix & amp; Linux .
Você pode usar mutool
(que vem como parte de mupdf
):
mutool poster -x 2 input.pdf output.pdf
Você também pode usar -y
se você quiser realizar uma divisão vertical.
Para ampliar a resposta do @ Kurt (já que não tenho pontos de reputação suficientes para comentar), primeiro certifique-se de que as dimensões que você usa não sejam baseadas nas dimensões da Caixa de Cultura se forem diferentes das dimensões da Caixa de Mídia. O tamanho da saída é baseado nas dimensões da Media Box, mas o deslocamento parece usar as dimensões da caixa de corte.
Para uma página gatefold que tinha uma caixa de mídia de 20.0833 x 13.833 e uma caixa de 19,25 x 13,0 que era a mesma que a caixa de recorte no meu documento, para dividi-la em duas páginas no Ubuntu, para o lado esquerdo:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
O lado direito:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
E então costurou-os com pdftk left.pdf right.pdf output final.pdf
.
Uma alternativa seria definir a caixa de corte para o mesmo que a caixa de mídia; então o deslocamento seria -723. Mas, em seguida, a cultura teria que ser redefinida para aparar para que as páginas parecessem perfeitas. Caso contrário, defina a mídia para recortar.