具有双字节字符的按钮字段
pushbuttonfield with double byte character
在 Google 和 Whosebug 上四处搜索,但没有看到任何地方出现这个问题。我需要一个带有双字节字符的按钮字段作为文本。有人知道这是否可能吗?
目前,如果我将按钮文本设置为任何双字节文本,文本将不会显示。如果它只是在 PDF 的正文中,它会显示得很好。
编辑#1:双字节字符集 (DBCS),如日语、俄语、荷兰语等
编辑#2:
PushbuttonField myButton = new PushbuttonField(writer, rect, "myJapaneseButton");
myButton.setText("japanese text here");
请查看 CreateJapaneseButton 示例。它创建一个带有按钮的 PDF,如下所示:
您的代码片段很短,但您可能拥有所需的所有代码,除了设置字体的行:
public static final String JAPANESE = "\u3042\u304d\u3089";
public static final String FONT = "resources/fonts/FreeSans.ttf";
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
PushbuttonField button = new PushbuttonField(writer, new Rectangle(36, 780, 144, 806), "japanese");
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
button.setFont(bf);
button.setText(JAPANESE);
writer.addAnnotation(button.getField());
document.close();
}
如果不设置字体,则使用默认字体。默认字体是标准 Type 1 字体 Helvetica。这个字体不知道怎么写日文。我使用了字体 freesans.ttf
。如果您没有该字体,可以尝试 arialuni.ttf
或任何其他支持日语的字体。
在 Google 和 Whosebug 上四处搜索,但没有看到任何地方出现这个问题。我需要一个带有双字节字符的按钮字段作为文本。有人知道这是否可能吗?
目前,如果我将按钮文本设置为任何双字节文本,文本将不会显示。如果它只是在 PDF 的正文中,它会显示得很好。
编辑#1:双字节字符集 (DBCS),如日语、俄语、荷兰语等
编辑#2:
PushbuttonField myButton = new PushbuttonField(writer, rect, "myJapaneseButton");
myButton.setText("japanese text here");
请查看 CreateJapaneseButton 示例。它创建一个带有按钮的 PDF,如下所示:
您的代码片段很短,但您可能拥有所需的所有代码,除了设置字体的行:
public static final String JAPANESE = "\u3042\u304d\u3089";
public static final String FONT = "resources/fonts/FreeSans.ttf";
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
PushbuttonField button = new PushbuttonField(writer, new Rectangle(36, 780, 144, 806), "japanese");
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
button.setFont(bf);
button.setText(JAPANESE);
writer.addAnnotation(button.getField());
document.close();
}
如果不设置字体,则使用默认字体。默认字体是标准 Type 1 字体 Helvetica。这个字体不知道怎么写日文。我使用了字体 freesans.ttf
。如果您没有该字体,可以尝试 arialuni.ttf
或任何其他支持日语的字体。