使用iText向PDF文档添加复选框

使用iText向PDF文档添加复选框,itext,Itext,我需要使用Java的iText库创建一个PDF文档。我还需要包括一些复选框,它们根据某些类变量的值打开/关闭。我已经找到了一些关于交互式表单的示例,但我不需要这种复杂程度:只需要添加到基本文档中的一些复选框,如下所示: public class SamplePDF { public static final String RESULT = "hello.pdf"; public static void main(String[] args) throws D

我需要使用Java的iText库创建一个PDF文档。我还需要包括一些复选框,它们根据某些类变量的值打开/关闭。我已经找到了一些关于交互式表单的示例,但我不需要这种复杂程度:只需要添加到基本文档中的一些复选框,如下所示:

public class SamplePDF {

    public static final String RESULT = "hello.pdf";


    public static void main(String[] args)
        throws DocumentException, IOException {
        new SamplePDF().createPdf(RESULT);
    }


    public void createPdf(String filename)
    throws DocumentException, IOException {

        Document document = new Document();

        PdfWriter.getInstance(document, new FileOutputStream(filename));

        document.open();

        document.add(new Paragraph("Document Heading"));

        //
        // Add Checkboxes here
        // 
        document.close();
    }
}

有什么帮助吗?

以下是使用字体的方法:

BaseFont base = BaseFont.createFont("C:\\Winodws\\fonts\\wingding_0.ttf", BaseFont.IDENTITY_H, false);
Font font = new Font(base, 16f, Font.BOLD);
char checked='\u00FE';
char unchecked='\u00A8';

Document document = new Document();

PdfWriter.getInstance(document, new FileOutputStream(filename));

document.open();
// Here is how to add a checked checkbox
document.add(new Paragraph(String.valueOf(checked),font));
Here is an unchecked checkbox
document.add(new Paragraph(String.valueOf(unchecked),font));

document.close();

如果要添加任何额外字符,只需参考Winds字符集:

以下是使用Winds字体的方法:

BaseFont base = BaseFont.createFont("C:\\Winodws\\fonts\\wingding_0.ttf", BaseFont.IDENTITY_H, false);
Font font = new Font(base, 16f, Font.BOLD);
char checked='\u00FE';
char unchecked='\u00A8';

Document document = new Document();

PdfWriter.getInstance(document, new FileOutputStream(filename));

document.open();
// Here is how to add a checked checkbox
document.add(new Paragraph(String.valueOf(checked),font));
Here is an unchecked checkbox
document.add(new Paragraph(String.valueOf(unchecked),font));

document.close();

如果要添加任何额外字符,只需参考字符集:

您不希望它是交互式的吗?(即,无法选中/取消选中?那么为什么不创建复选框的位图并将图像插入pdf?不,我不需要交互。因此我可以只使用图像,没有复选框组件可以添加到文档中?也许您可以使用WingDings之类的字体。您不希望它是交互的?(即,无法选中/取消选中它?那么为什么不创建一个复选框位图并将图像插入pdf?不,我不需要交互。所以我可以只使用图像,没有复选框组件可以添加到文档中?也许你可以使用WingDings这样的字体。当我使用wingding时,ttf checked是一个“o”,uncheck是一个“o”“x”。是否可能是wingding_0.ttf是另一种字体?当我使用wingding.ttf时,选中的是“o”,未选中的是“x”。是否可能是wingding_0.ttf是另一种字体?