使用pdfbox以印地语字体写PDF格式的文本

时间:2013-06-25 10:28:11

标签: java

我想用pdf框用pdf中的hindi字体写文字。任何人都可以提供帮助。

我正在尝试编写这样的代码。

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();

后来我也尝试添加编码,但没用。我在PDFBox中找不到任何支持UTF-8的编码类。

1 个答案:

答案 0 :(得分: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。

不要在包pdfbox中包含PDTrueTypeFont。使用您当地的包裹。