ASP.NET Core中快速构建PDF文档的步骤分享第1/2页

  比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间。

  在本文中我们将要使用DinkToPDF来处理我们在.NET Core Web 程序中进行构建PDF文档!就现在我们不多说,直接开始有趣的部分。

前言#

  您可以通过创建PDF文档在我的仓库中,获取源代码,欢迎给个免费的Star...

  现在我们创建一个.NET Core 3.0 项目,至于是mvc、Api、这些我并不在意。创建项目后直接Nuget安装DinkToPDF。随后您需要下载我的代码仓库中的“NativeLibrary”文件夹,在其中,我们将找到两个文件32bit和64bit,因此我们需要为操作系统选择合适的库。我们将从64位文件夹中选择文件。

  最后,我们需要启动该库,并且IOC DinkToPDF。

public void ConfigureServices(IServiceCollection services)
  {
   var context = new CustomAssemblyLoadContext();
   context.LoadUnmanagedLibrary(Path.Combine(Directory.GetCurrentDirectory(), "libwkhtmltox.dll"));

   services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
   services.AddControllers();
  }

建立实体#

在真实情况的项目中,我们可以从数据库中收集数据或从其他API接收数据。但是为了简单起见,我们将从本地存储中收集PDF文档的数据。随后,我们将创建一个HTML模板并将其存储在PDF文档中。

public class Employee
 {
  public string Name { get; set; }
  public string LastName { get; set; }
  public int Age { get; set; }
  public string Gender { get; set; }
 }

再随后,我们要创建一个新的文件夹Services和里面两类文件 DataServices.cs 和 TemplateGenerator.cs 。完整的结构应如下所示:

public class DataServices
 {
  public static List GetAllEmployess() =>
   new List
   {
    new Employee { Name="Hao Zi Zhang", LastName="Turner", Age=35, Gender="Male"},
    new Employee { Name="Yu Chen", LastName="Markus", Age=22, Gender="Female"},
    new Employee { Name="Jian Zhi Chu", LastName="Martins", Age=40, Gender="Male"},
    new Employee { Name="ElderJames", LastName="Packner", Age=30, Gender="Female"},
    new Employee { Name="BlaZui", LastName="Doe", Age=45, Gender="Male"}
   };
 }

其中添加服务中返回了某些数据,用于模拟服务。我们要生成一个HTML模板,因此我们需要修改 TemplateGenerator.cs 文件:

public class TempleGenertor
 {
  public static string GetHTMLString()
  {
   var employees = DataServices.GetAllEmployess();

   var sb = new StringBuilder();
   sb.Append(@"
      
       
       
       
        

This is the generated PDF report!!!

"); foreach (var emp in employees) { sb.AppendFormat(@"", emp.Name, emp.LastName, emp.Age, emp.Gender); } sb.Append(@"
Name LastName Age Gender
{0} {1} {2} {3}
"); return sb.ToString(); } }

如果想要指定css样式,则可以创建某些文件夹,随后在API通过服务器路径来抉择配置。

.header {
 text-align: center;
 color: green;
 padding-bottom: 35px;
}

table {
 width: 80%;
 border-collapse: collapse;
}

td, th {
 border: 1px solid gray;
 padding: 15px;
 font-size: 22px;
 text-align: center;
}

table th {
 background-color: green;
 color: white;
}

  就是这样,我们有用于HTML创建的HTML模板。现在,我们可以继续执行Controller逻辑。

[Route("api/PdfCreator")]
 [ApiController]
 public class PdfCreatorController : ControllerBase
 {
  private IConverter _converter;

  public PdfCreatorController(IConverter converter)
  {
   _converter = converter;
  }

  [HttpGet]
  public IActionResult CreatePDF()
  {
   var globalSettings = new GlobalSettings
   {
    ColorMode = ColorMode.Color,
    Orientation = Orientation.Portrait,
    PaperSize = PaperKind.A4,
    Margins = new MarginSettings { Top = 10 },
    DocumentTitle = "PDF Report"
   };

   var objectSettings = new ObjectSettings
   {
    PagesCount = true,
    HtmlContent = TempleGenertor.GetHTMLString(),
    WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "style.css") },
    HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page 
                        
   
   
   
   
1 2 下一页 阅读全文
  • asp.net
  • core
  • pdf

相关文章

  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第1张图片

    asp.net fileupload控件上传图片并预览图片

    这篇文章主要介绍了asp.net fileupload控件上传图片后并进行预览图片的功能,需要的朋友可以参考下
    2015-11-11
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第2张图片

    asp.net mvc webapi 实用的接口加密方法示例

    本篇文章主要介绍了asp.net mvc webapi 实用的接口加密方法示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第3张图片

    CheckBox控件默认选中,提交时永远获得选中状态的实现代码

    下面小编就为大家带来一篇CheckBox控件默认选中,提交时永远获得选中状态的实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第4张图片

    Asp.net中使用PageDataSource分页实现代码

    这篇文章主要介绍asp.net中使用PageDataSource分页的方法,需要的朋友可以参考下
    2013-04-04
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第5张图片

    Winform OpenFileDialog打开文件对话框

    这篇文章主要为大家详细介绍了Winform OpenFileDialog打开文件对话框 的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第6张图片

    php使用socket编程示例

    这篇文章主要介绍了php使用socket编程的示例,大家参考使用吧
    2014-01-01
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第7张图片

    WCF中使用nettcp协议进行通讯的方法

    这篇文章主要给大家介绍了关于WCF中使用nettcp协议进行通讯的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用WCF具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第8张图片

    已有打开的与此命令相关联的DataReader,必须首先将它关闭。对于此

    今天与大家分享一下 已有打开的与此命令相关联的DataReader,必须首先将它关闭。这个异常的个人理解
    2012-01-01
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第9张图片

    ASP.NET输入文本框自动提示功能

    这篇文章主要介绍了ASP.NET输入文本框自动提示功能的相关资料,当选择某条数据的时候,自动给文本框赋值,减少了人工的输入,需要的朋友可以参考下
    2016-01-01
  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页_第10张图片

    ASP.NET调用WebService服务的方法详解

    这篇文章主要介绍了ASP.NET调用WebService服务的方法,较为详细的分析了WebService服务的功能,创建步骤与使用方法,需要的朋友可以参考下
    2016-05-05

最新评论

你可能感兴趣的:(ASP.NET Core中快速构建PDF文档的步骤分享第1/2页)