資源簡介
C#生成電子發(fā)票PDF文件的樣例(使用了iText7), 以指定的模板,來填充發(fā)票的數據,以正規(guī)發(fā)票的格式生成。

代碼片段和文件信息
using?iText.Barcodes;
using?iText.Kernel.Colors;
using?iText.Kernel.Font;
using?iText.Kernel.Geom;
using?iText.Kernel.Pdf;
using?iText.Layout;
using?iText.Layout.Borders;
using?iText.Layout.Element;
using?iText.Layout.Properties;
using?MakePDFDemo.Model;
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Web;
namespace?MakePDFDemo
{
????///?
????///?用于生成電子發(fā)票的PDF文件
????///?
????public?class?PDfMaker
????{
????????private?static?PdfWriter?qrCodeWriter;
????????PdfWriter?writer?=?null;
????????PdfDocument?pdf?=?null;
????????Document?document?=?null;
????????const?string?titleInfo?=?“增值稅電子普通發(fā)票“;
????????string?city;
????????string?fontPath;
????????PdfFont?STSongLight_Font?CourierNewPSMT_Font?AriaLuni_Font;
????????EInvoiceData?invoice;
????????///?
????????///?發(fā)票PDF文件生成器
????????///?
????????///?省名
????????///?自定義自提的存儲目錄
????????///?需要導入的發(fā)票模板
????????///?存儲的PDF路徑與文件名
????????protected?PDfMaker(string?city?string?fontPath?string?templatePath?string?filePath?EInvoiceData?invoiceData)
????????{
????????????this.city?=?city;
????????????this.fontPath?=?fontPath;
????????????this.writer?=?new?PdfWriter(filePath);
????????????this.pdf?=?new?PdfDocument(writer);
????????????this.document?=?new?Document(pdf);
????????????this.invoice?=?invoiceData;
????????????Init();
????????????PdfDocument?templatePdf?=?new?PdfDocument(new?PdfReader(templatePath));
????????????for?(var?i?=?1;?i?<=?templatePdf.GetNumberOfPages();?i++)
????????????{
????????????????PdfPage?origPage?=?templatePdf.GetPage(i);
????????????????pdf.AddPage(origPage.CopyTo(pdf));
????????????}
????????}
????????///?
????????///?創(chuàng)建發(fā)票PDF文件生成器
????????///?
????????///?發(fā)票歸屬省名稱
????????///?字體目錄
????????///?電子發(fā)票PDF模板
????????///?生成電子發(fā)票的文件名
????????///?
????????public?static?PDfMaker?GetInstance(string?city?string?fontPath?string?templatePath?string?filePath?EInvoiceData?invoiceData)
????????{
????????????return?new?PDfMaker(city?fontPath?templatePath?filePath?invoiceData);
????????}
????????private?void?Init()
????????{
????????????STSongLight_Font?=?PdfFontFactory.CreateFont(“STSong-Light“?“UniGB-UCS2-H“?false);
????????????string?CourierNewPSMT?=?string.Format(@“{0}\{1}“?fontPath?“CourierNewPSMT.ttf“);
????????????CourierNewPSMT_Font?=?PdfFontFactory.CreateFont(CourierNewPSMT);
????????????if?(null?==?qrCodeWriter)
????????????{
????????????????lock?(typeof(PDfMaker))
????????????????{
????????????????????if?(null?==?qrCodeWriter)
????????????????????{
????????????????????????string?tmpQRFile?=?string.Format(@“{0}\qrTempFile“?font
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????11541??2018-08-14?16:12??MakePDFDemo.csproj
?????文件????????4600??2018-08-14?16:03??packages.config
?????文件???????28995??2018-08-14?16:06??PDfMaker.cs
?????文件????????4614??2018-08-14?16:15??Program.cs
?????目錄???????????0??2018-08-14?16:00??fonts\
?????文件???????46392??2018-06-29?11:21??fonts\CourierNewPSMT.ttf
?????目錄???????????0??2018-08-14?16:12??Model\
?????文件?????????773??2018-08-14?16:05??Model\BuyerInfo.cs
?????文件????????9388??2018-08-14?16:12??Model\EInvoiceApplyData.cs
?????文件????????1233??2018-08-14?16:07??Model\EInvoiceData.cs
?????文件????????4095??2018-08-14?16:04??Model\EInvoiceItemApplyData.cs
?????文件????????1719??2018-08-14?16:12??Model\InvoiceResult.cs
?????文件?????????776??2018-08-14?16:05??Model\SellerInfo.cs
?????目錄???????????0??2018-08-14?15:56??Properties\
?????文件????????1338??2018-08-14?15:56??Properties\AssemblyInfo.cs
?????目錄???????????0??2018-08-14?16:00??template\
?????文件???????48629??2018-08-09?11:03??template\Template.pdf
?????文件?????????562??2018-08-14?16:03??App.config
評論
共有 條評論