首页 > 解决方案 > 将 linq 查询生成的表下载到 PDF 文件

问题描述

我有一个在 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 文件中,我使用的脚本只打印当前页面。

标签: c#.netasp.net-mvclinq

解决方案


您可以使用 NuGet 包名称“iTextSharp”(Install-Package iTextSharp -Version 5.5.13.1)进行 Html 到 pdf 的转换。使用它,您可以格式化您的 pdf 并在客户端下载。


推荐阅读