2013-06-25 5 views
0

Я хочу написать текст в хинди шрифт в формате pdf с помощью окна pdf. Может кто-нибудь помочь.Запись текста в PDF в шрифт хинди с использованием pdfbox

Я пытаюсь написать такой код.

PDDocument doc = new PDDocument();  
PDPage page = new PDPage(); 
doc.addPage(page); 
PDFont font = PDTrueTypeFont.loadTTF(doc, new File("c:\\shusha.ttf")); 
font.setFontEncoding(new WinAnsiEncoding()); 
PDPageContentStream content = new PDPageContentStream(doc, page, true, false); 
content.setFont(font, 15); 
content.beginText(); 

content.moveTextPositionByAmount(200, 100); 
content.drawString("Aamarsa"); 
content.endText(); 
content.close(); 
doc.save(new FileOutputStream(new File("c:\\testOutput.pdf"))); 
doc.close(); 

Позже я также попытался добавить кодировку, но не полезен. Я не смог найти класс кодировки, который поддерживает UTF-8 в PDFBox.

+1

Хорошо, продолжайте, спросите, когда вы провели какое-то исследование и разместили свой вопрос, который показывает некоторые усилия! – NINCOMPOOP

+1

Бог помогает тем, кто помогает себе. Большинство из нас здесь, на SO, верит в это. Постарайся помочь себе, написав код и обменяйся тем, где ты застрял, Удачи! –

+0

Amit, SO не предназначен для изучения учебников по вещам. Если вы проделали определенную работу и задали конкретные вопросы, спросите их здесь –

ответ

0

Здесь я попробовал это, и есть что-то, что вы хотите использовать один и тот же код,

просто скачать PDTrueTypeFont.java (от pdfbox-1.8.2-src.jar) файл и включить в свой проект, затем изменить условию

до,

int platformEncoding = cmaps[i].getPlatformEncodingId(); 
        if (CMAPTable.ENCODING_UNICODE == platformEncoding) 

модифицированного,

int platformEncoding = cmaps[i].getPlatformEncodingId(); 
        if (CMAPTable.ENCODING_UNICODE == platformEncoding || 
         CMAPTable.ENCODING_SYMBOL == platformEncoding) 

, потому что этот класс не поддерживает ENCODING_SYMBOL. так что только вы не можете создать PDF с разными шрифтами.

Не включайте PDTrueTypeFont из пакета pdfbox. Используйте из своего локального пакета.