【问题标题】:Inserting an Image into a PDF using XDP使用 XDP 将图像插入 PDF
【发布时间】:2011-10-18 20:00:52
【问题描述】:

问题:

我正在尝试在使用 XDP 文件生成的 PDF 上显示图像。

我目前正在尝试什么:

我有一个从 PDF 导出的 XDP 文件。我在 pdf 上有一个带有“my_image”标签的文本框。这是我用来编码作为“my_image”标签值插入的字符串的代码。

var bytes = System.IO.File.ReadAllBytes(@"C:\image.jpg");
var data = Convert.ToBase64String(bytes);

当我使用 XDP 启动 PDF 时,图像不显示,只显示 Base64 编码字符串值。

有什么想法吗?

【问题讨论】:

    标签: c# pdf xdp-pdf


    【解决方案1】:

    我在 LiveCycle Designer 中制作了一个简单的 PDF,其中包含一个名为 ImageField1Image Field。我使用与您几乎相同的代码来创建 base64 编码图像,只是我包含了从技术上讲不需要的换行:

    var testImage = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Untitled.png");
    var bytes = System.IO.File.ReadAllBytes(testImage);
    var data = Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks);
    

    这就是我的 XDP 文件,它适用于我的简单 PDF。我知道这不是一个完整的答案,但希望您可以将适合我的内容与您的代码进行比较。

    <?xml version="1.0" encoding="UTF-8"?>
    <?xfa generator="XFA2_4" APIVersion="3.0.11111.0"?>
    <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
    <xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"
    ><xfa:data
    ><topmostSubform
    ><ImageField1 xfa:contentType="image/png" href=""
    >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</ImageField1
    ></topmostSubform
    ></xfa:data
    ></xfa:datasets
    >
    <pdf href="Untitled1_distributed.pdf" xmlns="http://ns.adobe.com/xdp/pdf/"
    /></xdp:xdp>
    

    【讨论】:

    • 是否需要 LiveCycle Designer 才能添加 ImageField?这似乎是问题所在,我只是使用普通字段。
    • 一开始我对 XDP 不太熟悉,但使用 LiveCycle 是我真正可以创建 Acrobat 接受 XDP 作为导入源的 PDF 的唯一方法。
    • 使用 LiveCycle 我可以成功地将 ImageField 添加到现有 PDF 并使用要显示的字节填充标签。但是,我仍然没有弄清楚如何处理常规表单。
    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多