【问题标题】:Download a table generated by linq query to PDF file将 linq 查询生成的表下载到 PDF 文件
【发布时间】: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


【解决方案1】:

表格或多或少是一个 html,因此您可以使用来自 SelectPdf (http://selectpdf.com/community-edition/) 的免费 Html 到 Pdf 转换器。它有一个非常好的文档。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多