2015-11-02 2 views
1

Я пытаюсь вставить арабский текст в PDF с помощью pdfboxарабские символы не связаны при использовании pdfbox

File myFile = new File("src/arabic/arial.ttf"); 
PDFont font = PDType0Font.load(doc, myFile); 
PDPageContentStream contentStream = new PDPageContentStream(doc, page,true,true); 
contentStream.beginText(); 
contentStream.setFont(font, 12); 
contentStream.newLineAtOffset(30, 40); 
String arabicText = "عطي يونيكود رقما فريدا لكل حرف" ; 
      // System.setProperty("ste.encoding", "UTF-8"); 
contentStream.showText(arabicText); 
contentStream.endText(); 
contentStream.close(); 

арабский текст отображается как отключенный текст в результате PDF.

+0

Возможный дубликат [Написание арабских символов с PDFBox в их правильной форме презентации без разделения) (https://stackoverflow.com/questions/48284888/writing-arabic-characters-with-pdfbox-in-their-correct- презентация форм-без) – mkl

ответ

1

(Это относится к PDFBox 2,0, а не для более ранних версий)

Вы должны сделать это самостоятельно. Я не могу объяснить это на арабском языке, но для «западных» глифов:

stream.showText("film \uFB01lm"); 

Создать PDF с этим один, а затем попытаться пометить «F» или «л» во втором слове - вы можете 't, потому что это одна сущность.

Первое слово имеет «f» и «i» в виде отдельных символов, второе имеет латинскую маленькую лигатуру fi (U + FB01). Таким образом, вам придется выполнить некоторую предварительную обработку, чтобы заменить такие комбинации, когда ваш шрифт поддерживает их. Удачи!

Смежные вопросы