una - unir pdf
¿Cómo puedo combinar dos páginas PDF que aparecen en la misma página? (11)
Aquí hay un script para repetir páginas (como A5, paisaje) dos veces en una hoja del doble de este tamaño (A4, retrato):
#!/bin/bash
INPUTFILE=$*
PAGENUM=`pdftk ${INPUTFILE} dump_data | grep NumberOfPages | cut -d : -f 2 | cut -d " " -f 2`
PAGES=`seq 1 ${PAGENUM}`
DUPAGES=`for i in ${PAGES} ; do echo $i $i | tr "/n" " " ; done`
OUTPUT1=`basename ${INPUTFILE} .pdf`.dup.pdf
OUTPUT2=`basename ${INPUTFILE} .pdf`.double.pdf
pdftk ${INPUTFILE} cat ${DUPAGES} output ${OUTPUT1}
pdfjam --nup 1x2 ${OUTPUT1} --outfile ${OUTPUT2}
No es realmente elegante; podría hacerse sin la segunda llamada pdftk, y no funciona con archivos que contienen espacios. Pero funciona con archivos PDF de varias páginas.
Estoy buscando una herramienta gratuita que permita reordenar páginas de un documento PDF y combinar varias páginas por hoja. La primera parte (reordenación) se resuelve fácilmente con muchas herramientas (utilizo PyPDF ).
El problema es con el segundo requisito: combinar dos (o más) páginas en una sola página. Por ejemplo, tome dos páginas (A y B), rótelas, escale y combine en una sola página como esta
------ ------ ------
| | | | | |
| A | | B | | a |
| | | | | |
| | | | ---> ------
| | | | | |
| | | | | b |
| | | | | |
------ ------ ------
La solución debe funcionar en Linux y preferiblemente también en Windows. Estoy buscando una aplicación de consola o una biblioteca con enlaces de Python o Perl.
Editar allí es pdfnup biblioteca de pdfnup que se supone que realiza exactamente este tipo de transformación, y es multiplataforma, sin embargo, no puedo usarla debido a un error similar a this .
Compruebe el código fuente de PyPDF, especialmente el método rotateClockwise (). Debe haber un lugar donde se escribe el contenido de una página. Inserte un operador "q" (estado guardado) y "cm" (con los parámetros correctos para una matriz de escala) antes del contenido y luego un operador "Q" (restablecer estado).
Consulte la documentación en PDF para obtener una explicación de los operadores y la estructura de una página (desplácese hacia abajo para obtener algunos enlaces útiles).
No olvides enviar un parche a PyPDF :)
[EDIT] También es posible que desee comprobar las fuentes de pdfjam que incluyen un comando pdfnup.
Con Adobe Acrobat XI Pro, abra el primer documento. Edite, seleccione "tomar una instantánea", luego haga clic en la esquina superior de lo que desea copiar y arrástrelo a la esquina opuesta. Tenga una hoja limpia abierta en Paint. Haga clic sobre la hoja limpia en la pintura y controle V para pegar el primer documento en la hoja limpia. Repita para el segundo elemento que desee combinar en la misma página, excepto que coloque el 2 ° elemento BAJO el 1er artículo temporalmente en su Hoja de pintura. A continuación, arrastre el 2º elemento para colocarlo donde lo necesite en la Hoja de pintura. Guarde el archivo de la hoja de pintura y listo!
En Linux, puede convertir los archivos PDF a Postscript y usar psnup
. La forma exacta de invocarlo depende exactamente de cómo desee que se junten las páginas, si desea que se roten, qué tamaño de papel desea usar, etc. pero será algo como esto:
pdf2ps infile.pdf infile.ps
psnup -2 infile.ps outfile.ps
ps2pdf outfile.ps outfile.pdf
Dependiendo de las herramientas que tenga disponibles, es posible que tenga una forma más eficiente de hacer esto: psnup
ciertamente no es la única manera, pero es un programa relativamente conocido (en Linux de todos modos).
En respuesta a su pregunta, necesitará una herramienta de ''Imposición'' de PDF, que es una forma elegante de decir una herramienta que organiza imágenes de páginas PDF en una matriz particular para crear una NUEVA página PDF única. Imagina que es algo así como componer un periódico. Define una matriz de ranuras con un cierto número de columnas de ancho, por un cierto número de filas de profundidad, en una página de ciertas dimensiones fijas (en cm). Luego llenas esas ranuras vacías de arriba a abajo, de izquierda a derecha con las páginas de un archivo fuente pdf. En el caso del OP, quieren crear una sola página, compuesta por dos páginas de 8.5x11 organizadas en una matriz de 1x2 (1 columna, 2 filas). Sus páginas se colocarán en la matriz en el siguiente orden: 1,2. Así que está dejando caer la primera página (página 1 del pdf) en la primera ranura de su matriz (Columna 1, fila 1), y está colocando la segunda página (página 2) en la segunda ranura (Columna 1, fila 2 )
Cómo utilizar la herramienta para que esto suceda: descargue la versión anterior de Multivalent. Tenga en cuenta que el autor eliminó las buenas clases de herramientas de la última edición sin explicación, por lo que debe usar una más antigua. Aquí hay un enlace de trabajo a partir del 02/12: http://code.google.com/p/pdfsizeopt/downloads/detail?name=Multivalent20060102.jar Para simplificar, cambié el nombre del archivo jar a m.jar. Es obvio que necesitas instalar JRE para que esto funcione, pero lo pondré allí. Agregue m.jar a las variables de entorno de la ruta de clase de Java (para secuencias de comandos) o ejecute la sintaxis de línea de comando con la opción -cp y la ruta relativa (que se muestra a continuación). Tenga en cuenta que lo ejecuté desde la línea de comandos en el directorio de instalación en mi ejemplo a continuación. Proporcione una ruta absoluta desde la raíz de lo contrario (como c: / 1 / bin / m.jar).
Aquí hay un ejemplo que logrará exactamente lo que OP publicó sobre: C: / 1 / bin> java -cp m.jar tool.pdf.Impose -dim 1x2 -verbose -papersize "21.59x55.88cm" -layout "1,2 "yourfilename.pdf
Tenga en cuenta que la opción -dim crea la matriz en Columnas x Filas. El tamaño del papel se especifica en centímetros aquí, pero si necesita pulgadas, simplemente multiplique pulgadas por 2.54 para obtener cm. La opción -layout le proporciona el orden que desea para llenar las ranuras vacías de su matriz, llenando de arriba a abajo y de izquierda a derecha. En este caso, queremos que la página uno del pdf en la parte superior y la página dos en la parte inferior, por lo que nuestro argumento es "1,2". El argumento final es tu archivo fuente real. La herramienta generará un archivo llamado yourfilename-up.pdf cuando haya terminado.
Espero que ayude.
-Matt Zweil
Esta es una función perl que utilizo para tomar un directorio lleno de archivos prn de una aplicación de terceros y crear un solo pdf combinado.
sub runMerged($)
{
my($path) = @_;
print "Generating merged PDFs for $path/n";
my @files = sort(getFiles($path, ".prn/$"));
if (scalar(@files))
{
open(MERGE, ">$path/merged.prn");
for (my $i = 0; $i < scalar(@files); $i++)
{
print MERGE "^L/n" if ($i > 0);
open(FN, "$path/" . $files[$i]);
while (my $line = <FN>)
{
print MERGE $line;
}
close(FN);
}
chdir("$BASE_PATH/txt2pdf");
print `./txt2pdf.pl $path/merged.prn`;
}
}
Este es un resumen de las herramientas que encontré para PDF (quería encontrar el equivalente de psup y psbook)
- Crear folletos: pdfbook, pdf-tools (comando: pdfbklt)
- Fusionar archivos PDF: pdfmerge, pdfjam (comando: pdfjoin)
- Girar páginas: pdfjam (comando: pdf90)
- Varias páginas por hoja: pdfjam (comando: pdfnup)
- Crear carteles (varias hojas por página): pdfposter
Desde mi administrador de paquetes:
- pdf-tools: http://search.cpan.org/dist/Text-PDF
- pdfbook: http://www.ctan.org/tex-archive/support/pdfbook/
- pdfmerge: https://github.com/dmaphy/pdfmerge
- pdfjam: http://go.warwick.ac.uk/pdfjam
- pdfposter: http://pdfposter.origo.ethz.ch/
Crea un folleto A6:
pdfbook -2 -p a5 infile.pdf outfile.pdf
pdf-tools contiene:
- pdfbklt: crear folletos
- pdfrevert: elimina una capa de cambios en un archivo PDF, tratando de maximizar el tamaño del archivo de salida (para tener en cuenta el PDF linealizado).
- pdfstamp: agrega la cadena dada al archivo .pdf de infile en la ubicación, fuente y tamaño dados.
También es multivalente: http://multivalent.sourceforge.net/Tools/index.html
Mira esta respuesta que usa Multivalent para imponer páginas PDF
Si usa Linux, puede usar BookletImposer para colocar múltiples páginas de PDF en una sola página.
Para los usuarios de Ubuntu, esta herramienta está disponible en el Ubuntu Software Center.
Tuve el mismo problema que tú y esto es lo que hice:
- Extrajo todas las páginas en el archivo pdf como un archivo separado cada una
- En irfanView (con complementos) creé una imagen vertical "panorámica"
- Arrastre los archivos pdf a la sección de imágenes
- Clicked creado
- La "imagen" se crea con todas las páginas una detrás de la otra como una imagen vertical muy larga
- Puede exportar a PDF casi sin pérdida de calidad.
- Disfrutar
Tuve una necesidad similar esta semana. Pero necesitaba repetir cada página A4 (horizontal) "dos veces" en la hoja A3 (vertical), para luego cortarla por la mitad.
Encontré un complemento de Acrobat con toneladas de funciones de imposición que funcionaban muy bien para mis necesidades, y con una versión de prueba totalmente funcional de 30 días.
Espero que pueda ser útil para otra persona.
http://www.pdfsnake.com/