最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET Core中快速構(gòu)建PDF文檔的步驟分享第1/2頁

 更新時間:2019年12月15日 10:01:46   作者:張子浩  
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中快速構(gòu)建PDF文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

  比如我們需要ASP.NET Core 中需要通過PDF來進行某些簡單的報表開發(fā),隨著這并不難,但還是會手忙腳亂的去搜索一些資料,那么恭喜您,這篇帖子會幫助到您,我們就不會再去浪費一些寶貴的時間。

  在本文中我們將要使用DinkToPDF來處理我們在.NET Core Web 程序中進行構(gòu)建PDF文檔!就現(xiàn)在我們不多說,直接開始有趣的部分。

前言#

  您可以通過創(chuàng)建PDF文檔在我的倉庫中,獲取源代碼,歡迎給個免費的Star...

  現(xiàn)在我們創(chuàng)建一個.NET Core 3.0 項目,至于是mvc、Api、這些我并不在意。創(chuàng)建項目后直接Nuget安裝DinkToPDF。隨后您需要下載我的代碼倉庫中的“NativeLibrary”文件夾,在其中,我們將找到兩個文件32bit和64bit,因此我們需要為操作系統(tǒng)選擇合適的庫。我們將從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();
  }

建立實體#

在真實情況的項目中,我們可以從數(shù)據(jù)庫中收集數(shù)據(jù)或從其他API接收數(shù)據(jù)。但是為了簡單起見,我們將從本地存儲中收集PDF文檔的數(shù)據(jù)。隨后,我們將創(chuàng)建一個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; }
 }

再隨后,我們要創(chuàng)建一個新的文件夾Services和里面兩類文件 DataServices.cs 和 TemplateGenerator.cs 。完整的結(jié)構(gòu)應(yīng)如下所示:

public class DataServices
 {
  public static List<Employee> GetAllEmployess() =>
   new List<Employee>
   {
    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"}
   };
 }

其中添加服務(wù)中返回了某些數(shù)據(jù),用于模擬服務(wù)。我們要生成一個HTML模板,因此我們需要修改 TemplateGenerator.cs 文件:

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

   var sb = new StringBuilder();
   sb.Append(@"
      <html>
       <head>
       </head>
       <body>
        <div class='header'><h1>This is the generated PDF report!!!</h1></div>
        <table align='center'>
         <tr>
          <th>Name</th>
          <th>LastName</th>
          <th>Age</th>
          <th>Gender</th>
         </tr>");

   foreach (var emp in employees)
   {
    sb.AppendFormat(@"<tr>
         <td>{0}</td>
         <td>{1}</td>
         <td>{2}</td>
         <td>{3}</td>
         </tr>", emp.Name, emp.LastName, emp.Age, emp.Gender);
   }
   sb.Append(@"
        </table>
       </body>
      </html>");

   return sb.ToString();
  }
 }

如果想要指定css樣式,則可以創(chuàng)建某些文件夾,隨后在API通過服務(wù)器路徑來抉擇配置。

.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創(chuàng)建的HTML模板?,F(xiàn)在,我們可以繼續(xù)執(zhí)行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 
                            
                            

                        

相關(guān)文章

  • ASP.NET中MVC從后臺控制器傳遞數(shù)據(jù)到前臺視圖的方式

    ASP.NET中MVC從后臺控制器傳遞數(shù)據(jù)到前臺視圖的方式

    這篇文章主要介紹了ASP.NET中MVC從后臺控制器傳遞數(shù)據(jù)到前臺視圖的方式,以實例形式較為詳細(xì)的分析了asp.net中MVC數(shù)據(jù)傳遞的具體實現(xiàn)方法,需要的朋友可以參考下
    2014-12-12
  • asp.net中GridView編輯,更新,合計用法示例

    asp.net中GridView編輯,更新,合計用法示例

    這篇文章主要介紹了asp.net中GridView編輯,更新,合計用法,結(jié)合實例形式分析了asp.net中GridView常見的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解

    asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解

    這篇文章主要給大家介紹了關(guān)于asp.net core下給網(wǎng)站做安全設(shè)置的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 靜態(tài)gb2312編碼在項目傳值出現(xiàn)中文亂碼現(xiàn)象

    靜態(tài)gb2312編碼在項目傳值出現(xiàn)中文亂碼現(xiàn)象

    參考的美工靜態(tài)頁面是gb2312格式的,當(dāng)此編碼拿到項目中后,utf-8編碼的系統(tǒng),加載頁面時,會出現(xiàn)樣式問題,比如不能正常居中等
    2013-06-06
  • 一個比較通用的分頁控件,完整的設(shè)計時支持和比較流行的分頁模式(提供源碼下載)

    一個比較通用的分頁控件,完整的設(shè)計時支持和比較流行的分頁模式(提供源碼下載)

    本分頁控件還包含簡單屬性,復(fù)雜屬性,自定義視圖狀態(tài),分頁事件,創(chuàng)建控件,render控件,Attribute,設(shè)計時支持等比較齊全的自定義控件的元素,是個不錯學(xué)習(xí)自定義控件開發(fā)的例子
    2010-12-12
  • 頁面爬蟲(獲取其他頁面HTML)加載到自己頁面示例

    頁面爬蟲(獲取其他頁面HTML)加載到自己頁面示例

    利用頁面爬蟲(獲取其他頁面HTML)加載到自己頁面,實現(xiàn)所謂的小偷程序吧,具體實現(xiàn)代碼如下,感興趣的朋友可以參考下哈
    2013-06-06
  • 不可忽視的 .NET 應(yīng)用5大性能問題

    不可忽視的 .NET 應(yīng)用5大性能問題

    ASP.NET 或是 Windows Forms 容器中,使用 ADO 庫與運行在 CLR 交互,而 CLR 運行在操作系統(tǒng)中而該硬件又與其他包含不同技術(shù)堆棧的硬件通過網(wǎng)絡(luò)相連。在你的應(yīng)用與外部環(huán)境之間,。我們還有 API 管理服務(wù)以及多級緩存基礎(chǔ)構(gòu)造數(shù)量龐雜,都可能影響應(yīng)用程序的性能!
    2016-05-05
  • Mvc動態(tài)注冊HttpModule詳解

    Mvc動態(tài)注冊HttpModule詳解

    本文主要介紹了Mvc動態(tài)注冊HttpModule的方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • ASP.NET WebAPI2復(fù)雜請求跨域設(shè)置的方法介紹

    ASP.NET WebAPI2復(fù)雜請求跨域設(shè)置的方法介紹

    這篇文章主要給大家介紹了關(guān)于ASP.NET WebAPI2復(fù)雜請求跨域設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用ASP.NET具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • asp.net Request.ServerVariables[] 讀解

    asp.net Request.ServerVariables[] 讀解

    asp.net Request.ServerVariables[] 讀解,學(xué)習(xí).net的朋友可以參考下,方便獲取服務(wù)器的一些信息。
    2011-08-08

最新評論

唐海县| 兴义市| 丽江市| 桃园市| 福州市| 巩留县| 怀来县| 定陶县| 四会市| 云南省| 元江| 泉州市| 花垣县| 平凉市| 镇坪县| 墨江| 和龙市| 望江县| 乌审旗| 灵寿县| 台南市| 荥经县| 盱眙县| 长春市| 周至县| 石棉县| 大石桥市| 霞浦县| 佛学| 五家渠市| 广饶县| 明溪县| 定安县| 正镶白旗| 略阳县| 崇州市| 辽源市| 郁南县| 米泉市| 吴桥县| 渑池县|