Utilizzo di PDFBox per scrivere stringhe con codifica UTF-8 in un PDF

Ho problemi a scrivere caratteri Unicode su un PDF usando PDFBox. Ecco alcuni esempi di codice che generano caratteri illeggibili invece di emettere “š”. Cosa posso aggiungere per ottenere supporto per le stringhe UTF-8?

PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PDType1Font font = PDType1Font.HELVETICA; contentStream.setFont(font, 12); contentStream.beginText(); contentStream.moveTextPositionByAmount(100, 400); contentStream.drawString("š"); contentStream.endText(); contentStream.close(); document.save("test.pdf"); document.close(); 

Si sta utilizzando uno dei font “Base 14” incorporati forniti con Adobe Reader. Questi caratteri non sono Unicode; sono effettivamente un alfabeto latino standard, anche se con un paio di caratteri in più. Sembra che il personaggio che hai citato, una lettera minuscola con un caron (š), non sia disponibile nel testo in formato PDF in formato PDF … anche se una Š maiuscola è disponibile ma curiosamente solo su Windows. Vedere l’Appendice D della specifica PDF all’indirizzo http://www.adobe.com/devnet/pdf/pdf_reference.html per i dettagli.

Ad ogni modo, arrivando al punto … è necessario incorporare un font Unicode se si desidera utilizzare caratteri Unicode. Assicurati di avere la licenza per incorporare qualsiasi carattere tu decida … Posso consigliare i font Gentium o Doulos open-source perché sono gratuiti, di alta qualità e hanno un completo supporto Unicode.