0

内部に透明な画像を持つ XFDF スタンプ注釈を Java で生成したいと思います。画像が保存されている形式と、入力画像をその形式に変換する方法を認識するのに深刻な問題があります。

これまでのところ、私は知っています

  • stamp 要素は annots 要素の子であり、Rubber Stamp 注釈に対応します。ラバー スタンプ注釈は、ページ上でラバー スタンプが押されたかのように見えるように意図されたテキストまたはグラフィックを表示します。存在する場合は、appearance 子要素 (注釈辞書の AP キー) が icon 属性 (ゴム印注釈辞書の Name キー) よりも優先されます。コンテンツモデル ( contents-richtext? & contents? & 外観? & popup? )
  • 外観要素はスタンプ要素の子であり、注釈辞書の AP キーに対応します。値は Base 64 でエンコードされた文字列です。コンテンツ モデル Base 64 でエンコードされた文字列。属性 なし。

画像を含む XFDF の例があります。画像をデコードすると、このような構文が表示されますが、残念ながら<DATA MODE="RAW" ENCODING="HEX"にどのような生データが存在するのかわかりません>タグ。

<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の他のツールを知りません。

4

3 に答える 3