91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core中如何構建PDF文檔

發布時間:2021-08-25 09:29:58 來源:億速云 閱讀:144 作者:小新 欄目:開發技術

這篇文章主要介紹ASP.NET Core中如何構建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<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"}
   };
 }

其中添加服務中返回了某些數據,用于模擬服務。我們要生成一個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'><h2>This is the generated PDF report!!!</h2></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樣式,則可以創建某些文件夾,隨后在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 = "Page12下一頁閱讀全文

以上是“ASP.NET Core中如何構建PDF文檔”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定襄县| 手游| 奉节县| 五河县| 郸城县| 禹州市| 江津市| 云梦县| 弥渡县| 西平县| 安泽县| 蓝田县| 舟山市| 正宁县| 广饶县| 浪卡子县| 南雄市| 隆林| 新乡市| 三穗县| 莱阳市| 随州市| 西青区| 宁阳县| 德昌县| 梁河县| 贡嘎县| 克拉玛依市| 阿鲁科尔沁旗| 和平县| 镇坪县| 广元市| 凉山| 英吉沙县| 长子县| 通州市| 时尚| 平利县| 德兴市| 太保市| 黄平县|