Estoy teniendo una aplicación basada en J2EE, donde estoy usando una herramienta de informes para generar resultados en formato PDF. Necesito una utilidad/herramienta en Java que me puede ayudar a convertir mi archivo PDF a formato PostScript para que pueda imprimirlo en una impresora ... Mi aplicación se ejecutará en una variedad de sistemas operativos (es decir, Windows/Linux/AIX) por lo tanto, una plataforma independiente es esencial. Mi herramienta de informes no admite salidas en formato PS. Por favor consejo ...Convertir de PDF a Postscript usando Java
Respuesta
Quizás considere usar jasper reports.
Le permitirá generar un informe en una variedad de salidas (PDF, Html, RTF).
También puede exportar el informe a una impresora.
Editar:
He aquí una rápida example encontré a exportar a una impresora utilizando JRPrintServiceExporter en lugar usando un exportador PDF. Parece que hará el trabajo.
Hay AFAIK no a prueba de tontos, soluciones de Java puro para esto, pero si la conversión se va a hacer en el lado del servidor, le recomendaría usar Ghostscript's convertidor de pdf2ps. Incluso si tiene que instalar una versión específica de la plataforma de Ghostscript, debe encontrar una para todas las plataformas mencionadas.
Ghostscript es gratuito, y se ejecuta en todas las plataformas. En ausencia de buenos convertidores puros pdf-> ps de Java, este es el camino a seguir. –
Hay varias bibliotecas de PDF que pueden imprimir archivos PDF. Si imprime en una impresora PostScript y usa la opción Imprimir en archivo, podría terminar con Postscript.
Otra solución "basada en exe", como Ghostscript, es Xpdf.PdfToPS
PdfToPs es una aplicación de línea de comandos pura. Se ejecuta en Win, Linux y Solaris.
http://www.foolabs.com/xpdf/
Tal vez este código puede ayudar:
try
{
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType);
System.out.println ("Available PS services: " + factories.length);
if(factories.length == 0)
{
System.err.println ("No PS factories available!");
System.exit(0);
}
// Open the PDF file
PDFPrint pdfPrint = new PDFPrint ("test.pdf", null);
// Open the output file
FileOutputStream fos = new FileOutputStream("output.ps");
// Use the first service available
StreamPrintService sps = factories[0].getPrintService(fos);
DocPrintJob pj = sps.createPrintJob();
// Define paper size
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.NA_LETTER);
// Create simple doc using PDFPrint as Printable and print it
SimpleDoc doc = new SimpleDoc(pdfPrint, flavor, null);
pj.print(doc, aset);
// Close the output PS stream
fos.close();
}
catch (Throwable t)
{
t.printStackTrace();
}
Usando FOP XSLFO http://xmlgraphics.apache.org/fop/fop-pdf-images.html
FOP test.fo -PS out.ps
test.fo:
<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simple">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="simple">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:external-graphic src="my.pdf"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Aquí está mi solución pura de Java. Funciona bien en CentOS, SUSE y Windows 7. Y no se necesita instalar ningún software.
import java.io.File;
import java.io.FileOutputStream;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.SimpleDoc;
import javax.print.StreamPrintService;
import javax.print.StreamPrintServiceFactory;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.printing.PDFPrintable;
import org.apache.pdfbox.printing.Scaling;
public class Printing {
public static void main(String[] args) {
try {
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType);
System.out.println ("Available PS services: " + factories.length);
System.out.println ("Format: " + factories[0].getOutputFormat());
FileOutputStream outStream = new FileOutputStream("/path/to/your.ps");
StreamPrintService printService = factories[0].getPrintService(outStream);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.NA_LETTER);
PDDocument doc = PDDocument.load(new File("/path/to/my.pdf"));
SimpleDoc pdfDoc = new SimpleDoc(new PDFPrintable(doc, Scaling.SCALE_TO_FIT, false), flavor, null);
DocPrintJob newJob = printService.createPrintJob();
newJob.print(pdfDoc, aset);
outStream.close();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
Dependencia:
dependencies {
compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.8'
}
- 1. Linux PDF/Optimización de Postscript
- 2. PostScript versus PDF como formato de salida
- 3. Use Ghostscript para convertir PCL a PostScript
- 4. Convierta Word Document a PDF usando Java
- 5. Usando iText para convertir HTML a PDF
- 6. Convertir archivo PDF a imágenes usando C#
- 7. Convertir docx a pdf usando PHP
- 8. Convertir PDF a PNG usando ImageMagick
- 9. Usando Ghostscript para convertir JPEG a PDF
- 10. ¿Cómo convertir imágenes a pdf usando PHP?
- 11. convertir pdf a svg
- 12. convertir HTML a PDF
- 13. Convertir PDF a HTML
- 14. convertir a pdf base64Binary
- 15. Bash convertir a pdf
- 16. Convertir PDF a HTML
- 17. Cómo convertir miles de archivos PDF en un solo archivo Postscript en un orden específico
- 18. Java - convertir html con imágenes en CSS a pdf
- 19. Rieles: ¿Convertir HTML a PDF?
- 20. Cómo convertir MS doc a pdf
- 21. Cómo convertir PDF a Word usando Acrobat SDK?
- 22. Convertir doc, docx, pdf a HTML usando PHP linux
- 23. PDF para crear imágenes usando Java
- 24. convertir HTML (que tiene Javascript) a PDF usando JavaScript
- 25. Cómo convertir pdf Byte [] Matriz a archivo descargable usando iTextSharp
- 26. Android: Convertir PDF a imágenes
- 27. Lote Convertir PDF a XPS
- 28. Convertir PDF a imágenes automáticamente
- 29. Convertir PDF a imagen en miniatura en Java
- 30. .doc a pdf usando python
Aquí hay un enlace que * puede * ser útil para generar PS desde Jasper: http://forums.codecharge.com/posts.php?post_id=57257 –
Gracias Gordon por su ayuda ... De hecho estoy usando los Informes Jasper para la generación de salida, pero no puedo encontrar ninguna opción para exportar la salida a la impresora ... y los formatos admitidos por defecto no incluyen PS –