【发布时间】:2019-10-28 09:17:17
【问题描述】:
我有一个在 ASP.NET MVC 环境中由 linq 查询形成的表,我需要将其下载为 .pdf 文件。
这是我的第一个问题:我使用 ASP.NET MVC 应用程序,我需要您的帮助来完成将多页中的表格下载到 .pdf 文件的任务。我使用了这个脚本,但它只打印当前页面:
<script>
var Printer = new Object();
Printer.Print = function (HTML) {
var win = window.open("")
window.focus();
win.document.title = "Apercu de l'impression en cours";
win.document.body.innerHTML = HTML;
win.print();
win.close();
}
window.top.Printer = Printer;
这是我的应用程序的代码,控制器:
public ActionResult besoins(string critere = null,int page = 1, string chaine = null)
{
int valeur;
IPagedList temp = null;
var commande_interne = temp;
if (critere == "tous")
{
commande_interne = db.Commande_interne.Include("Livraison_interne").Include("UserProfile")
.Where(u => u.valideeParDirecteur == true && u.isActive == true)
.OrderBy(u => u.traitee)
.ToPagedList(page, 15);
}
else if (critere == "livre")
{
commande_interne = db.Commande_interne.Include("Livraison_interne").Include("UserProfile")
.Where(r => r.id_liv != null && r.valideeParDirecteur == true && r.isActive == true)
.OrderBy(u => u.traitee)
.ToPagedList(page, 15);
}
else if (critere == "nnlivre")
{
commande_interne = db.Commande_interne.Include("Livraison_interne").Include("UserProfile")
.Where(r => r.id_liv == null && r.valideeParDirecteur == true && r.isActive == true)
.OrderBy(u => u.traitee)
.ToPagedList(page, 15);
}
}
查看标记:
@{
ViewBag.Title = "Besoins";
<style>
table.well {
background-color:#fff;
}
</style>
}
@Html.Partial("_CommandesInternes",Model)
@section Scripts {
@Scripts.Render("~/Scripts/formAjax")
@Scripts.Render("~/Scripts/btnCriteres")
@Scripts.Render("~/Scripts/btnToolTip")
}
我需要将表格中的所有数据下载到一个pdf文件中,我使用的脚本只打印当前页面。
【问题讨论】:
-
这是一个很好的项目,但问题可能过于宽泛。您必须引入多个概念来理解从数据生成 pdf 并在 WebApi 中使用附加响应进行响应的任务,以及如何在前端促进这一点。当然,关于如何这样做...
-
作为替代方案,您应该考虑查看 css 打印样式。在代码示例中进行打印的行为会调用打印选项,一个典型的选项(由用户选择)是作为 PDF 文件打印到文件。因此,您只需要在这方面支持用样式表示 DOM 文档。即
width:6.25in;padding:1in;margin:0;等等等等 -
我对生成 pdf 文件的方法的了解实际上相当有限——我只使用过许可框架作为集成。我最熟悉水晶报告,包括rpt和rdf;和 iTextSharp,因为它涉及针对模板 pdf 文件的 pdfForm 填充行为。 FASTNXT 作为 DTD 发布解决方案,在 90 年代成为 Sharepoint 的一部分。我会推荐一个支持 XML 到 PDF 转换的。
标签: c# .net asp.net-mvc linq