如何在视图中嵌入iTextSharp PDF(C# - MVC 5)

时间:2017-09-06 17:56:19

标签: c# asp.net-mvc razor asp.net-mvc-5 itext

问候编码员!

我已就此主题进行了大量研究,无法找到真正描述如何完成此过程的任何资源(或者是否可以完成)。所以,我向大家求助于一些建议!

问题

所以现在,我有一个表格,通过HttpPost将填好的数据发送回控制器。此时,我将表单数据传递给模型函数以创建PDF。现在,如果模型函数成功,我将它返回PDF文件。

        PDFMemStream memstream = new PDFMemStream();
        CreatePDFinfo formdata = new CreatePDFinfo();

        if (ModelState.IsValid)
        {
            memstream = CreatePDF.Populate_PDFcontent(formdata);
            if (memstream.retval.success)
            {
                // if creating pdf is successful, return file
                return File(memstream.mstream, "application/pdf");
            }
        }
        ViewBag.PageTitle = "Cool PDF Project";
        ViewBag.TabTitle = "Really Cool PDF Project";
        return View(formdata);
  • 如果我在视图中使用以下代码,我可以在单独的标签中显示此创建的PDF。这假设当前视图被调用" createPDF"。所以这部分工作得很好,花花公子。

    $('#form').submit(function () {
            if ($('#form').valid())
            {
                window.open('', 'createPDF');
                this.target = 'createPDF';
            }
        });
    
  • 如果我不使用上述代码,点击按钮后,它将保留在当前页面上,并仅使用原生浏览器PDF查看器中的pdf内容重新加载页面。

需要的解决方案

正如我所说的,如果我希望在新标签页或现有标签页中填入PDF,一切都会完美无缺。 HOWEVER ,我需要的是一种在同一页面上以部分视图嵌入现有页面查看PDF的方法。我甚至可以处理嵌入在新视图中的PDF,只要我可以将模型数据传递给该页面其他部分的新视图。

资源&制品

以下是我已经查看并阅读的所有文章和资源(所以请不要发布相同的文章和资源):

using ITextSharp to extract and update links in an existing PDF

Displaying a pdf to webpage using iTextSharp?

http://developers.itextpdf.com/content/itext-7-jump-start-tutorial/sharp/chapter-1-introducing-basic-building-blocks

MVC Application to Display embedded PDF documents

https://www.codeproject.com/Questions/890372/How-Can-I-Display-A-Pdf-From-Byte-Array-In-Mvc

https://www.codeproject.com/Articles/66948/Rendering-PDF-views-in-ASP-MVC-using-iTextSharp

C# ASP.NET MVC Create PDF from view Rotativa or iTextSharp?

Convert PartialView Html to String for ITextSharp HtmlParser

How to open a PDF file in an <iframe>?

How to render an ASP.NET MVC View in PDF format

现在有些文章并不完全相关,但我把它们包括在内以防万一它们可能会有所帮助。

更新

如果其他人遇到类似的问题,我最后做的是先处理非PDF相关的方法,返回一个包含模型数据的新视图,然后对创建/生成的路径进行AJAX调用PDF。希望这是有道理的。哈哈。 :)

有任何建议,提示或建议吗?...

0 个答案:

没有答案