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服務器或本地主機上運行,但如果我們需要從文件共享中讀取文件,則無法運行。