锁定老帖子 主题:我和iText的第一次亲密接触
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-01
1:把字型编程A4横向 Document document = new Document(PageSize.A4.rotate()); 2:在PDF文件中加入表格 float[] widths = {0.05f,0.29f, 0.05f, 0.05f, 0.14f, 0.03f, 0.04f,0.04f, 0.05f, 0.05f,0.08f,0.08f, 0.05f}; //new 一个13列的table PdfPTable table = new PdfPTable(13); //设置table每一列的宽度,widths里写的是百分比,他们加和需要是1 table.setWidths(widths); //设置表格在页面上的宽度,设成100表示可以表格填满页面,但是要去掉页面margin table.setWidthPercentage(100); //设置表格上端的空白距离,类似css中的margin-top:xxpx;这样在给表格加上标题后,标题就不会跟表格重叠在一起了。 table.setSpacingBefore(3f); 3:向表格里填数据, 例子 for(int i = 0; i<26; i++) { table.table.addCell(i+""); } 这样就会往表格里填上2行数据,这个api比较简单,不用向jxl/poi 那里那样还有明确写出到底要往那个cell填 4:标题和表格组合 document.add(new Paragraph(titleWorkhour, FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(0, 0, 0)))); //由于设置了table.setSpacingBefore(3f);所以table跟标题不会重合。 document.add(table); 5:分页 document.newPage(); 6:合并PDF文件,由于往一个document里加内容只能是顺序往下加,而我的summary页要最后才能算出来,但是summary页又要放在第一页 所以我不得不先把body生成一个pdf文件,然后summary在生成一个文件,然后把两个文件合并成同一个文件。 private void concatenateSummary(String[] args, String finalFile) { try { int pageOffset = 0; ArrayList master = new ArrayList(); int f = 0; String outFile = finalFile; Document document = null; PdfCopy writer = null; while (f < args.length) { // we create a reader for a certain document PdfReader reader = new PdfReader(args[f]); reader.consolidateNamedDestinations(); // we retrieve the total number of pages int n = reader.getNumberOfPages(); List bookmarks = SimpleBookmark.getBookmark(reader); if (bookmarks != null) { if (pageOffset != 0) SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null); master.addAll(bookmarks); } pageOffset += n; if (f == 0) { // step 1: creation of a document-object document = new Document(reader.getPageSizeWithRotation(1)); // step 2: we create a writer that listens to the document writer = new PdfCopy(document, new FileOutputStream(outFile)); // step 3: we open the document document.open(); } // step 4: we add content PdfImportedPage page; for (int i = 0; i < n; ) { ++i; page = writer.getImportedPage(reader, i); writer.addPage(page); } PRAcroForm form = reader.getAcroForm(); if (form != null) writer.copyAcroForm(reader); f++; } if (!master.isEmpty()) writer.setOutlines(master); // step 5: we close the document document.close(); } catch(Exception e) { e.printStackTrace(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-01
收藏了 以后或许用得着.........
嘿嘿.......... |
|
返回顶楼 | |
发表时间:2007-03-01
我对这个也是现看的,只是把使用中发现的东西记录下来,避免以后走弯路
|
|
返回顶楼 | |
发表时间:2007-03-02
这个还是挺好用的,我一直用这来生产pdf格式的报表。
|
|
返回顶楼 | |
发表时间:2007-03-03
中文正常吗?
|
|
返回顶楼 | |
发表时间:2007-03-05
hongliang 写道 中文正常吗?
当然, |
|
返回顶楼 | |
发表时间:2007-03-05
收藏!
|
|
返回顶楼 | |
发表时间:2007-03-05
有读的没,如果文档里有图片是否也可以读出来?
|
|
返回顶楼 | |
发表时间:2007-03-07
xmx111 写道 有读的没,如果文档里有图片是否也可以读出来?
这个到没有试过,一般都是写。 |
|
返回顶楼 | |
发表时间:2007-03-07
xmx111 写道 有读的没,如果文档里有图片是否也可以读出来?
这个到没有试过,一般都是写。 |
|
返回顶楼 | |