Question

Je suis en train de fichiers PDF d'impression silencieux à partir d'une application java. (Plus précisément un J2EE Webapp)

Dans cette application, je suis en train de créer des fichiers PDF avec iText. Les fichiers créés sont des lettres de forme, chacune composée d'exactement une page.

Pour rendre et imprimer ces fichiers PDF que j'ai essayé d'utiliser la bibliothèque pdf-renderer. (Voir ici: https://pdf-renderer.dev.java.net/ )

J'ai trouvé quelques exemples de code utile à http://juixe.com/techknow/index.php/2008/01/17/print-a-pdf-document-in-java/ et en effet, il ne fallut pas longtemps avant J'ai pu imprimer le premier document de ma machine de travail.

Mais maintenant vient le plus drôle:

Après l'impression chacun des fichiers PDF a été en quelque sorte foiré. Il était encore lisible et tout, mais tout le formatage est allé un peu fou. Linebrakes où ils ne devraient pas être, des objets d'erreur dans l'image contenue, unterlining du texte est soudainement plus ou moins comme on le suppose ...

Par ailleurs ce qui a été imprimé a également été cette version « piraté up » ... Je suppose que l'erreur doit être quelque part dans le processus de rendu.

Ceci est le code source responsable de l'ensemble du processus de rendu et d'impression:

File f = this.file; //This accesses the created PDF file

FileInputStream fis = new FileInputStream(f);

FileChannel fc = fis.getChannel();

ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());

PDFFile pdfFile = new PDFFile(bb); // Create PDF Print Page

PDFPrintPage pages = new PDFPrintPage(pdfFile);



// Create Print Job

PageFormat pf = PrinterJob.getPrinterJob().defaultPage();

pjob.setJobName(f.getName());

Book book = new Book();

book.append(pages, pf, pdfFile.getNumPages());

pjob.setPageable(book);

Un autre fait amusant: Le vissage seulement de PDF qui se passe sur les documents PDF créés iText. Si je tente d'imprimer un autre hasard PDF qu'il ne soit pas mutilée.

Toutes les idées sur ce que le problème pourrait être

? Et comment le rendu sur mes PDF de du tout? Si je comprends bien ce code scource, le mode READ_ONLY doit éviter exactement cela ...

EDIT: Je viens de voir que l'impression d'un iText PDF créé supprime également les polices incorporées. Encore une fois, avant de rendre / impression via pdf-renderer cela a fonctionné parfaitement bien. (Polices de caractères a également montré dans les propriétés PDF, etc. ...)

Était-ce utile?

La solution

Peut-être iText crée des fichiers PDF qui ne sont pas compatibles avec votre moteur de rendu? Avez-vous vérifié la version PDF, il crée? Peut-être qu'il est possible de spécifier une version plus ancienne?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top