我的数据库中存储了一个 .pdf 文件,并且我的数据库中存储了一个签名文件 (.png)。我正在尝试使用 iTextSharp 将签名图像添加到 .pdf 文件,并将结果显示到浏览器。
这是我的代码:
byte[] file = Repo.GetDocumentBytes(applicantApplication.ApplicationID, documentID);
byte[] signatureBytes = Repo.GetSignatureBytes((Guid)applicantApplicationID, signatureID);
iTextSharp.text.Image signatureImage = iTextSharp.text.Image.GetInstance(signatureBytes);
iTextSharp.text.Document document = new iTextSharp.text.Document();
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(file, 0, file.Length, true, true))
{
PdfWriter writer = PdfWriter.GetInstance(document, ms);
document.Open();
signatureImage.SetAbsolutePosition(200, 200);
signatureImage.ScaleAbsolute(200, 50);
document.Add(signatureImage);
document.Close();
return File(ms.GetBuffer(), "application/pdf");
}
页面加载,并且有一个带有签名的 .pdf,但找不到原始文档。看起来我正在创建一个新的 .pdf 文件并将图像放入其中,而不是编辑旧的 .pdf 文件。
我已验证原始 .pdf 文档正在加载到“文件”变量中。我还验证了 MemoryStream "ms" 的长度与 byte[] "file" 的长度相同。