2012-10-01 26 views
19

He escaneado algunos materiales a 600 ppp, ~ 9.36x12.67 pulgadas y preparado en formato PostScript (PS).Cómo configurar el tamaño de página personalizado con Ghostscript

Ahora cuando trato de transformar PS a PDF con Ghostscript (GS), obtengo una salida recortada, ya que supongo que el tamaño de página predeterminado de GS está establecido en A4. Encontré plantillas disponibles para GS aquí: http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes pero ninguna coincide con las dimensiones de mis archivos PS, entonces:

¿Puedo indicar a GS que muestre el tamaño personalizado, y en caso afirmativo cómo?

-sPAPERSIZE las instrucciones parecen aceptar solo el nombre predefinido de las plantillas, como en la documentación vinculada.

Respuesta

25

puede establecer el tamaño de página se utiliza con -gNNNNxMMMM donde NNMN es la anchura en pixeles a 720 dpi (720 píxeles == 1 pulgada), y MMMM es la altura en píxeles a 720 dpi.

O puede establecer el tamaño personalizado en PostScript puntos (72 puntos == 1 pulgada) con -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h.

Si no estoy equivocado, 9,36 pulgadas ≈ = 674 puntos y 12,67 pulgadas ≈ = 912 puntos.

También deberá aplicar -dPDFFitPage para adaptar su entrada a la página.

lo que podría utilizar ya sea

gs       \ 
    -o output.pdf   \ 
    -sDEVICE=pdfwrite  \ 
    -dDEVICEWIDTHPOINTS=674 \ 
    -dDEVICEHEIGHTPOINTS=912 \ 
    -dPDFFitPage    \ 
    input.ps 

o

gs     \ 
    -o output.pdf  \ 
    -sDEVICE=pdfwrite \ 
    -r600    \ 
    -g8112x7596  \ 
    -dPDFFitPage  \ 
    input.ps 
+0

Creo que quería usar '-r720' para 720 ppp. Gracias por su respuesta de todos modos – Dorian

+0

Tengo una aplicación que está utilizando Ghostscriptsharp (implementación de C#). Es solo un .dll y no tiene todas las opciones de línea de comandos (que puedo encontrar) para tamaños de página personalizados. ¿Alguna idea sobre cómo implementar esto en este envoltorio? – Valien

+0

rasterizador.CustomSwitches.Add ("- dMySwitch"); – wbt11a

3

Lo que funcionó para mí:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

El 4308x6066 es el número de píxeles, la -r720 es el número de píxeles por pulgada.

Así que aquí tenemos 720 ppp, por ejemplo, para 5 pulgadas, esto será 3600 píxeles.

0

Estoy usando GhostPDL 9.10. Aunque mi tamaño de papel de 8.5x13 aparece en http://ghostscript.com/doc/7.07/Use.htm#Known_paper_sizes como "flsa", el interruptor "-sPAPERSIZE = flsa" no tuvo ningún efecto, el tamaño del papel permaneció en letra. Las unidades correctas para el interruptor -g5100x7800 coincidían con mi -r600 (no 720); -g funciona

1

Encontré que gs estaba recortando mi salida a pesar de que había forzado la página al tamaño estándar más grande, A0.

La razón resultó ser que el documento PostScript enviado a gs por groff/grops contenía una especificación %%DocumentMedia que fue anulando la elección de Ghostscript.

La solución fue dar groff el indicador de línea de comandos -p-P48i,48i. El -p dice groff para pasar el resto de la opción al grops. El -P48i,48i a grops establece el tamaño del papel en 48 pulgadas por 48 pulgadas.

Cuestiones relacionadas