7
votes

Convertir de PDF en PostScript à l'aide de Java

J'ai une application basée sur J2EE, où j'utilise un outil de rapport pour générer des sorties au format PDF. J'ai besoin d'un utilitaire / outil dans Java qui peut m'aider à convertir mon fichier PDF au format PostScript afin que je puisse l'imprimer à une imprimante ... Mon application sera exécutée sur une variété d'OS (Windows / Linux / AIX), donc Une solution de plate-forme indépendante est essentielle. Mon outil de rapport ne prend pas en charge les sorties au format PS. S'il vous plaît conseil ...


0 commentaires

8 Réponses :


-1
votes

Peut-être envisager d'utiliser Rapports Jasper .

Cela vous permettra de générer un rapport dans une sortie de plusieurs sorties (PDF, HTML, RTF).

Vous pouvez également exporter le rapport à une imprimante.

EDIT:

voici un rapide Exemple J'ai trouvé à exporter vers une imprimante en utilisant JRPrintServiceExporter par opposition à l'utilisation d'un exportateur PDF. On dirait que cela fera le travail.


2 commentaires

Voici un lien que pourrait être utile pour générer des PS de Jasper: forums.Codecharge.com/postS.php?post_id=57257


Merci Gordon pour votre aide ... je suis en train d'utiliser des rapports Jasper pour la génération de sortie, mais je ne suis pas en mesure de trouver une option pour exporter la sortie sur l'imprimante ... et les formats pris en charge par défaut n'incluent pas PS



4
votes

Il y a Afaik sans imbécile Solutions PURE JAVA PURE pour cela, mais si la conversion doit être effectuée sur le côté serveur, je vous recommanderais d'utiliser Convertisseur PDF2PS de Ghostscript's . Même si vous devez installer une version spécifique de la plate-forme de Ghostscript, vous devez en trouver un pour toutes les plates-formes mentionnées.


1 commentaires

Ghostscript est gratuit et fonctionne sur toutes les plateformes. En l'absence de convertisseurs PDF pdf-> PS pur, c'est la voie à suivre.



0
votes

Il existe plusieurs bibliothèques PDF pouvant imprimer des PDF. Si vous imprimez sur une imprimante PostScript et utilisez l'option Imprimer vers File, vous pouvez vous retrouver avec PostScript.


0 commentaires

0
votes

Une autre solution "EXE Basé", comme Ghostscript, est xpdf.pdftops
PDFTOPTOPS est une application de commande pure. Course sur Win, Linux et Solaris.
http://www.foolabs.com/xpdf/


0 commentaires

-1
votes

Peut-être que ce code peut aider:

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();
    }


0 commentaires

0
votes

Utiliser FOP XSLFO http://xmlgraphics.apache.org/fop/fop-pdf-images.html

fop test.fo -ps out.ps

test.fo: xxx


0 commentaires

2
votes

Voici ma solution de java pure. Cela fonctionne bien sur Centos, Suse et Windows 7. et aucune installation de tout logiciel n'est nécessaire. XXX PRE>

Dépendance: P>

dependencies {
    compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.8'
}


0 commentaires

0
votes

Merci, j'ai essayé cette option et très capable de convertir PDF en PostScript. Le seul problème que je suis confronté est, lorsque j'envoie un tel fichier à l'imprimante et si le PDF a une orientation mixte comme certaines pages de portrait et certaines sont dans le paysage, le fichier PostScript reconditionné est imprimé en mode portrait ou en mode paysage. . Il devrait gérer automatiquement l'orientation lors de l'impression.

Code Snippet pour impression PS Fichier - P>

    DocPrintJob job = service.createPrintJob();
    try {
        PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
        File psFile = new File (psFilePath); 
        InputStream inputStream = new FileInputStream(psFile);
        Doc doc = new SimpleDoc(inputStream, DocFlavor.INPUT_STREAM.POSTSCRIPT ,null);
        job.print(doc, attributes);
    } catch (Exception e) {
        e.printStackTrace();
    }


0 commentaires