如何使用iTextSharp绘制复选框(带X)。 我不希望它成为形象。更像是符号 我试过这个,但它没有工作:
RadioCheckField fCell = new RadioCheckField(writer, new Rectangle(20,20), "NoDeletion", "Yes");
fCell.CheckType = RadioCheckField.TYPE_CROSS;
PdfFormField footerCheck = null;
footerCheck = fCell.CheckField;
writer.AddAnnotation(footerCheck);
谢谢,
答案 0 :(得分:3)
我假设您不需要交互式复选框。您只想使用复选框字符。你需要的第一件事是具有这种角色的字体。当我在Windows上工作时,我可以访问名为WINGDING.TTF的文件。这是一个包含各种符号的字体程序,其中包括一些复选框:
我创建了屏幕截图中显示的PDF:
public static final String DEST = "results/fonts/checkbox_character.pdf";
public static final String FONT = "c:/windows/fonts/WINGDING.TTF";
public static final String TEXT = "o x \u00fd \u00fe";
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font f = new Font(bf, 12);
Paragraph p = new Paragraph(TEXT, f);
document.add(p);
document.close();
}
如您所见,空白复选框对应于字母o
,复选框有三种变体。
答案 1 :(得分:0)
谢谢,但我找到了解决方案。这是:
var checkBox = new Phrase();
checkBox.Add(new Chunk(" ☒ ", new Font(BaseFont.CreateFont(PrintCommonConstants.UnicodeFontNormal, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED), 18)));