You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "KUMARA SWAMY PALLUKURI (JIRA)" <ji...@apache.org> on 2016/09/19 17:37:20 UTC
[jira] [Created] (PDFBOX-3504) Special characters issue
KUMARA SWAMY PALLUKURI created PDFBOX-3504:
----------------------------------------------
Summary: Special characters issue
Key: PDFBOX-3504
URL: https://issues.apache.org/jira/browse/PDFBOX-3504
Project: PDFBox
Issue Type: Bug
Components: FontBox
Affects Versions: 2.0.0
Environment: Test
Reporter: KUMARA SWAMY PALLUKURI
Fix For: 2.0.0
The Pdfbox version 2.0.0 ,special characters are not supporting while
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?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org