如何在PDFBox中显示阿拉伯语文本

时间:2016-06-27 06:22:43

标签: java arabic pdfbox right-to-left

我想使用PDFBox创建阿拉伯语报告我已经在stackoverflow上看到了不同的解决方案但是无法为我的问题找到解决方案。 阿拉伯语单词以反向顺序出现如何修复它如果你有任何例子请帮我这里是我的代码。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

String relativeWebPath = "/font/arial.ttf";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);

System.out.print(file);



ByteArrayOutputStream output=new ByteArrayOutputStream();
PDDocument document=new PDDocument();
PDFont font = PDType0Font.load(document, new File(absoluteDiskPath));
PDPage test=new PDPage();
document.addPage(test);
PDPageContentStream content=new PDPageContentStream(document, test);
final String EXAMPLE = "النص العربي";
System.out.print(EXAMPLE);



     content.beginText();
     content.newLineAtOffset(50, 680);
     content.setFont(font, 12);
     content.showText(EXAMPLE);
     System.out.print(EXAMPLE);
     content.endText();




 content.close();

PDFTextStripper textStripper = new PDFTextStripper();
String Text = textStripper.getText(document);
System.out.print(Text);

document.save(output);
document.close();


response.setContentType("application/pdf;base64,BASE_64_ENCODED_PDF");

response.addHeader("Content-Disposition", "inline;    filename=\"TestReport.pdf\"");
response.getCharacterEncoding();
response.getOutputStream().write(output.toByteArray());



}

1 个答案:

答案 0 :(得分:0)

支持阿拉伯语等双向语言。 PDFBox使用International Components for Unicode(ICU)项目中的ICU4J库来支持PDF文档中的此类语言。您需要将ICU4J jar添加到项目中。