varios unir tamaño separar quitar programa por para online limite imagenes gratis dividir como archivos archivo pdf layout pdf-generation split

unir - Dividir cada página PDF en dos?



separar pdf en imagenes (9)

Tengo una gran cantidad de archivos PDF que tienen dos diapositivas en una página (para imprimir).

El formato es de páginas A4 cada una con dos diapositivas configuradas así:

----------- | slide 1 | ----------- | slide 2 | -----------

¿Cómo puedo generar un nuevo archivo PDF con una diapositiva por página?

Feliz de usar GUI, CLI, scripts o incluso la interfaz con la biblioteca de PDF de un idioma; pero sí necesito que el texto en las diapositivas siga siendo seleccionable.


Prueba BRISS .

Te permite dividir cada página en tantas subpáginas como quieras 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, libre y de código abierto.

(Copiado y pegado de https://superuser.com/a/235327/35237 )


Con mupdf-1.8-windows-x64 , en win10 CMD, debe tener '' poster '' (seguido de espacio y sin comillas) antes del parámetro horizontal (-x). Por ejemplo, para un escaneo de doble página a PDF:

cartel de mutool -x 2 -y 1 C: / Users / alfie / Documents / SNM / The_Ultimate_Medicine.pdf C: / Users / alfie / Documents / ebooks / The_Ultimate_Medicine.pdf

¡Qué herramienta tan maravillosa! Merci infiniment! .. (y el archivo de salida ~ 9MB es solo 52KB más grande que el original!)


Gracias a Matt Gumbley por su Python Script. Modifiqué esa secuencia de comandos de Python de modo que ahora también funciona con archivos PDF que contienen páginas verticales y horizontales y páginas recortadas:

# -*- coding: utf-8 -*- """ Created on Thu Feb 26 08:49:39 2015 @author: Matt Gumbley () changed by Hanspeter Schmid to deal with already cropped pages """ import copy import math from PyPDF2 import PdfFileReader, PdfFileWriter def split_pages2(src, dst): src_f = file(src, ''r+b'') dst_f = file(dst, ''w+b'') input = PdfFileReader(src_f) output = PdfFileWriter() for i in range(input.getNumPages()): # make two copies of the input page pp = input.getPage(i) p = copy.copy(pp) q = copy.copy(pp) # the new media boxes are the previous crop boxes p.mediaBox = copy.copy(p.cropBox) q.mediaBox = copy.copy(p.cropBox) x1, x2 = p.mediaBox.lowerLeft x3, x4 = p.mediaBox.upperRight x1, x2 = math.floor(x1), math.floor(x2) x3, x4 = math.floor(x3), math.floor(x4) x5, x6 = x1+math.floor((x3-x1)/2), x2+math.floor((x4-x2)/2) if (x3-x1) > (x4-x2): # horizontal q.mediaBox.upperRight = (x5, x4) q.mediaBox.lowerLeft = (x1, x2) p.mediaBox.upperRight = (x3, x4) p.mediaBox.lowerLeft = (x5, x2) else: # vertical p.mediaBox.upperRight = (x3, x4) p.mediaBox.lowerLeft = (x1, x6) q.mediaBox.upperRight = (x3, x6) q.mediaBox.lowerLeft = (x1, x2) p.artBox = p.mediaBox p.bleedBox = p.mediaBox p.cropBox = p.mediaBox q.artBox = q.mediaBox q.bleedBox = q.mediaBox q.cropBox = q.mediaBox output.addPage(q) output.addPage(p) output.write(dst_f) src_f.close() dst_f.close()


Gracias a moraes por esa respuesta. En mi caso, el PDF resultante parecía estar bien en Adobe Reader y en la vista previa de Mac, pero no parecía haberse dividido en páginas separadas cuando lo visualicé en iOS. Usé Python 2.7.8 y PyPDF 2, y modifiqué el script de la siguiente manera, que funcionó bien. (y reordenó las páginas izquierda / derecha, en lugar de derecha / izquierda).

import copy import math from PyPDF2 import PdfFileReader, PdfFileWriter def split_pages(src, dst): src_f = file(src, ''r+b'') dst_f = file(dst, ''w+b'') input = PdfFileReader(src_f) output = PdfFileWriter() for i in range(input.getNumPages()): p = input.getPage(i) q = copy.copy(p) q.mediaBox = copy.copy(p.mediaBox) x1, x2 = p.mediaBox.lowerLeft x3, x4 = p.mediaBox.upperRight x1, x2 = math.floor(x1), math.floor(x2) x3, x4 = math.floor(x3), math.floor(x4) x5, x6 = math.floor(x3/2), math.floor(x4/2) if x3 > x4: # horizontal p.mediaBox.upperRight = (x5, x4) p.mediaBox.lowerLeft = (x1, x2) q.mediaBox.upperRight = (x3, x4) q.mediaBox.lowerLeft = (x5, x2) else: # vertical p.mediaBox.upperRight = (x3, x4) p.mediaBox.lowerLeft = (x1, x6) q.mediaBox.upperRight = (x3, x6) q.mediaBox.lowerLeft = (x1, x2) p.artBox = p.mediaBox p.bleedBox = p.mediaBox p.cropBox = p.mediaBox q.artBox = q.mediaBox q.bleedBox = q.mediaBox q.cropBox = q.mediaBox output.addPage(q) output.addPage(p) output.write(dst_f) src_f.close() dst_f.close()


Puede usar una biblioteca de Python llamada PyPDF. Esta función dividirá páginas dobles independientemente de la orientación de la página:

import copy import math import pyPdf def split_pages(src, dst): src_f = file(src, ''r+b'') dst_f = file(dst, ''w+b'') input = pyPdf.PdfFileReader(src_f) output = pyPdf.PdfFileWriter() for i in range(input.getNumPages()): p = input.getPage(i) q = copy.copy(p) q.mediaBox = copy.copy(p.mediaBox) x1, x2 = p.mediaBox.lowerLeft x3, x4 = p.mediaBox.upperRight x1, x2 = math.floor(x1), math.floor(x2) x3, x4 = math.floor(x3), math.floor(x4) x5, x6 = math.floor(x3/2), math.floor(x4/2) if x3 > x4: # horizontal p.mediaBox.upperRight = (x5, x4) p.mediaBox.lowerLeft = (x1, x2) q.mediaBox.upperRight = (x3, x4) q.mediaBox.lowerLeft = (x5, x2) else: # vertical p.mediaBox.upperRight = (x3, x4) p.mediaBox.lowerLeft = (x1, x6) q.mediaBox.upperRight = (x3, x6) q.mediaBox.lowerLeft = (x1, x2) output.addPage(p) output.addPage(q) output.write(dst_f) src_f.close() dst_f.close()


Si está usando una biblioteca Java o .Net, puede usar iText / iTextSharp.

Se puede encontrar un ejemplo para alisar un documento existente en el libro iText in Action, 2da edición, en el capítulo 6 disponible gratuitamente: TilingHero.java / TilingHero.cs .


Briss es "una aplicación simple multiplataforma (Linux, Windows, Mac OSX) para recortar archivos PDF. Una interfaz de usuario sencilla le permite definir exactamente la región de recorte ajustando un rectángulo en las páginas superpuestas visualmente". Es de código abierto (GPL).

Funciona bien para mi La GUI es mínima, pero funcional. También se puede usar desde la línea de comando.


Las tijeras PDF me permitieron dividir (recortar) a granel todas las páginas en un PDF.


mutool funciona brillantemente para esto. El siguiente ejemplo input.pdf cada página de input.pdf en 3 partes horizontales y 8 verticales (creando así 24 páginas de salida para cada 1 de entrada):

mutool poster -x 3 -y 8 input.pdf output.pdf

Para instalar mutool , simplemente instale mupdf , que probablemente está empaquetado con la mayoría de las distribuciones de GNU / Linux.

(Créditos para marttt .)

En los sistemas Linux basados ​​en debian como ubuntu, puede instalarlo usando

sudo apt install mupdf sudo apt install mupdf-tools