我已就此主题进行了大量研究,无法找到真正描述如何完成此过程的任何资源(或者是否可以完成)。所以,我向大家求助于一些建议!
所以现在,我有一个表格,通过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?
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。希望这是有道理的。哈哈。 :)
有任何建议,提示或建议吗?...