1. 程式人生 > >Java iText使用PDF模板生成PDF文件

Java iText使用PDF模板生成PDF文件

我們系統需要生成一個可以列印的PDF文件,老闆給了我一個Word文件,按照這個Word文件的格式生成PDF文件。

第一步:下載AdobeAcrobat DC,必須使用這個來製作from域。

第二步:使用AdobeAcrobat DC將Word導成PDF文件。

第三步:由於還要加水印的效果,所以還是使用AdobeAcrobat DC來新增水印,非常方便;

    新增水印的方法:使用AdobeAcrobat DC開啟PDF文件,“工具”-》“編輯PDF”-》”水印”-》”新增”

新增水印的操作:

點選“確定”:

第四步:使用AdobeAcrobat DC新增From域;

新增From域方法:使用AdobeAcrobat DC開啟文件,“工具”-》“準備表單”

點選“開始”:

點選“儲存”:

新增“文字域”到我們想要新增內容的位置:

第五步:使用Java程式碼匯出PDF文件;

主要三個類:功能類-PDFTempletTicket

  1. /** 
  2.  *@Title: PDFTempletTicket.java 
  3.  *@Package: org.csun.ns.util 
  4.  *@Description: TODO 
  5.  *@Author: chisj [email protected]
     
  6.  *@Date: 2016年4月27日上午11:29:52 
  7.  *@Version V1.0 
  8.  */
  9. package org.csun.ns.util;  
  10. import java.io.ByteArrayOutputStream;  
  11. import java.io.File;  
  12. import java.io.FileOutputStream;  
  13. import java.util.ArrayList;  
  14. import org.csun.ns.entity.Ticket;  
  15. import com.itextpdf.text.pdf.AcroFields;  
  16. import
     com.itextpdf.text.pdf.BaseFont;  
  17. import com.itextpdf.text.pdf.PdfReader;  
  18. import com.itextpdf.text.pdf.PdfStamper;  
  19. /** 
  20.  *@ClassName: PDFTempletTicket 
  21.  *@Description: TODO 
  22.  *@Author: chisj [email protected] 
  23.  *@Date: 2016年4月27日上午11:29:52 
  24.  */
  25. publicclass PDFTempletTicket {  
  26.          privateString templatePdfPath;  
  27.          privateString ttcPath;  
  28.          privateString targetPdfpath;  
  29.          privateTicket ticket;  
  30.          publicPDFTempletTicket() {  
  31.                    super();  
  32.          }  
  33.          publicPDFTempletTicket(String templatePdfPath, String ttcPath,  
  34.                             StringtargetPdfpath, Ticket ticket) {  
  35.                    this.templatePdfPath= templatePdfPath;  
  36.                    this.ttcPath= ttcPath;  
  37.                    this.targetPdfpath= targetPdfpath;  
  38.                    this.ticket= ticket;  
  39.          }  
  40.          publicvoid templetTicket(File file) throws Exception {  
  41.                    PdfReaderreader = new PdfReader(templatePdfPath);  
  42.                    ByteArrayOutputStreambos = new ByteArrayOutputStream();  
  43.                    PdfStamperps = new PdfStamper(reader, bos);  
  44.                    /*使用中文字型 */
  45.                    BaseFontbf = BaseFont.createFont(PDFTicket.class.getResource("/") +"org/csun/ns/util/simsun.ttc,1",   
  46.                 BaseFont.IDENTITY_H,BaseFont.EMBEDDED);  
  47.        ArrayList<BaseFont> fontList = newArrayList<BaseFont>();   
  48.        fontList.add(bf);   
  49.                    AcroFieldss = ps.getAcroFields();  
  50.                    s.setSubstitutionFonts(fontList);  
  51.                    s.setField("ticketId",ticket.getTicketId());  
  52.                    s.setField("ticketCreateTime",ticket.getTicketCreateTime());  
  53.                    s.setField("ticketCompany",ticket.getTicketCompany());  
  54.                    s.setField("sysName",ticket.getSysName());  
  55.                    s.setField("moneyLittle",ticket.getMoneyLittle());  
  56.                    s.setField("moneyBig",ticket.getMoneyBig());  
  57.                    s.setField("accountCompany",ticket.getAccountCompany());  
  58.                    s.setField("bedNumber",ticket.getBedNumber());  
  59.                    s.setField("username",ticket.getUsername());  
  60.                    s.setField("password",ticket.getPassword());  
  61.                    ps.setFormFlattening(true);  
  62.                    ps.close();  
  63.                    FileOutputStreamfos = new FileOutputStream(file);  
  64.                    fos.write(bos.toByteArray());  
  65.                    fos.close();  
  66.          }  
  67.          /** 
  68.           * @return the templatePdfPath 
  69.           */
  70.          publicString getTemplatePdfPath() {  
  71.                    returntemplatePdfPath;  
  72.          }  
  73.          /** 
  74.           * @param templatePdfPath the templatePdfPathto set 
  75.           */
  76.          publicvoid setTemplatePdfPath(String templatePdfPath) {  
  77.                    this.templatePdfPath= templatePdfPath;  
  78.          }  
  79.          /** 
  80.           * @return the ttcPath 
  81.           */
  82.          publicString getTtcPath() {  
  83.                    returnttcPath;  
  84.          }  
  85.          /** 
  86.           * @param ttcPath the ttcPath to set 
  87.           */
  88.          publicvoid setTtcPath(String ttcPath) {  
  89.                    this.ttcPath= ttcPath;  
  90.          }  
  91.          /** 
  92.           * @return the targetPdfpath 
  93.           */
  94.          publicString getTargetPdfpath() {  
  95.                    returntargetPdfpath;  
  96.          }  
  97.          /** 
  98.           * @param targetPdfpath the targetPdfpath toset 
  99.           */
  100.          publicvoid setTargetPdfpath(String targetPdfpath) {  
  101.                    this.targetPdfpath= targetPdfpath;  
  102.          }  
  103.          /** 
  104.           * @return the ticket 
  105. 相關推薦

    Java iText使用PDF模板生成PDF

    我們系統需要生成一個可以列印的PDF文件,老闆給了我一個Word文件,按照這個Word文件的格式生成PDF文件。 第一步:下載AdobeAcrobat DC,必須使用這個來製作from域。 第二步:使用AdobeAcrobat DC將Word導成PDF文件。 第三步:由於還要加水

    JAVA通過模板生成DOC

    將word文件另存為xml檔案 接下來,上面寫的拼音就起到作用了. 開啟xml檔案.搜尋 要替換的內容. 改為 ${內容} 改完後,把檔案的字尾名直接改成ftl。 程式碼: package com.hentor.apps.bestsign.util; i

    在.net Core 使用PDF模板生成PDF,代替WEB打印控!

    cnblogs bat dex make io流 控件 文本框 找到 public 這幾天找WEB打印控件,要麽收費的,要麽免費的只能在IE裏用! 我只想簡單的打個標簽紙!百度2天,看到一老兄說可以用PDF,然後又開始百度..找到了一篇文章 http://www.jians

    Java Itext 生成PDF

    ftp 設置 通過 tty sna 總計 aof scale AD 利用Java Itext生成PDF文件並導出,實現效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io

    Java根據Word模板生成Word(Freemarker實現)

    public class WordExportUtil { private static Configuration configuration; static { configuration = new Configuration(); configur

    Java實現HTML程式碼生成PDF

    1、IText實現html2pdf,速度快,糾錯能力差,支援中文(要求HTML使用unicode編碼),但中支援一種中文字型,開源。 2、Flying Sauser實現html2pdf,糾錯能力差,支援多種中文字型(部分樣式不能識別),開源。 3、PD4ML實現h

    Java POI 生成PDF,很給力!

    package poi.itext; import java.io.FileOutputStream; import java.io.IOException; import java.awt.Color; import com.lowagie.text.*; impo

    java後臺利用模板生成Word提供前臺下載

    ----------------------------------------------------------------------------------------------------------------------------------------

    java根據ftl模板生成word(列表)

    1、在專案開發中很多時候我們要做的事匯出資料列表,那麼如果使用freemarker的時候,list也是不會少的 <#list datelist ?sort_by("name") as data>//根據name排序 reverse為降序 <#list

    ST MCU生成PDF+壓縮解壓

    需要 ren aud 文件 無奈 .com 導致 壓縮解壓 str 之前碰到過,STM32F407上做文件壓縮,無奈壓縮文件時,哈夫曼編碼需要耗費很大的RAM,導致失敗。後來在論壇壇主的幫助下,了解了LZ77壓縮。 今天看論壇的時候,了解到MCU上,用pdflib庫,可以做

    生成PDF

    open() nbsp rec order name wid ons fwrite epo @Action("report_exportPdf") public String exportPdf() throws Exception{ //查詢出滿足當前

    史上最強php生成pdf,html轉pdf方法

    是不是 下載地址 註意 pdflib min views 開發者 lan 輸入 之前有個客戶需要把一些html頁面生成pdf文件,然後我就找一些用php把html頁面圍成pdf文件的類。方法是可謂是找了很多很多,什麽html2pdf,pdflib,FPDF這些都試過了,但是

    頁面生成PDF。。。。

    filesize .cn str cat 找到 req 百度網 百度網盤 range 終於找到一個能完美生成pdf文件的包了,TCPDF。 官網:www.tecnick.com 真的是找了好久。 我的百度網盤裏有這個,http://pan.baidu.com/s/1nv

    【exe4j】如何利用exe4j把java桌面程序生成exe

    第三方類 arr article 位置 程序 文件 相同 ips uid 前言: 我們都知道Java可以將二進制程序打包成可執行jar文件,雙擊這個jar和雙擊exe效果是一樣一樣的,但感覺還是不同。其實將java程序打包成exe也需要這個可執行jar文件。 準備:

    通過html生成PDF

    window log get name time pub open vat folder /// <summary>/// 獲取html內容,轉成PDF(註冊)/// </summary>public void DownloadPDFByHTML(s

    使用freemarker模板生成Word和HTML

    注:該文件是參考某個大佬的資料,根據自己的需要修改的,具體是哪位大佬的忘了,如果作者自己看到需要加明出處的,請留言你的部落格地址 業務處理: 1,在業務中建立List<Map<String, Object>> data = new ArrayList<Map<Strin

    使用freemarker模板生成word

    專案中最近用到這個東西,做下記錄。 如下圖,先準備好一個(office2003)word文件當做模板。文件中圖片、姓名、性別和生日已經使用佔位符代替,生成過程中將會根據實際情況進行替換。 然後將word文件另存為“Word XML文件” 使用xml編輯器開啟test.xml,

    c#生成pdf iTextSharp方式

    using iTextSharp.text; using iTextSharp.text.pdf; public void CreatePDF(string msg)         {             Document document = new Documen

    學習筆記:從0開始學習大資料-30. solr通過java匯入doc,pdf建立全文檢索

    1. eclipse 新建maven專案solr,pom.xml 加入依賴 2 在專案下新建類updoctest package com.linbin.solr; import java.io.File; import java.io.IOException; import org.

    Java 合併、拆分PDF

    處理PDF文件時,我們可以通過合併的方式,來任意組幾個不同的PDF檔案或者通過拆分將一個檔案分解成多個子檔案,這樣的好處是對文件的儲存、管理很方便。下面將通過Java程式程式碼介紹具體的PDF合併、拆分的方法。 工具 Free Spire.PDF for Java 2.0.0 (免費版) 注: