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

将图像添加到iText中的acrofield吗?

程俊健
2023-03-14
问题内容

我正在尝试使用acrofields填充PDF,我能够完美地添加字符串数据,但是在向acrofields添加图像时遇到了问题。这是我添加字符串数据的代码。

    File f = new File("F:/Test/Agreement.pdf");
    InputStream sourceTemplatePDFUrlStream = new BufferedInputStream(new FileInputStream(f));
    File destinationFile = new File("F:/Test/ag1.pdf");

    PdfReader reader = new PdfReader(sourceTemplatePDFUrlStream);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
            destinationFile));

    AcroFields form = stamper.getAcroFields();
    Image img = Image.getInstance("E:/signature/signature.png");
    Set fields = form.getFields().keySet();

    Hashtable val = new Hashtable();
    val.put("name", "xxx" );
    val.put("city_street_zip", "xxx"+"                    "+"xxx"+"                "+"xxx");
    val.put("chck_1", "Yes" );
    val.put("chck_2", "No");
    val.put("chck_3", "Yes" );
    val.put("street_address", "xxx" );
    val.put("account_num", "1234");



    Enumeration enumeration = val.keys();

    // iterate through Hashtable val keys Enumeration
    while (enumeration.hasMoreElements()) {
        String nextElement = (String) enumeration.nextElement();
        String nextElementValue = (String) val.get(nextElement);
        //System.out.println(nextElement + ":=================fillData===================:" + nextElementValue);
        form.setField(nextElement, nextElementValue);
    }

    //Form flattening makes the form non-editable and saveable with the 
    //form val filled in
    stamper.setFormFlattening(true);

    stamper.close();

问题答案:

实现此目的的“官方”方法是,将Button字段用作图像的占位符,并按照我的书中所述替换按钮的“
icon” :

PushbuttonField ad = form.getNewPushbuttonFromField(imageFieldName);
ad.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
ad.setProportionalIcon(true);
ad.setImage(Image.getInstance("E:/signature/signature.png"));
form.replacePushbuttonField("advertisement", ad.getField());

有关完整的代码示例,请参见ReplaceIcon.java。

免责声明:我是iText的原始开发人员,也是“ iText in Action”书籍的作者。



 类似资料:
  • 我正在使用iText生成Pdf。但当我试图在pdf中添加图像时, 我mage.get实例(新的URL(timetableResource.getImageUrl()));document.add(学校标志); 但我得到的错误是 HTTP状态500-服务器为URL返回了HTTP响应代码400:http://139.59.72.150:8080/sms/attachments/23/42/school

  • 问题内容: 有没有一种方法(或编辑器)可以让我从源文件(例如* .java)中链接图像/文件/ http链接,有点像富文本文档? 这样,在阅读代码时,我可以快速查看附加的图像(增强注释),而不用打开浏览器等。 问题答案: Javadocs是HTML,因此您可以在其中嵌入图片: Eclipse会很高兴在javadoc视图中或将鼠标悬停在注释上时向您显示图像。其他IDE可能会或可能不会这样做。 显然,

  • 我不熟悉Java和OOP,一直在将图像添加到tableview列。代码似乎工作,我可以看到学生的名字正确,但图像没有显示在列中。我遇到了这个错误,无法理解如何使其工作: 学生模型: 和参与者场景,我有桌面视图: 如果可能有帮助,还可以添加讲座模型: 感谢您的帮助,谢谢!

  • 问题内容: 此处已触及该主题,但未提供有关如何创建3D图并在平面中以指定高度插入图像的指示。 因此,要提出一个简单且可复制的案例,假设我使用以下代码创建了一个3D图: 在视觉上,我们有: 在级别上,这里是避免重叠的视觉偏移, 我想插入一张图像, 表示曲线显示特定值的元素。 怎么做? 在此示例中,我并不关心元素与其值之间的完美匹配,因此请随时上传您喜欢的任何图像。另外,如果对匹配不满意,有没有办法让

  • 这里介绍了一种在Github中将图像添加到标记文件中的方法。但是,我想在Gitlab中的文件中添加图像(Github和Gitlab都支持文件,因此解决方案对两者应该是相同的)。我试过: Markdown的格式也不起作用: 这也不起作用。 正确的做法是什么?

  • 问题内容: 最近8个小时我一直在阅读文档,但没有发现任何可以帮助我的东西。大概是,但是没有代码在工作,因为它一直说“找不到图像URL”并引发异常。但是我还有其他项目,从来没有这个问题。 因此,有一个类包含这样的月份: 到目前为止,一切都很好。我什至可以在控制台中对其进行测试,并且效果很好,并且可以按值排序。现在,当我尝试从资源中添加图像时,出现了我之前提到的问题:找不到URL。但是,我只能使用图像