问题
I am generating a pdf using iTextSharp. I would like to display it on the webpage and let the user save it from the online pdf viewer. dynamicpdf has a drawtoweb() method, but it is not free to use and I cannot find the same functionality using iTextSharp. How can I display the pdf?
string newFile = "Pdf Document.pdf";
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(newFile, FileMode.Create));
doc.AddCreator("Myself");
doc.AddTitle("Sample PDF Document");
doc.Open();
doc.Add(new Paragraph("Hello, World!"));
doc.Close();
回答1:
Is there a reason you can't just display the PDF like any other website does? Just send the generated file to the user as a response stream with the correct meta data. It will open automatically in its default PDF viewer, most likely inside the browser.
As far as I understand the DrawToWeb method of dynamicpdf that's exactly what it is doing.
UPDATE:
Some research brought up a solution like this:
Add an iframe to your web page:
<IFrame runat="server" id="iframepdf">
</IFrame>
and populate it with the PDF file:
iframepdf.Attributes.Add("src", "showpdf.ashx?pdf=" + xyz);
See How <iframe src can read local temp file? for more info.
回答2:
I ended up just buying a license to dynamicpdf. It was much easier to work with than itextsharp.
来源:https://stackoverflow.com/questions/5555274/displaying-a-pdf-to-webpage-using-itextsharp