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 に答える