日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java生成pdf表格,調用itext創建的實例

瀏覽:21日期:2022-08-17 14:16:47

昨天花了很長的時間去找pdf生成表格的代碼,發現網上大家寫的代碼太多了,而且又沒有注釋,讓我一個小白是完全看不懂,這就很過分了,所以秉著我們代碼界共享的原則,我要把我昨天的收獲分享給大家,好了廢話不多說,貼代碼了。

1.第一步 導包

<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </dependency>2.第二步看代碼

import com.itextpdf.text.*;import com.itextpdf.text.pdf.*;import java.io.File;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List; public class PDFXXX { public static void main(String[] args) throws Exception, DocumentException { List<String> ponum = new ArrayList<String>(); add(ponum, 26); List<String> line = new ArrayList<String>(); add(line, 26); List<String> part = new ArrayList<String>(); add(part, 26); List<String> description = new ArrayList<String>(); add(description, 26); List<String> origin = new ArrayList<String>(); add(origin, 26); //Create Document Instance Document document = new Document(); //add Chinese font BaseFont bfChinese = BaseFont.createFont('d:pdfsimhei.ttf', BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //Font headfont=new Font(bfChinese,10,Font.BOLD); Font keyfont = new Font(bfChinese, 8, Font.BOLD); Font textfont = new Font(bfChinese, 8, Font.NORMAL); //Create Writer associated with document PdfWriter.getInstance(document, new FileOutputStream(new File('D:POReceiveReport.pdf'))); document.open(); //Seperate Page controller int recordPerPage = 10; int fullPageRequired = ponum.size() / recordPerPage; int remainPage = ponum.size() % recordPerPage > 1 ? 1 : 0; int totalPage = 1; for (int j = 0; j < totalPage; j++) { document.newPage(); String company = '等待'; //record header field PdfPTable t = new PdfPTable(5); float[] widths = {1.5f, 1f, 1f, 1.5f, 1f}; t.setWidths(widths); t.setTotalWidth(100); t.getDefaultCell().setBorder(PdfPCell.NO_BORDER); PdfPCell c1 = new PdfPCell(new Paragraph('PO#', keyfont)); t.addCell(c1); c1 = new PdfPCell(new Paragraph('Line', keyfont)); t.addCell(c1); c1 = new PdfPCell(new Paragraph('Part#', keyfont)); t.addCell(c1); c1 = new PdfPCell(new Paragraph('Description', keyfont)); t.addCell(c1); c1 = new PdfPCell(new Paragraph('Origin', keyfont)); t.addCell(c1); //calculate the real records within a page ,to calculate the last record number of every page int maxRecordInPage = j + 1 == totalPage ? (remainPage == 0 ? recordPerPage : (ponum.size() % recordPerPage)) : recordPerPage; for (int i = j * recordPerPage; i < ((j * recordPerPage) + maxRecordInPage); i++) { PdfPCell c2 = new PdfPCell(new Paragraph(ponum.get(i), textfont)); t.addCell(c2); c2 = new PdfPCell(new Paragraph(line.get(i), textfont)); t.addCell(c2); c2 = new PdfPCell(new Paragraph(part.get(i), textfont)); t.addCell(c2); c2 = new PdfPCell(new Paragraph(description.get(i), textfont)); t.addCell(c2); c2 = new PdfPCell(new Paragraph(origin.get(i), textfont)); t.addCell(c2); } document.add(t); } document.close(); } public static String leftPad(String str, int i) { int addSpaceNo = i - str.length(); String space = ''; for (int k = 0; k < addSpaceNo; k++) { space = ' ' + space; } ; String result = space + str; return result; } public static String printBlank(int tmp) { String space = ''; for (int m = 0; m < tmp; m++) { space = space + ' '; } return space; } public static void add(List<String> list, int num) { for (int i = 0; i < num; i++) { list.add('test老葛-' + i); } } }3.注意事項:

simhei.ttf 這是字體,對中文有效的;然后如果導了com.lowagie包可能在引包的時候會出現問題,所以看我代碼上的import導的什么包就行了。

補充:java生成PDF表格的一次優化

在優化一個pdf的發票打印的時候如果發票的發票明細超過1000行的時候就會變得很慢.需要20分鐘才能把數據加載出來.之后就開始查詢耗時的原因,在打印了每個方法的執行時間之后,發現在打印方法執行的時候sql取數據的時候很快,那么就是itext的轉換PDF的時候導致很慢.

java生成pdf表格,調用itext創建的實例

最后找到原因是因為發票明細行中的行合并導致效率低下,比如一個合同下有1000條明細數據,那么合同名稱這一列就需要合同1000行,這個合并會導致打印效率低下(cell.setColspan(colspan);)方法;

優化思路:

因為每個發票只有一個合同我們可以把整個明細行看成一個整體.(思路如下圖)

java生成pdf表格,調用itext創建的實例

這樣在調一下樣式就可以了

相關的方法:

float[] widths = {110, 110, 330};PdfPTable contractTable = new PdfPTable(widths);//這個表格三列的長度contractTable.setTotalWidth(width);//這個屬性要加上contractTable.setLockedWidth(true);//這個屬性要加上cellDetail.setPadding(0f);cellDetail.setBorderWidth(0f);//去除表格的邊框

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美中文字幕一区二区三区| 亚洲精品一区二区妖精| 欧美91精品| 亚洲精品一区二区在线看| 亚洲国产日韩欧美在线| 香蕉久久99| 性欧美精品高清| 亚洲婷婷丁香| 国产精品一页| 久久久精品区| 久久青草久久| 久久大逼视频| 欧美精品国产| 精品久久国产一区| 麻豆91小视频| 欧洲亚洲一区二区三区| 伊人影院久久| 久久99蜜桃| 99热精品久久| 欧美精品影院| 国产精品99一区二区| 日韩在线观看中文字幕| 日本久久精品| 色综合视频一区二区三区日韩 | 中文av在线全新| 99精品视频精品精品视频| 免费在线看一区| 激情综合婷婷| 欧美资源在线| 樱桃视频成人在线观看| 免费在线观看精品| 亚欧洲精品视频在线观看| 激情国产在线| 日韩av不卡一区二区| japanese国产精品| 国产高清亚洲| 欧美中文高清| 亚洲欧美日韩国产一区二区| 精品欧美视频| 日本视频一区二区| 香蕉成人av| 久久一区精品| 日韩精品一区二区三区中文字幕| 偷拍精品精品一区二区三区| 国产精品porn| 日韩视频一二区| 亚洲一区国产| 99久久久国产精品美女| 精品免费av一区二区三区| 91精品国产经典在线观看| 午夜亚洲精品| 日韩一级网站| 99国产精品久久久久久久| 久久电影tv| 成人在线视频免费看| 日本国产亚洲| 免费日本视频一区| 蜜乳av另类精品一区二区| 婷婷综合亚洲| 亚洲欧美日本视频在线观看| 欧美午夜不卡| 免费久久久久久久久| 欧美日韩国产高清电影| 尹人成人综合网| 一区二区国产在线观看| 久久福利毛片| 日韩1区2区日韩1区2区| 国产欧美三级| 国产精品成人自拍| 国产极品一区| 成人国产精品一区二区免费麻豆| 国产福利亚洲| 日韩av免费大片| 99精品在线免费在线观看| 久久高清国产| 国产精品免费不| 国产精品久久久久蜜臀| 久久久国产亚洲精品| 国产一区导航| 日本强好片久久久久久aaa| 国产精品高清一区二区| 久久久久久美女精品| 日韩一级网站| 国产精久久一区二区| 日韩久久视频| 国产视频一区欧美| 亚洲伊人精品酒店| 精品一区二区三区中文字幕| 日韩精品水蜜桃| 激情国产在线| 免费在线看一区| 中文字幕在线视频网站| 亚洲一区国产| 精品国产第一福利网站| 国产亚洲欧洲| 精品亚洲a∨| 视频一区二区三区在线| 卡一精品卡二卡三网站乱码| 在线午夜精品| 黄色网一区二区| 在线成人直播| 国内一区二区三区| 亚洲精品在线国产| 日韩av首页| 国产精品免费99久久久| 免费中文字幕日韩欧美| 播放一区二区| 精品美女在线视频| 日本欧美在线| 蜜乳av另类精品一区二区| 日韩啪啪电影网| 久久不卡国产精品一区二区| 日韩精品一二三四| 亚洲午夜精品久久久久久app| 麻豆视频一区二区| 蜜臀久久99精品久久久久宅男| 色一区二区三区| 久久只有精品| 国产精品magnet| 国产精品视频一区二区三区| 亚洲精品自拍| 亚洲精品美女91| 美美哒免费高清在线观看视频一区二区| 97在线精品| 樱桃视频成人在线观看| 黑人精品一区| 久久久精品午夜少妇| 久久精品影视| 欧美色图一区| 久久精品卡一| 欧美午夜精彩| 在线日韩欧美| 久久aⅴ国产紧身牛仔裤| 国产视频久久| 奇米狠狠一区二区三区| 国产亚洲人成a在线v网站| 国产亚洲欧美日韩在线观看一区二区| 日韩国产一区二| 欧美成a人片免费观看久久五月天| 国产日韩一区| 日韩一区二区中文| 午夜亚洲福利在线老司机| 综合一区av| 国产精品伊人| 色婷婷精品视频| 亚洲福利专区| 亚洲欧洲一区| 日本a口亚洲| 极品av在线| 日韩中文字幕不卡| 麻豆久久久久久| 欧美 日韩 国产一区二区在线视频| 亚洲精品极品少妇16p| 日韩精品电影一区亚洲| 国产成人1区| 日韩制服丝袜先锋影音| 欧美成人精品午夜一区二区| 国产在线不卡| 国产精品久久久亚洲一区| 精品中国亚洲| 日韩在线一区二区| 国产精品嫩模av在线| 免费视频一区三区| 免费视频一区二区三区在线观看| 在线一区欧美| 国产成人精品一区二区三区免费 | 亚洲人成毛片在线播放女女| 老色鬼精品视频在线观看播放| 亚洲欧美成人综合| 日韩成人a**站| 四虎成人精品一区二区免费网站| 91视频一区| 午夜视频一区二区在线观看| 日韩欧美中文| 国产精品久久久久9999高清| 日韩中文字幕不卡| 偷拍欧美精品| 91精品亚洲| 国产精品不卡| 国产欧美日韩免费观看| 电影天堂国产精品| 欧美好骚综合网| 麻豆高清免费国产一区| 日韩福利在线观看| 亚洲婷婷丁香| 日韩影院免费视频| 亚洲主播在线| 欧美成人日韩| 国内精品伊人| 里番精品3d一二三区| 久久99久久人婷婷精品综合| 日本色综合中文字幕| 日本va欧美va精品发布| 日韩精品视频一区二区三区| 香蕉国产精品| 黄色在线一区| 麻豆成人在线| 日韩精品电影一区亚洲| 欧美视频久久| 麻豆91在线播放|