itext 7 Windows에서 유니 코드 (times new roman) 글꼴을 사용하면 PdfTextFormField가 모든 문자를 올바르게 표시합니다. 심지어 űőöüé 등 하지만 옵션 값으로, 콤보 상자 필드를 만들려고 할 때 : 먼저 둘째 셋째, 다음 PDF의 옵션이 될 것입니다 : 국세청 전자 HIR 내가 기본 글꼴을 사용하는 경우 에, 옵션 dispay는 괜찮지 만 분명히 űőöüé 문자는 쓰레기입니다. 샘플 코드 :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());
}
}
}
내 질문에 그 이유가 무엇입니까?
그건 진짜 curiouse입니다. 나는 그것을 스스로 시도했다. 기본 옵션을 "Choose poison"에서 "Second"로 변경하면 "Second"가 올바르게 표시됩니다. 어떤 IText 버전을 사용합니까? – GAlexMES
@GAlexMES 7.0.1, OP의 질문 제목에 따라. –
@AmedeeVanGasse thanks ... : D – GAlexMES