1

我想使用 pdf 框在 pdf 中以印地语字体编写文本。任何人都可以帮忙。

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

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 的编码类。

4

1 回答 1

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。从您当地的包装中使用。

于 2013-06-26T01:25:14.080 回答