首页 文章

在xfa.fillXfaForm之后,透明图像显示为黑盒子 . 是否支持xfa填充的透明图像?

提问于
浏览
1

这是当前的问题:我有一个由第三方创建的XFA表单,我想按原样使用它 . 我能够通过以下方式生成带填充字段的PDF:

a) Extracting the XML via Acrobat Pro
b) filling the fields within the XML and calling 
            XfaForm xfa = form.getXfa();
            xfa.fillXfaForm(new FileInputStream(XML));

我想要做的只是在第二页上标记图像/水印,其中包含多个字段的表单 . 我正在标记的“DRAFT”png图像具有透明背景,因此如果叠加层有效,图像背景应该使底图显示并且看起来像图像文本位于pdf页面的顶部 .

如果这不是XFA形式,我想要完成的工作将是微不足道的 . 我只想使用iText的pdfStamper并在第二页上标记这个透明的PNG,但由于我现在仅限于使用Adobe LiveCycle Designer,我注意到非XFA文档中的这个曾经微不足道的任务在XFA中并不是那么简单 . 从之前的帖子中,我了解到我无法将技术混合在一起 . 我必须在nonXFA(AcroForms)和XFA(由Adobe LiveCycle Designer构建)之间进行选择 . 基本上,我无法使用fillXFA然后使用压模,所以我必须弄清楚如何使用XFA .

我已经尝试了以下步骤作为静态PDF和动态PDF ....它没有什么区别PDF是什么类型 .

1)在Adobe LiveCycle Designer中,我转到源PDF的第二页并定义了2个图像字段 .

overlay1 - this will span the top portion width of the page which has text 
             content underneath
  overlay2 - this will span the lower portion width of the page which has text 
             content underneath

2)作为测试...我为overlay1选择了一个图像,它具有透明背景,并且它的前景背景为DRAFT在设计时... DRAFT透明度图像工作,并且它正确放置在imageField的内容之上: overlay1 . 我保存了修改过的基于XFA的PDF,在Acrobat Pro中打开它,并导出了XFA XML结构 . 我验证了overlay1将DRAFT图像作为base64编码的字符串 .

<overlay1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:contentType="image/png"
>iVBORw0KGgoAAAANSUhEUgAACWAAAAJYCAYAAADmY91UAAAACXBIWXMAAC4jAAAuIwF4pT92AABH
.......
.......

3)当我使用相同的64字符串并且只在overlay2中输入它的内容并通过fillXFA方法渲染它时...图像是黑盒子而不是 . 我还在Acrobat Pro中打开文件,然后双击imageField区域,选择透明图像,它仍然显示为黑盒子 . 我用没有透明度的图像重复了上一步,它的矩形白色背景覆盖了它下面的所有东西 .

4)我继续制作另一张图片......一张没有任何透明度的图片 . DRAFT没有透明度,它的背景是白色的 . 我用base64格式编码了 . 我能够将它放在overlay1和overlay2图像字段中而没有任何问题 . 新问题是DRAFT图像的白色背景覆盖了它背后的一切 .

为什么初始透明png在Adobe LifeCycle Design(设计时)和fillXFA调用后显示为黑盒子?但是,如果我将图像更改为根本不使用透明度......一切正常吗?

在xfa填充期间,XFA是否不支持图像字段的透明图像?请记住,它在设计期间起作用,当时我告诉Adobe LiveCycle设计师在这个领域使用这个透明的png .

我基本上试图在XFA pdf中的特定页面上创建2个图像水印 .

我目前的备份计划是压平PDF(取消XFA)并使用Acrobat Pro将所有字段放回到表单上并使用标准PDF itext调用和使用压模填充它(这将是繁琐的,因为有一堆田地) . 但是我想知道在看到选项B之前是否有人必须用同样的XFA PDF表格 .

1 回答

  • 2

    所以我用GIF透明图像替换了相同的PNG透明图像 . 在base64中编码的GIF图像有效 . 我可以创建一个具有透明度的新GIF文件,在base64中对其进行编码,并替换前一个并且它仍然有用 . 看起来像是在XFA表单中使用PNG渲染的错误

相关问题