当前位置: 首页 > 面试题库 >

如何在PDFBox API 2中获取字段页面?

金正阳
2023-03-14
问题内容

我正在尝试在我的项目中获取字段页面,但我不知道如何获取每个字段和字段的页码。我有此代码:

    String formTemplate = "Template.pdf";
    String filledForm = "filledForm.pdf";
    PDDocument pdfDocument = PDDocument.load(new File(formTemplate));

    PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();

    if (acroForm != null)
    {

        PDField field = acroForm.getField( "name" );
        field.getAcroForm().setNeedAppearances(true);
        field.setValue("my name");
        acroForm.getField( "date" );
        field.setValue("my date");


    }

    pdfDocument.save(filledForm);
    pdfDocument.close();
}

如何获得字段的页码?

谢谢罗恩


问题答案:

这将向您显示该字段出现在什么页面上(从0开始):

PDField field = acroForm.getField( "date" );
for (PDAnnotationWidget widget : field.getWidgets())
{
    PDPage page = widget.getPage();
    if (page == null)
    {
        // incorrect PDF. Plan B: try all pages to check the annotations.
        for (int p = 0; p < doc.getNumberOfPages(); ++p)
        {
            List<PDAnnotation> annotations = doc.getPage(p).getAnnotations();
            for (PDAnnotation ann : annotations)
            {
                if (ann.getCOSObject() == widget.getCOSObject())
                {
                    System.out.println("found at page: " + p);
                    break;
                }
            }
        }
        continue;
    }
    int pageNum = pdfDocument.getPages().indexOf(page);
    System.out.println("found at page: " + pageNum);
}


 类似资料:
  • 我已经安装了一个高级自定义字段插件来上传音频和图像文件。每个帖子包含5个字段 我可以发布文章,但我不知道如何检索wordpress模板页面中的每个字段

  • 快速编辑:正如下面指出的,我应该做BFS,但我需要一个点来停止检索新字段,我还没有时间考虑。谢谢你的帮助! 我试图使用Java反射递归地获取类的字段,本质上创建一个树来显示 这是一个递归解析器,所以我认为递归显示函数是很酷的。不幸的是,它压垮了我。 示例类Foo,具有Class1和Class2字段,每个字段可以有更多不同类的字段: 我的递归方法: println已经用于测试,Foo的一个示例输出(

  • 问题内容: 创建像这样的结构后: 如何创建Foo的新实例并设置并获取名称?我尝试了以下方法: 没有打印任何内容,因为名称为空。那么如何设置结构中的字段? 工作操场 问题答案: 评论(和工作)示例: 测试并进行Go之旅,以了解有关方法和指针以及Go的基础知识的更多信息。

  • 问题内容: 考虑表学生: 使用以下查询,我们得到: 由此我们将得到: 我们如何得到类似的东西 问题答案: 这应该做的工作

  • 我想使用jquery获取foreach循环中的输入字段值。下面是html结构 我试图通过这种方式获得价值 但这样,我只得到第一行的值。如何使用jQuery获取所有行的值?

  • 我是Go语言开发者。我们的团队选择使用协议缓冲区来转换数据。我选择了这个protobuf包:https://github.com/golang/protobuf.但是,这个包没有方法来处理协议缓冲区中的字段。我只在protoc生成的类文件中找到了以下代码: 那么,如何在Go中设置/获取字段?