Hacer miniatura de múltiples páginas de PDF Wiith ImageMagick -- php campo con pdf campo con imagemagick campo con thumbnails camp Relacionados El problema

Make thumbnail of multiple pages from PDF wiith imagemagick


1
vote

problema

Español

He trabajado cómo hacer las miniaturas buenas de PDF de una sola página. Pero como mi siguiente código muestra lo mejor que puedo hacer por 2+ PAGE PDFS es elegir hacer la primera página:

  $w=320;$h=240; $fname="my.pdf"; $saveFname = "mypdf.jpg";  $im = new imagick($fname); if($im->getNumberImages()>=2){     $im->setiteratorindex(0);   //Just do first page     } $im->thumbnailImage($w,$h,/*bestfit=*/true,/*fill=*/true); $im->writeImage($saveFname);   

Qué me gustaría hacer es tener páginas 1 y 2 de lado a lado, y hacer el mejor uso del espacio disponible. (Si hay una opción para hacer azulejos de todas las páginas, o páginas seleccionadas, entonces aún mejor.)

Pensé que montageImage podría ser la respuesta, pero no puedo encontrar un ejemplo completo, por lo que no pudo hacer ejercicio cómo especificar las páginas PDF para procesar.

Notas sobre el listado anterior:

  • El 3er parámetro para thumbnailimage significa que mantiene la relación de aspecto del original
  • El 4º parámetro significa almohadilla (con blanco) a cada lado, por lo que la imagen es todavía $ w x $ h píxeles
  • Puede agregar [n] a $ FNAME para cargar la página N (contando desde cero) (por ejemplo, my.pdf [0] "hace una miniatura de la primera página).
  • De forma predeterminada, se necesitará la última página de un PDF de múltiples páginas, por lo que se necesita setiteratorindex() para seleccionar la página para procesar.
Original en ingles

I've worked out how to make nice thumbnails from single-page PDFs. But as my below code shows the best I can do for 2+ page PDFs is to choose to do the first page:

$w=320;$h=240; $fname="my.pdf"; $saveFname = "mypdf.jpg";  $im = new \imagick($fname); if($im->getNumberImages()>=2){     $im->setiteratorindex(0);   //Just do first page     } $im->thumbnailImage($w,$h,/*bestfit=*/true,/*fill=*/true); $im->writeImage($saveFname); 

What I'd like to do is have pages 1 and 2 side-by-side, and making best use of the available space. (If there is an option to do tiling of all pages, or selected pages, then even better.)

I thought montageImage might be the answer, but I cannot find a complete example, so could not work out how to specify the PDF pages to process.

Notes on above listing:

  • The 3rd parameter to thumbnailImage means it keeps the aspect ratio of the original
  • The 4th parameter means pad (with white) on either side so the image is still $w x $h pixels
  • You can append [n] to $fname to just load page n (counting from zero) (e.g. "my.pdf[0]" makes a thumbnail of the first page).
  • By default it will do the last page of a multi-page PDF, so setiteratorindex() is needed to select the page to process.
           

Lista de respuestas

3
 
vote

versión modificada

¡Esto puede hacer lo que quieres más simplemente!

  montage -density 288 input.pdf[0,1] -resize 50% -mode Concatenate -tile 2x thumb.jpg   

solución original

No estoy seguro de cómo lo haría en php , pero aquí hay un script que hace lo que creo que desea en la línea de comandos con ImageMagick:

  #!/bin/bash PDF=$1 TMPA="TMPA-$$.JPG" TMPB="TMPB-$$.JPG" out=1 # # Get number of pages in PDF NUMPAGES=$(identify "$PDF" | wc -l) echo $PDF has $NUMPAGES pages # # Iterate over all pages, two at a time for ((p=0;p<$NUMPAGES;)) do     convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPA"     ((p++))     convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPB"     ((p++))     convert +append "$TMPA" "$TMPB" thumb${out}.jpg     ((out++))     rm "$TMPA" "$TMPB" 2> /dev/null done   

Guardar como #0 y use así:

  #111  

Produce una salida de "TwoS-UP" del PDF, en los archivos de miniaturas #2

Esperemos que haya algunos consejos allí en cuanto a qué parámetros usar y qué funciones para llamar "PHP.

 

Modified Version

This may do what you want more simply!

montage -density 288 input.pdf[0,1] -resize 50% -mode Concatenate -tile 2x thumb.jpg 

Original Solution

I am not sure how you would do it in php, but here is a script that does what I think you want at the command line with ImageMagick:

#!/bin/bash PDF=$1 TMPA="TMPA-$$.JPG" TMPB="TMPB-$$.JPG" out=1 # # Get number of pages in PDF NUMPAGES=$(identify "$PDF" | wc -l) echo $PDF has $NUMPAGES pages # # Iterate over all pages, two at a time for ((p=0;p<$NUMPAGES;)) do     convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPA"     ((p++))     convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPB"     ((p++))     convert +append "$TMPA" "$TMPB" thumb${out}.jpg     ((out++))     rm "$TMPA" "$TMPB" 2> /dev/null done 

Save as thumbnailer and use like this:

chmod +x thumbnailer ./thumbnailer xyz.pdf 

It produces a "twos-up" output of the PDF, in thumbnail files thumb{1..n/2}.jpg

Hopefully there are some hints in there as to what parameters to use and what functions to call in `php.

 
 

Relacionados problema

4  Cómo crear una vista en miniatura usando bibliotecas del sistema en Linux  ( How to create a thumbnail view using system libraries in linux ) 
Quiero crear una vista en miniatura de un tipo de archivo similar a las miniaturas que se muestran en GNOME / KDE. Preguntándome si alguien sabe qué bibliotec...

0  Baje la velocidad general de descarga de la página web al buscar miniaturas ... ¿Cómo?  ( Lower the overall download speed of the webpage when fetching thumbnails how ) 
Estoy recuperando muchas miniaturas en mi aplicación de una base de datos / servidor remoto y cargarlas en una vista de lista (UL). Cuando haya, alrededor de,...

1  Imagen de la imagen de ASP.NET VAYA GRYSCALE (ISH) - RIOD!  ( Asp net image thumbnails go greyscaleish weird ) 
Dada una imagen original de: Este cambio de tamaño para parecer como tal: Todas las imágenes que son tiendas en el servidor son correctas con fondo ...

4  Usando la biblioteca PHP GD para cambiar el tamaño y guardar imágenes es el infierno  ( Using the php gd library to resize and save images is hell ) 
Estoy escribiendo un script que cargará un archivo de la entrada del usuario, cambiarlo de tamaño a una miniatura y agregar los dos nuevos nombres de archivo ...

1  ¿Cómo fusionar la imagen en el centro de la miniatura del video?  ( How to merge image into center of the video thumbnail ) 
He creado un reproductor multimedia, está funcionando bien para mí. El reproductor multimedia muestra el número de miniaturas de video. Necesito un botón de j...

0  Cómo controlar la salida HTML de la variable $ imagen en woocommerce  ( How to control html output of variable image in woocommerce ) 
Estoy usando woocommerce y en mi única página de producto Tengo una descripción general de las imágenes del producto. Llamo las imágenes con la plantilla de p...

2  Usando PEL (PHP EXIF ​​Library), ¿hay una manera de eliminar la miniatura incrustada de los datos EXIF ​​de una imagen?  ( Using pel php exif library is there a way to remove the embedded thumbnail fr ) 
Estoy trabajando en un proyecto que cambia de tamaño de imágenes usando PHP. Este proyecto utiliza PEL para copiar datos EXIF ​​desde la imagen de origen a ...

0  Enumerar dinaméticamente las miniaturas ordenadas desde el sistema de archivos  ( Dynamically list sorted thumbnails from filesystem ) 
¿Cómo puedo mostrar dinámicamente una lista de imágenes de 10 miniaturas que se almacenan en el sistema de archivos? Las imágenes en miniatura son para videos...

1  Tratando de crear desplazamiento de la navegación horizontal en miniatura que se esconde en el lado izquierdo cuando no esté en uso  ( Trying to create scrolling horizontal thumbnail navigation that hides on left si ) 
Estoy intentando recrear el siguiente tipo de navegación en miniatura de desplazamiento como se describe en el siguiente tutorial: http://tympanus.net/codr...

1  iPhone RSS Thumbnail  ( Iphone rss thumbnail ) 
Tengo un lector de RSS simple. Las historias se descargan, se ponen en una UITYVIEW, y cuando hace clic en él, cada historia se carga en una UIWebView. Funcio...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos