Domanda

Sto cercando di stampare file PDF silenziosi dall'interno di un'applicazione Java (più precisamente un J2EE Webapp).

In questa applicazione che sto creando file PDF con iText. I file creati sono lettere tipo, ognuno composto da esattamente una pagina.

Per effettuare il rendering e stampare questi file PDF Ho cercato di usare la libreria pdf-renderer. (Vedi qui: https://pdf-renderer.dev.java.net/ )

Ho trovato un po 'di codice di esempio utile a http://juixe.com/techknow/index.php/2008/01/17/print-a-pdf-document-in-java/ e in effetti, non passò molto tempo fino a quando sono stato in grado di stampare il primo documento dalla mia macchina di lavoro.

Ma ora arriva la parte divertente:

Dopo aver stampato ciascuno dei file PDF è stato in qualche modo incasinato. Era ancora leggibile e tutto, ma tutta la formattazione è andato un po 'folle. Linebrakes dove non dovrebbero essere, manufatti di errore nella immagine contenuta, unterlining testo si raggiunge un tratto più o meno lungo come supposto ...

Inoltre ciò che è stato stampato è stato anche questo 'violato up' la versione ... Quindi credo che l'errore deve essere da qualche parte nel processo di rendering.

Questo è il codice sorgente di responsabile per l'intero processo di rendering e la stampa:

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 altro fatto divertente: L'avvitamento del PDF avviene solo sui documenti PDF iText creati. Se provo a stampare qualche casuale altro PDF non ottiene straziati.

Tutte le idee su ciò che il problema potrebbe essere? E come può il rendering influenzare i miei PDF è affatto? A quanto ho capito questo codice Scource, la modalità READ_ONLY dovrebbe impedire esattamente questo ...

EDIT: Ho appena visto che la stampa di un iText creato PDF rimuove anche i font incorporati. Anche in questo caso, prima del rendering / stampa tramite pdf-renderer questo ha funzionato perfettamente bene. (Font anche mostrato nelle proprietà del PDF, ecc ...)

È stato utile?

Soluzione

Forse iText è la creazione di file PDF che non sono compatibili con il renderer? Hai controllato la versione PDF crea? Forse è possibile specificare una versione precedente?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top