¿Cómo puedo dividir las páginas de un PDF por la mitad?

38

¿Alguien sabe de una buena manera de dividir las páginas de un pdf en el medio en dos páginas nuevas?

Para que quede claro, yo estoy no tratar de dividir las páginas ya existentes de un PDF; Estoy tratando de crear dos páginas nuevas a partir de una sola página existente.

YGA
fuente
por que quieres hacer esto obtener páginas más pequeñas?
akira
Bueno, MS Office no es un programa gratuito, pero si tienes MS Office 2007, entonces puedes guardar documentos como archivos PDF y hacer lo que quieras ...
Owen
Ver también stackoverflow.com/q/13345593/321973
Tobias Kienzler

Respuestas:

26

Prueba BRISS .

texto alternativo

Le permite dividir cada página en tantas subpáginas como desee definiendo regiones con una GUI. Agrupa todas las páginas similares en grupos para usted, por lo que puede definir regiones para ese grupo una vez.

Es multiplataforma, gratuito y de código abierto.

precioso
fuente
Parece que esto aumenta el tamaño del archivo (multiplicado por "número de páginas de salida por página de entrada"), ya que utiliza el contenido de la página original y un cuadro de recorte para cada página recortada. Si necesita un tamaño de archivo pequeño, puede imprimir el archivo de salida a PS y luego convertirlo a PDF, pero puede perder calidad entonces (por ejemplo, debido a las fuentes de mapa de bits).
tanius
37

Puede resolver esto con la ayuda de Ghostscript. pdftksolo no puedo hacer eso (que yo sepa). Te daré los pasos de la línea de comandos para hacer esto manualmente. Será fácil escribir esto como un procedimiento, también con diferentes parámetros para tamaños de página y números de página. Pero dijiste que puedes hacerlo tú mismo ;-)

Cómo resolver esto con la ayuda de Ghostscript ...

... y por diversión, lo he hecho recientemente no con un archivo de entrada con páginas "dobles", sino uno con "agudos". Puede leer la respuesta para este caso en esta otra respuesta .

Tu caso es aún más simple. Parece que tienes algo similar a esto:

+------------+------------+   ^
|            |            |   |
|      1     |      2     |   |
|            |            | 595 pt
|            |            |   |
|            |            |   |
|            |            |   |
+------------+------------+   v
             ^
            fold
             v
+------------+------------+   ^
|            |            |   |
|      3     |      4     |   |
|            |            | 595 pt
|            |            |   |
|            |            |   |
|            |            |   |
+------------+------------+   v
<---------- 842 pt -------->

Desea crear 1 PDF con 4 páginas, cada una de las cuales tiene un tamaño de 421 pt x 595 pt.

Primer paso

Primero extraigamos las secciones izquierdas de cada una de las páginas de entrada:

gs \
    -o left-sections.pdf \
    -sDEVICE=pdfwrite \
    -g4210x5950 \
    -c "<</PageOffset [0 0]>> setpagedevice" \
    -f double-page-input.pdf

¿Qué hicieron estos parámetros?

Primero, sepa que en PDF 1 pulgada == 72 puntos . Entonces el resto es:

  • -o ...............:Nombre de archivo de salida. Implícitamente también utiliza -dBATCH -dNOPAUSE -dSAFER.
  • -sDEVICE=pdfwrite : Queremos PDF como formato de salida.
  • -g................:establece el tamaño del medio de salida en píxeles. La resolución predeterminada de pdfwrite es 720 ppp. Por lo tanto, multiplique por 10 para obtener una coincidencia para PageOffset.
  • -c "..............:le pide a Ghostscript que procese el fragmento de código PostScript dado justo antes del archivo de entrada principal (que debe seguir -f).
  • <</PageOffset ....:establece el desplazamiento de la imagen de la página en el medio. (Por supuesto, para las páginas de la izquierda el desplazamiento [0 0]no tiene ningún efecto real).
  • -f ...............: procesar este archivo de entrada.

¿Qué resultado logró el último comando?

Éste:

Output file: left-sections.pdf, page 1
+------------+  ^
|            |  |
|     1      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v

Output file: left-sections.pdf, page 2
+------------+  ^
|            |  |
|     3      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v
<-- 421 pt -->

Segundo paso

A continuación, las secciones correctas:

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 -->

Último paso

Ahora combinamos las páginas en un archivo. Podríamos hacer eso también con ghostscript, pero usaremos pdftken su lugar, porque es más rápido para este trabajo:

pdftk \
  A=right-sections.pdf \
  B=left-sections.pdf \
  shuffle A B \
  output single-pages-output.pdf
  verbose

Hecho. Aquí está el resultado deseado. 4 páginas diferentes, tamaño 421x595 pt.

Resultado:

+------------+ +------------+ +------------+ +------------+   ^
|            | |            | |            | |            |   |
|     1      | |     2      | |     3      | |     4      |   |
|            | |            | |            | |            | 595 pt
|            | |            | |            | |            |   |
|            | |            | |            | |            |   |
|            | |            | |            | |            |   |
+------------+ +------------+ +------------+ +------------+   v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
Kurt Pfeifle
fuente
3
¡Bonita! ¡Realmente deberías usar esto en cada respuesta si quieres seguir recibiendo votos gratis!
Ivo Flipse
2
El segundo paso sólo trabajó para mí cuando he usado un desplazamiento negativo: "<</PageOffset [-421 0]>> setpagedevice". Supongo que depende de la orientación del archivo original. Excelente respuesta, no obstante. :)
moraes
1
Para mí, el segundo paso también funcionó con el signo menos
Rafareino
9

Gracias a @marttt y su respuesta en Unix y Linux .

Puede usar mutool(que viene como parte de mupdf):

mutool poster -x 2 input.pdf output.pdf

También puede usarlo -ysi desea realizar una división vertical.

Peque
fuente
Esta es una solución simple, gracias. Desafortunadamente, no hay forma de cambiar el contenido de la página para ajustar los márgenes, para eso utilice el método descrito por Kurt Pfeifle.
Ján Lalinský
0

Para ampliar la respuesta de @ Kurt (dado que no tengo suficientes puntos de reputación para comentar), primero asegúrese de que las dimensiones que utiliza no se basan en las dimensiones de la caja de recorte si son diferentes de las dimensiones de la caja de medios. El tamaño de salida se basa en las dimensiones del cuadro de medios, pero el desplazamiento parece utilizar las dimensiones del cuadro de recorte.

Para una página gatefold que tenía un cuadro de medios 20.0833 x 13.833 y un cuadro de recorte de 19.25 x 13.0 que era el mismo que el cuadro de recorte en mi documento, para dividirlo en dos páginas en Ubuntu, para el lado izquierdo:

gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf

El lado correcto:

gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf

Y luego los cosí pdftk left.pdf right.pdf output final.pdf.

Una alternativa sería establecer el cuadro de recorte al mismo que el cuadro de medios; entonces el desplazamiento sería -723. Pero entonces el recorte tendría que reiniciarse para recortar para que las páginas parezcan perfectas. De lo contrario, configure los medios para recortar.

motorbaby
fuente
Tenga en cuenta que después de dividir las páginas con estas opciones de comando, los cuadros de medios no cambian. Solo cambia el cultivo. Si divide una página en varias páginas, las nuevas páginas mantienen las dimensiones del cuadro de medios de la página anterior. Necesita sed para modificar las dimensiones de la caja de medios. Sin embargo, no sé cómo configurar el cuadro de medios para recortar sin incluir números en el comando.
motorba
Ups Me refiero a que las páginas nuevas mantienen las dimensiones del cuadro de recorte de la página anterior.
motorbaby
Encontró un error con los archivos PDF de Acrobat. Visualmente, las dimensiones de cropBox se pueden ver en Establecer cuadros de página en Acrobat. Pero las dimensiones de cropBox después de usar Ghostscript para dividir el gatefold mantuvieron las dimensiones de la página anterior en otro nivel. Esto se puede ver en Preflight Analyze info en Acrobat. Después de ajustar el recorte en Acrobat en el lado derecho de la página izquierda temporalmente a un número arbitrario y luego regresarlo a 0, las otras dimensiones del cuadro (sangrado, arte y recorte) también se ajustaron. Esto solucionó el problema donde los datos de cropBox todavía mostraban las viejas dimensiones de la página. La página correcta era un poco diferente.
motorbaby