0
我们有一个PDF,我们通过iTextSharp 5.5从网页表格填写。由于Web场环境,我们将此PDF保存到网络共享中。在稍后的应用程序中,我们需要向用户提供已填写的pdf以供阅读,以便在继续之前确认文档。itextsharp读密码保护文件到流
的PDF密码保护,以便查看我们解决这个问题有:
PdfReader.unethicalreading = true;
当一个Web服务器或本地主机的发展,如果PDF保存到一个文件夹中的Web服务器上所有这一切工作并从而从本地服务器读取。
但是,当部署到Web场时,我们需要从网络共享位置读取PDF,从而获取文件并将其读取到流中。但是,使用这种技术我们总是会得到“输入密码来打开PDF”。
的PDF显示在一个iFrame下列要求:
// DOES WORK (but only on single server or localhost)
// pdfAgreement.Attributes["src"] = "PdfFolder/myfile.pdf";
// does not work
pdfAgreement.Attributes["src"] = "../ShowFile.aspx?file=myfile.pdf";
守则ShowFile.aspx:
string path = "networkshare" + "myfile.pdf"; // Request.QueryString["file"];
FileInfo file = new FileInfo(path);
if (file.Exists)
{
PdfReader reader = new PdfReader(path);
PdfReader.unethicalreading = true;
MemoryStream ms = new MemoryStream();
PdfStamper pdfStamper = new PdfStamper(reader, ms);
pdfStamper.Writer.CloseStream = false;
pdfStamper.Close();
pdfBytes = ms.ToArray();
reader.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", pdfBytes.Length.ToString());
Response.AddHeader("Content-Disposition", "inline;filename=data.pdf");
Response.BinaryWrite(pdfBytes);
}
有没有一种方法来读取内存流保护文件的密码?无论出于何种原因,这可以在单个Web服务器或本地主机上运行,但如果我们需要从文件共享中读取文件,则无法运行。