Hinzufügen von Schriftarten Apache Pdfbox?
Gibt es eine Möglichkeit, um zusätzliche Schriftstile in Apache Pdfbox?
Sind wir derzeit versuchen zu umgehen, drucken von PDF-Dateien in unserem system (derzeit mit PDF-Renderer.) Ich schaue mir die verschiedenen alternativen (pdfbox, jpedal, jPDFPrint)
Unsere Hoffnung ist, für eine freie GPL-kompatibel-Bibliothek zu verwenden, und als solche sind wir hin pdfbox. Ich habe in der Lage zu schreiben, einige Beispiel-code, drucken Sie die pdf, die 'funktioniert'. Siehe unten:
PDDocument doc;
try {
doc = PDDocument.load("test.pdf");
doc.print();
} catch (Exception e) {
//Come up with better thing to do on fail.
e.printStackTrace();
}
Wie ich bereits erwähnte, funktioniert es, aber das problem ist ich in ist dass PdfBox scheint nicht zu erkennen, die verwendeten Schriftarten in die pdf-Datei, und als solche verändert die verwendete schriftart. Als Ergebnis wird das Dokument sieht sehr merkwürdig aus (Abstände und die Schriftgröße anders sind und Aussehen bizarre). Ich routinemäßig finden Sie in der folgenden log-Nachricht, oder Dinge, die es mögen:
Apr 16, 2014 2:56:21 PM org.apache.pdfbox.pdmodel.font.PDSimpleFont Kordelzug
WARNUNG: Ändern der schriftart auf < > aus < NimbusMono >, um die Standard-schriftart
Kennt jemand eine Möglichkeit (oder einen Verweis) auf, wie Sie Ansatz hinzufügen eines neuen fonttype in pdfbox? Ein-oder ausblendet, die, gewusst wie: ändern die Standard-schriftart?
Was ich sagen kann, pdfbox unterstützt 14 standard-Schriften. Leider NimbusMono ist nicht einer von Ihnen. Jede Beratung wäre geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem unveröffentlichten version 2.0 unterstützt die Darstellung von eingebetteten Schriften. Sie können es als eine Momentaufnahme
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/
oder durch "svn checkout http://svn.apache.org/repos/asf/pdfbox/trunk/". Die API unterscheidet sich geringfügig von der 1.8.x-Versionen und können sich ändern, das beste ist der Blick auf die code-Beispiele. Einen schnellen test, um zu sehen, ob Ihre Datei wird ordnungsgemäß wiedergegeben, ist der download der "pdfbox-app"
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.0-SNAPSHOT/
und dann führen Sie den viewer:
java-jar pdfbox-app-2.0.0-20140416.173452-273.jar PDFReader Ihr-Datei-Namen.pdf
Es gibt auch eine print-Funktion.
Glück!
Update 2016: Version 2.0 raus ist, laden Sie es hier.
Wenn Sie bereits mit der 1.8-version, Lesen Sie die migration guide.
Ich lief in ein ähnliches problem mit PDFBox. PDF-Dateien können ausgedruckt werden, in einer einfachen Art und Weise mit der Java-javax.print-Paket. Der folgende code ist leicht abgewandelt von der API docs für javax.drucken.
Diesem code wird davon ausgegangen, dass der Drucker annehmen kann, eine PDF-Datei direkt, aber Sie können Sie umgehen PDFBox 1.8 Niederlassung schriftart wonky Fragen.
Stieß ich auf diesen Beitrag, während Sie versuchen, dasselbe problem zu lösen. Die PDFBox 2.0 API Dokumentation ist nicht so toll im moment.
Was du suchst ist die FontFileFinder in Fontbox.
Stellen Sie sicher, dass Sie mit der vollen pdfbox-app jar-Datei, die enthält Fontbox.
Ich habe nur versucht, diese unter Windows aber ein Blick auf die Klassen, wie es scheint, es unterstützt die anderen wichtigen Betriebssystemen.
Hier ist ein einfaches Beispiel Klasse schrieb ich, dass schreibt eine kleine Textdatei, die in der unteren linken Ecke des PDF-Dokuments mit einem nicht-standard-schriftart.