Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.0, 2.0.3, 3.0.0 PDFBox
-
None
-
Test
-
Important
Description
special characters are not supporting in my program
eg: "α"(alpha)
My sample code:
package com.test; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType1Font; public class SimpleTest { public static void main(String[] args) throws Exception { SimpleTest s = new SimpleTest(); s.pdfGeneration(); } public void pdfGeneration() throws IOException { String outputFileName = "Simple123.pdf"; // Create a document and add a page to it PDDocument document = new PDDocument(); PDPage page1 = new PDPage(PDRectangle.A4); // PDRectangle.LETTER and others are also possible PDRectangle rect = page1.getMediaBox(); // rect can be used to get the page width and height document.addPage(page1); // Create a new font object selecting one of the PDF base fonts PDFont fontPlain = PDType1Font.HELVETICA; PDFont fontBold = PDType1Font.HELVETICA_BOLD; PDFont fontItalic = PDType1Font.HELVETICA_OBLIQUE; PDFont fontMono = PDType1Font.COURIER; // Start a new content stream which will "hold" the to be created // content PDPageContentStream cos = new PDPageContentStream(document, page1); int line = 0; List<String> sampleData = new ArrayList<String>(); sampleData.add("ss1 s"); sampleData.add("dd α"); // String tt ="sss"; for (String tt : sampleData) { ++line; drawText(cos, fontPlain, tt, rect, line); } cos.close(); document.save(outputFileName); document.close(); } public void drawText(PDPageContentStream cos, PDFont fontPlain,String text, PDRectangle rect, int line) throws IOException { try { cos.beginText(); cos.setFont(fontPlain, 12); cos.newLineAtOffset(100, rect.getHeight() - 50 * (line)); cos.showText(text); cos.endText(); } catch (Exception e) { e.printStackTrace(); // cos.endText(); } } }
Exception:
java.lang.IllegalArgumentException: U+03B1 ('alpha') is not available in this font's encoding: WinAnsiEncoding at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:345) at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286) at org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:411) at com.test.SimpleTest.drawText(SimpleTest.java:67) at com.test.SimpleTest.pdfGeneration(SimpleTest.java:50) at com.test.SimpleTest.main(SimpleTest.java:18)
And also please let me know whether pdf box will supports for localization or not?