Estoy intentando, sin éxito, utilizar Ghostscript para rasterizar archivos PDF con un fondo transparente a archivos PNG con un fondo transparente. He buscado alta y baja para las preguntas de otros intentando lo mismo y ninguna de las soluciones publicadas, que por lo que yo puedo decir que descendía a especificando -sDEVICE = pngalpha, han trabajado con mis archivos de prueba. En este punto agradecería cualquier consejo o consejos que una mano más experimentada pudiera proporcionar .Convierta un PDF a un PNG transparente con GhostScript
Mi prueba de PDF se encuentra aquí: http://www.kolossus.com/files/test.pdf
Podría ser que el problema es con este archivo, pero lo dudo. Por lo que yo puedo decir , no tiene ningún fondo específico, y cuando abro el archivo con una aplicación transparencia consciente como Photoshop o Illustrator, por supuesto que pantallas con un fondo transparente. Sin embargo, cuando se abre con una aplicación como Adobe Reader, el archivo se representa con un fondo blanco. Creo que esto tiene más que ver con la aplicación que representa el PDF que con el PDF en sí: las aplicaciones como Adobe Reader suponen que quieres ver cómo se verá un documento impreso y mostrar siempre un lienzo blanco detrás del obras de arte, pero no puedo estar seguro.
El comando gs que estoy usando es:
gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -r72 -sOutputFile=test.png test.pdf
Esto produce un PNG que tiene píxeles transparentes fuera del cuadro delimitador de la obra en el archivo, pero todos los píxeles que se encuentran dentro de la obra de cuadro delimitador están rasterizados sobre un fondo blanco. Este es un problema para mí, ya que mi obra tiene sombras y bordes antialiased que necesitan ser conservado en la salida final, y no puede ser simplemente posprocesarlo con ImageMagick. Una muestra de mi salida PNG está en la misma ubicación que el pdf anterior, con .png al final (stackoverflow no me permitirá incluir más de una URL en mi publicación).
Curiosamente, no veo efectos al utilizar el indicador -dBackgroundColor, incluso si configuro algo no blanco como -dBackgroundColor = 16 # ff0000. Tal vez mi comprensión de la sintaxis de esta bandera es incorrecta.
También, curiosamente, no veo efectos al utilizar -dTextAlphaBits = 4 -dGraphicsAlphaBits = 4 indicadores para intentar habilitar el antialiasing de subpixel. Me gustaría también agradecería cualquier consejo sobre cómo habilitar el antialiasing subpíxel, especialmente en el texto.
Por último, estoy usando GPL Ghostscript 8.64 en Mac OS 10.5.7 y la representación flujo de trabajo que estoy tratando de ponerse en marcha es generar imágenes PNG transparentes de salida PDFs por PrinceXML. Llamaré a Ghostscript directamente para la rasterización en lugar de utilizar ImageMagick porque ImageMagick delega en Ghostscript para la rasterización de PDF y debería poder controlar mejor la rasterización llamando directamente a GS.
Gracias por su ayuda.
-Jon Wolfe
Solo quiero decir gracias por esta respuesta. Estoy tratando de rasterizar un PDF con 'gs 9.02', que es una superposición de dos archivos PDF con rellenos transparentes (hecho con' pdftk'); cuando rasterize con '-r 150', obtengo solo la capa superior visible, mientras que la parte inferior es casi invisible. Después de leer esto, probé '-dMaxBitmap = 2147483647', desafortunadamente no funcionó para mí, pero luego comencé a reducir la resolución, hasta que encontré eso en' -r80' (para mi caso), finalmente los colores son renderizados correctamente, lo que probablemente significa que es el mismo error de memoria. Afortunadamente, 'gimp' funcionó para mí. ¡Aclamaciones! – sdaau
Solo quería decir que PNG transparente funciona bien para mí. Estoy usando GhostScript 9.19 en Windows y 9.06 en Linux. Estoy usando estas opciones: '-q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap = 500000000 -dAlignToPixels = 0 -dGridFitTT = 2 -sDEVICE = pngalpha -dTextAlphaBits = 4 -dGraphicsAlphaBits = 4 -r150'. No sé si alguno de ellos hace alguna diferencia, solo funcionó de la caja para mí, así que no jugué con eso. – TheStoryCoder