• 大小: 78KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-05
  • 语言: C#
  • 标签: 电子发票  PDF  iText7  

资源简介

C#生成电子发票PDF文件的样例(使用了iText7), 以指定的模板,来填充发票的数据,以正规发票的格式生成。

资源截图

代码片段和文件信息

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
{
    /// 
    /// 用于生成电子发票的PDF文件
    /// 

    public class PDfMaker
    {
        private static PdfWriter qrCodeWriter;

        PdfWriter writer = null;
        PdfDocument pdf = null;
        Document document = null;

        const string titleInfo = “增值税电子普通发票“;

        string city;
        string fontPath;

        PdfFont STSongLight_Font CourierNewPSMT_Font AriaLuni_Font;

        EInvoiceData invoice;

        /// 
        /// 发票PDF文件生成器
        /// 

        /// 省名
        /// 自定义自提的存储目录
        /// 需要导入的发票模板
        /// 存储的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));
            }

        }

        /// 
        /// 创建发票PDF文件生成器
        /// 

        /// 发票归属省名称
        /// 字体目录
        /// 电子发票PDF模板
        /// 生成电子发票的文件名
        /// 
        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

评论

共有 条评论