PDF按模板出力,多个PDF合并

             const string   TEMP_PREXFIX = "Temp_";            
                 
             string _tempfilename01;             
             PdfReader _pdfReader = null;             
             BaseFont _baseFont = null;             
             PdfStamper _pdfStamper = null;             
                 
             string _sourcefilename01 =   ".\\PDF\\faxcre01.pdf";           
             string _targetfilename01 =   ".\\PDF\\faxcre01_生成.pdf";          
                 
             string fileName01 =   Path.GetFileName(_targetfilename01);          
             string path =   Path.GetDirectoryName(_targetfilename01);           
             _tempfilename01 = path +   @"\TEMP\" + TEMP_PREXFIX + fileName01;         
                 
             _baseFont =   BaseFont.CreateFont(@"c:\windows\fonts\msmincho.ttc,0",   BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);    
                 
             BaseFont bfTimes =   BaseFont.CreateFont(@"c:\windows\fonts\msmincho.ttc,0",   BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);    
             iTextSharp.text.Font times = new   Font(bfTimes, 12, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.RED);      
                 
             Font palatino =   FontFactory.GetFont(@"c:\windows\fonts\msmincho.ttc,0",   BaseFont.CP1252, BaseFont.EMBEDDED, 10, Font.ITALIC, BaseColor.GREEN);  
                 
                 
                 
               //--------------------template1--------------------          
             FileStream ReadPdf = new   FileStream(_tempfilename01, FileMode.Create);         
             //pdf reader              
             _pdfReader = new   PdfReader(_sourcefilename01);           
             _pdfStamper = new   PdfStamper(_pdfReader, ReadPdf);           
                 
                            
               _pdfStamper.AcroFields.AddSubstitutionFont(_baseFont);           
                 
             set field: MSゴシック             
               //_pdfStamper.AcroFields.SetFieldProperty("f_print_date",   "textfont", _baseFont, null);        
               //_pdfStamper.AcroFields.SetFieldProperty("f_print_time",   "textfont", _baseFont, null);        
               //_pdfStamper.AcroFields.SetFieldProperty("f_jusyo_kana",   "textfont", _baseFont, null);        
               //_pdfStamper.AcroFields.SetFieldProperty("f_hoken_syurui",   "textfont", _baseFont, null);        
               //_pdfStamper.AcroFields.SetFieldProperty("f_sfx_info1",   "textfont", _baseFont, null);        
               //_pdfStamper.AcroFields.SetFieldProperty("f_sfx_info2",   "textfont", _baseFont, null);        
                 
                 
                 
             //Font font =   FontFactory.GetFont(FontFactory.COURIER, 8f, iTextSharp.text.Font.BOLD);       
               _pdfStamper.AcroFields.SetFieldProperty("f_sfx_info2",   "textfont", font.BaseFont, null);       
               //_pdfStamper.AcroFields.SetFieldProperty("f_sfx_info2",   "textfont", times.ToString(), null);        
                 
             Font font = new Font(_baseFont,   8f, iTextSharp.text.Font.BOLD);          
                 
               FontFactory.Register(@"c:\windows\fonts\msmincho.ttc,0",   "myFont");         
               //FontFactory.GetFont(FontFactory.GetFont("myFont").ToString(),   28,iTextSharp.text.BaseColor.RED);      
                 
             Font myFont =   FontFactory.GetFont("myFont");           
             //Font myFont =   FontFactory.GetFont("myFont", 56, Font.BOLD);          
             BaseFont bf = myFont.BaseFont;             
               _pdfStamper.AcroFields.SetFieldProperty("f_print_date",   "textfont", bf, null);         
               _pdfStamper.AcroFields.SetFieldProperty("f_print_time",   "textfont", bf, null);         
               _pdfStamper.AcroFields.SetFieldProperty("f_jusyo_kana",   "textfont", bf, null);         
               _pdfStamper.AcroFields.SetFieldProperty("f_hoken_syurui",   "textfont", bf, null);         
               _pdfStamper.AcroFields.SetFieldProperty("f_sfx_info1",   "textfont", bf, null);         
               _pdfStamper.AcroFields.SetFieldProperty("f_sfx_info2",   "textfont", _baseFont, null);        
                 
                 
               _pdfStamper.AcroFields.SetField("f_print_date",   "2016/7/07");          
               _pdfStamper.AcroFields.SetField("f_print_time",   "13:21");           
               _pdfStamper.AcroFields.SetField("f_jikoseiribango",   "1332658-9");          
               _pdfStamper.AcroFields.SetField("f_karino",   "040A0001664");          
                           
             //編集不可設定              
             _pdfStamper.FormFlattening =   true;            
             _pdfStamper.Close();              
             _pdfReader.Close();              
             ReadPdf.Close();              
                 
                 
             // 合成pdf文件              
             string _targetfilename =   "faxcre_000.pdf";            
             string _tempfilename = path +   @"\TEMP\" + TEMP_PREXFIX + _targetfilename;         
             PdfReader reader01;              
                            
             Document document = new   Document();            
                 
             PdfSmartCopy copy = new   PdfSmartCopy(document, new FileStream(_tempfilename, FileMode.Create));      
                 
             document.Open();              
                 
             reader01 = new   PdfReader(_tempfilename01);            
                           
             copy.AddDocument(reader01);             
                 
                 
                            
             reader01.Close();              
             if   (File.Exists(_tempfilename01))             
             {               
                   File.Delete(_tempfilename01);             
             }               
                 
                 
                 
 _pdfStamper.Dispose();             
 _pdfReader.Dispose();              
 ReadPdf.Dispose();              
 document.Close();              
                 
                 

转载于:https://www.cnblogs.com/TJessica/p/6101961.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值