签署从字节数组流式传输的PDF文档

时间:2013-03-11 16:04:44

标签: c# database adobe bytearray outputstream

我从Adobe Acrobat和/或Reader

获取的具体错误

“无法签署该文件  尝试提交此签名时出错。该文件未保存。  必须使用完整保存保存此文件。“

我试图签名的PDF是从字节数组显示到存储在数据库中的二进制数据的IFrame中创建的。

            byte[] stream = (from m in db.pdf_store
                             where m.pdf_id == uid
                             select m.pdf_binary).First().ToArray();
            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "Inline");
            Response.OutputStream.Write(stream, 0, stream.Length);
            Response.Flush();
            Response.End();

此代码可以正常显示PDF以及在Internet Explorer中显示签名字段。我可以单击签名框,使用签名板对文档进行签名,但是当我单击“接受”时,我收到上述错误。

我认为这可能与PDF不是实际文件有关。任何建议或帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

找到问题。我正在使用Itextsharp来创建修改PDF。我发现我必须使用追加模式来保持用户权利。我还发现,为了在创建字节数组时对Itextsharp使用追加模式,必须使用ToArray而不是GetBuffer来读取它。