首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用图像创建XFDF注释

如何使用图像创建XFDF注释
EN

Stack Overflow用户
提问于 2016-10-06 08:23:47
回答 3查看 1.2K关注 0票数 0

我想在Java中生成一个XFDF邮票注释,其中包含一个透明的图像。我很难识别存储图像的格式,以及如何将输入的图像转换为该格式。

到目前为止我知道

  • stamp元素是annots元素的子元素,对应于橡皮图章注释。橡皮图章注释会显示文本或图形,看起来就像在页面上印上橡胶邮票一样。如果存在,则外观子元素(注释字典中的AP键)优先于图标属性(橡皮图章注释字典中的名称键)。内容模型(内容-内容?和内容?&外观?&弹出?)
  • 外观元素是stamp元素的子元素,对应于注释字典中的AP键。该值是一个基64编码字符串。内容模型库64编码字符串。没有属性。

我有一个包含图像的XFDF示例,当我解码图像时,我看到了这样的语法,但遗憾的是,我不知道标记中存在什么样的原始数据。

代码语言:javascript
复制
<DICT KEY="AP">
<STREAM KEY="N">
    <ARRAY KEY="BBox">
        <FIXED VAL="250"/>
        <FIXED VAL="550"/>
        <FIXED VAL="400"/>
        <FIXED VAL="575"/>
</ARRAY>
    <INT KEY="FormType" VAL="1"/>
    <INT KEY="Length" VAL="35"/>
    <DICT KEY="Resources">
        <DICT KEY="XObject">
            <STREAM KEY="Im1">
                <INT KEY="BitsPerComponent" VAL="8"/>
                <NAME KEY="ColorSpace" VAL="DeviceRGB"/>
                <NAME KEY="Filter" VAL="FlateDecode"/>
                <INT KEY="Height" VAL="150"/>
                <INT KEY="Length" VAL="1907"/>
                <STREAM KEY="SMask">
                    <INT KEY="BitsPerComponent" VAL="8"/>
                    <NAME KEY="ColorSpace" VAL="DeviceGray"/>
                    <NAME KEY="Filter" VAL="FlateDecode"/>
                    <INT KEY="Height" VAL="150"/>
                    <INT KEY="Length" VAL="5690"/>
                    <NAME KEY="Subtype" VAL="Image"/>
                    <NAME KEY="Type" VAL="XObject"/>
                    <INT KEY="Width" VAL="300"/>
                    <DATA MODE="RAW" ENCODING="HEX">

在PDFBox的帮助下,我在PDF中创建了一个带有自定义图像的橡皮图章注释,但遗憾的是,PDFBox似乎不支持将这种注释导出到XFDF,它们只支持从表单导出(AcroForm)。我不知道Java中有任何其他工具允许我导出它,除了付费的工具。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-06 15:51:40

它是DCT格式(JPEG)的HEX表示。如果您想要一个透明的图像标记,那么您的XFDF中将有两个这样的东西,即图像本身和掩码。

票数 2
EN

Stack Overflow用户

发布于 2016-10-27 07:02:25

XFDF规范并不解释这些dict标记的用途。我猜他们遗漏了信息的一个关键部分。

这个线程为我节省了时间来弄清楚为什么最终的基64图像没有导入Acrobat。因此,它是XOjbect的XML。

也许杂技PDF规格提到了这一点。

票数 0
EN

Stack Overflow用户

发布于 2020-04-22 16:27:35

添加一个如下所示的集邮元素:

代码语言:javascript
复制
<stamp creationdate="D:20200422160322Z" flags="print" date="D:20200422160322Z" icon="Unknown" page="0" rect="276.675,778.525,318.325,841">
  <imagedata>data:image/png;base64,iVBORw0 . . . FTkSuQmCC</imagedata>
  <apref y="841" x="276.675" gennum="2" objnum="198" />
</stamp>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39891078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档