Ajout de polices à Apache Pdfbox?
Est-il un moyen d'ajouter des styles de police dans Apache Pdfbox?
Nous sommes actuellement en train d'essayer de travailler autour de l'impression de fichiers Pdf dans notre système (actuellement en cours avec les PDF Renderer.) J'ai été en regardant les différentes alternatives (pdfbox, jpedal, jPDFPrint)
Notre espoir est libre compatible avec la GPL de la bibliothèque à utiliser, et en tant que tel, nous nous sommes penchée vers pdfbox. J'ai été capable d'écrire un exemple de code pour imprimer le fichier pdf qui 'marche'. Voir ci-dessous:
PDDocument doc;
try {
doc = PDDocument.load("test.pdf");
doc.print();
} catch (Exception e) {
//Come up with better thing to do on fail.
e.printStackTrace();
}
Comme je l'ai mentionné, cela fonctionne, mais le problème je suis en cours d'exécution en est que PdfBox ne semble pas être reconnaissant les polices utilisées dans le document pdf, et en tant que tel modifie la police utilisée. En conséquence, le document semble très étrange (l'espacement et la taille des caractères sont différents et look bizarre). J'ai régulièrement voir le message du journal suivant, ou des choses comme ça:
Avr 16, 2014 2:56:21 PM org.apache.pdfbox.pdmodel.la police.PDSimpleFont cordon de serrage
AVERTISSEMENT: Modification de la police sur < > < NimbusMono > la police par défaut
Personne ne sait d'une façon (ou une référence) sur la façon d'aborder l'ajout d'un nouveau le type de fonte en pdfbox? Ou sinon, comment changer la police par défaut de type?
De ce que je peux dire, pdfbox prend en charge 14 polices standard. Malheureusement NimbusMono n'est pas l'un d'eux. Des conseils seraient appréciés.
OriginalL'auteur K.Niemczyk | 2014-04-16
Vous devez vous connecter pour publier un commentaire.
La unreleased version 2.0 prend en charge le rendu des polices de caractères intégrées. Vous pouvez obtenir un aperçu
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/
ou par l'intermédiaire de "svn checkout http://svn.apache.org/repos/asf/pdfbox/trunk/". L'API est légèrement différente de la 1.8.versions x et pourraient changer, le mieux est de regarder les exemples de code. Un rapide test pour voir si votre fichier sera rendu correctement, c'est pour télécharger "pdfbox-app"
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.0-SNAPSHOT/
et puis d'exécuter la visionneuse:
java-jar pdfbox-app-2.0.0-20140416.173452-273.jar PDFReader votre-nom de fichier.pdf
Il y a aussi une fonction d'impression.
Bonne chance!
Mise à jour de 2016: la version 2.0 est sorti, télécharger ici.
Si vous avez utilisé la version 1.8, lire la guide de migration.
A fonctionné pour moi aussi 🙂 merci
OriginalL'auteur Tilman Hausherr
J'ai rencontré un problème similaire avec PDFBox. Les fichiers pdf peuvent être imprimés de manière simple à l'aide de Java javax.imprimer paquet. Le code suivant est légèrement modifié à partir de l'API docs pour javax.d'impression.
Ce code suppose que l'imprimante peut accepter un PDF directement, mais il vous permet de contourner PDFBox 1.8 de la direction générale des déglingués de la police des questions.
OriginalL'auteur mttdbrd
Je suis tombé sur ce post en essayant de résoudre le même problème. Le PDFBox 2.0 documentation de l'API n'est pas génial pour le moment.
Ce que vous cherchez est la FontFileFinder dans Fontbox.
Assurez-vous d'utiliser le plein pdfbox-application jar qui comprend Fontbox.
Je ne l'ai essayé sur Windows, mais en regardant les classes, on dirait qu'elle prend en charge les autres principaux systèmes d'exploitation.
Voici un exemple simple de la classe que j'ai écrit qui écrit un petit bout de texte dans le coin inférieur gauche d'un document PDF, à l'aide d'une police non standard.
OriginalL'auteur Column-E