2017-03-16 74 views
0

在itext 7中,如果我在窗口中使用unicode(times new roman)字體,則PdfTextFormField將顯示所有字符正確。即使űőöüé等 但是當我嘗試使ComboBox場,與選項值: 首先 二 三, 然後在PDF格式的選項是: 國稅局 E在 HIR 如果我使用默認字體,選項顯示是可以的,但顯然這個字符是垃圾。 示例代碼:itext 7.0.1 PdfChoiceFormField缺少字符

import com.itextpdf.io.font.PdfEncodings; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.font.PdfFont; 
import com.itextpdf.kernel.font.PdfFontFactory; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.forms.PdfAcroForm; 
import com.itextpdf.forms.fields.PdfChoiceFormField; 
import com.itextpdf.forms.fields.PdfTextFormField; 
import com.itextpdf.forms.fields.PdfFormField; 

public class ComboTest { 
    public static final String FONT = "c:/windows/fonts/times.ttf";  
    public static void main(String args[]) { 
     try { 
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter("combobox.pdf")); 
      PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H); 
      String[] values = {"First","Second","Third"}; 
      PdfTextFormField text = PdfFormField.createText(
       pdfDoc, 
       new Rectangle(72,200,108,26), 
       "text", 
       "Árvíztűrő tükörfúrógép", 
       font, 
       12.0f 
      ); 
      PdfChoiceFormField combo = PdfFormField.createComboBox(
       pdfDoc, 
       new Rectangle(36, 780, 108, 26), 
       "combo", 
       "Choose your poison", 
       values 
      ); 
      combo.setFontAndSize(font,12); 
      PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true); 
      form.addField(combo); 
      form.addField(text); 
      pdfDoc.close(); 
     } catch(Exception ex) { 
      System.out.println(ex.toString()); 
     } 
    } 
} 

我的問題是爲什麼?

+0

這是真的curiouse。我自己試了一下。如果您將默認選項從「選擇毒藥」更改爲「第二」,則「Second」將正確顯示。你使用哪個IText版本? – GAlexMES

+1

@GAlexMES 7.0.1,根據OP的問題標題。 –

+1

@AmedeeVanGasse謝謝...... D – GAlexMES

回答