我想用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的编码类。
答案 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。使用您当地的包裹。