[研究]ASP.NET,試用 NReco.PdfGenerator 1.2.1 把 html 轉 pdf
2024-04-30
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
NuGet Gallery | NReco.PdfGenerator 1.2.1
https://www.nuget.org/packages/NReco.PdfGenerator
Convert HTML to PDF in C#/.NET with NReco.PdfGenerator (FREE)
https://www.nrecosite.com/pdf_generator_net.aspx
線上說明
https://www.nrecosite.com/doc/NReco.PdfGenerator/
授權:1. Can I use PdfGenerator in my commercial project for FREE?
NReco.PdfGenerator can be used for FREE in .NET apps that have only one single-server production deployment.
A commercial license is required for:
- Applications with multiple deployments, or one multi-server production deployment
- SaaS apps
官方範例
Convert HTML to PDF in your C# code:
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now); var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(htmlContent); |
Create PDF from HTML file or URL:
htmlToPdf.GeneratePdfFromFile("http://www.nrecosite.com/", null, "export.pdf"); |
********************************************************************************
NuGet 安裝 NReco.PdfGenerator 1.2.1 並沒有相依套件。
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> </form> </body> </html> |
Default.aspx.cs
using System; namespace WebApplication1 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { System.Text.StringBuilder html = new System.Text.StringBuilder(); html.Append("<html>"); html.Append("<head>"); html.Append("<meta charset='utf-8' />"); html.Append("<title>無標題文件</title>"); html.Append(@"<style> body { margin: 0px; padding: 0px; } .Paper { width: 1000px; margin-right: auto; margin-left: auto; } </style>"); html.Append("</head>"); html.Append("<body>"); html.Append("<div class='Paper'>"); // h1 不可有「報名表」,否則產出的 .pdf 索引會變成「報吊表」 //html.Append("<h1 style ='text-align:center'>報名表</h1>"); // 若用 h1、h2、、等,產生的 .pdf 會有書籤定位點,「報名表」在書籤定位點會顯示成「報吊表」,故改用 div html.Append("<div style ='text-align:center; font-size:xx-large'>報名表</div>"); string FName = "test.pdf"; var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(html.ToString()); //Response給用戶端下載 Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=" + FName);//強制下載 Response.ContentType = "application/octet-stream"; Response.BinaryWrite(pdfBytes); } } } |
(完)
相關