PDF組件練習 iText

來源:互聯網
上載者:User

一、用pdf組件iText輸出文本

/** * 用iText輸出文本(包括中文) * @author Administrator * */public class PDFTest {public static void main(String[] args) {Document document=new Document(PageSize.A4);//產生一個文檔  參數為大小 可無try {//輸出d:/itext.pdf檔案PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("d:/itext.pdf"));//開啟文檔document.open();//在pdf文檔中寫入文字 預設只支援英文document.add(new Paragraph("hello itext"));//添加中文,//1、直接引用系統路徑中的字型  就是直接找到系統中字型的位置 進行引用//BaseFont bfChinese=BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);//2、建立中文字型,iTextAsian包就是對系統字型的封裝 //用baseFont建立一個字型  第一個參數為  字型名字(asian包中 cmaps下的屬性檔案名稱) 第二個參數為  編碼格式(屬性檔案名稱下所對應的的編碼格式)//第三個參數為 輸出中文的三種字型選擇方式/** * 1、使用iTextAsian.jar中的字型    BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);2、使用Windows系統字型(TrueType)        BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    3、使用資源字型(ClassPath)    BaseFont.createFont("/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    */BaseFont bfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);Font fontChinese=new Font(bfChinese,12,Font.NORMAL);//添加中文段落文字document.add(new Paragraph("第一個pdf例子 蕤茂盛",fontChinese));//添加文檔標題document.addTitle("iText練習");//添加文檔作者document.addAuthor("朱國志");//。。。document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}


二、用iText輸出表格

public class MyPdfTable {public static void main(String[] args) {Document document=new Document();//建立一個文檔try {PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("d://itextTable.pdf"));//建立一個3行3列的表PdfPTable table=new PdfPTable(3);//表格的列數PdfPCell cell=new PdfPCell(new Paragraph("header with colspan3"));//建立了一個單元格cell.setColspan(3);//合并單元格table.addCell(cell);//將建立好的cell單元格添加到table中table.addCell("1.1");//添加一個單元格 內容為 "1.1"table.addCell("2.1");table.addCell("3.1");table.addCell("1.2");table.addCell("2.2");table.addCell("3.2");table.addCell("1.3");table.addCell("2.3");table.addCell("3.3");//開啟文檔document.open();//將表格添加到文檔中document.add(table);//關閉文檔document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}
三、iText輸出映像並設定文件屬性

/** * 用iText輸出映像並設定文件屬性 * @author Administrator * */public class MyPdfImage {public static void main(String[] args) {//建立一個A4大小的文檔  預設為印表機紙張大小A4Document document = new Document(PageSize.A4);try {//建立一個pdf輸出資料流PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("d:\\itextImage.pdf"));//設定文檔作者document.addAuthor("張國強");//設定文檔標題document.addTitle("我的itext輸出的pdf");//設定主題document.addSubject("Image Pdf");//設定關鍵字document.addKeywords("itext");//開啟文檔document.open();//在文檔中寫入文字document.add(new Paragraph("hello iText pdf"));//建立圖片對象 ,參數為圖片的檔案名稱Image bmp=Image.getInstance("d:\\image1.jpg");//圖片的規模百分比  即圖片相對於文檔的大小百分比bmp.scalePercent(100f);////將圖片添加到文檔中document.add(bmp);//關閉文檔document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}

四、用servlet輸出pdf

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//建立文檔對象,a4大小Document document=new Document(PageSize.A4);//建立一個位元組數組輸出資料流ByteArrayOutputStream stream=new ByteArrayOutputStream();try {//建立一個pdf輸出資料流PdfWriter writer=PdfWriter.getInstance(document, stream);//開啟文檔document.open();//向pdf中寫入文字document.add(new Paragraph("Hello world , Hello iText!"));//關閉文檔document.close();} catch (Exception e) {e.printStackTrace();}//設定響應文件類型 為pdfresponse.setContentType("application/pdf");//設定響應資料大小response.setContentLength(stream.size());//為輸出資料流的大小//獲得響應資料ServletOutputStream out=response.getOutputStream();//得到response中的輸出資料流//將pdf資料流寫入響應資料中stream.writeTo(out);out.flush();out.close();}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.