- 浏览: 3465212 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
cning_cn:
守护线程的方式是在 线程对象创建 之前 用线程对象的setDa ...
Thread.setDaemon设置说明 -
qq250782929:
[b][/b]
推荐两款富文本编辑器:NicEdit和Kindeditor -
vickypig:
js循环判断有错误。第一次批量加了几个,后面在单独加几个,有可 ...
新鲜出炉:基于HTML5的jquery文件上传插件(多文件选择、带进度条、完整可用) -
黑山老鹞:
...
如何用Java操作MongoDB? -
山川尽美:
FileChannel inChannel = new Fil ...
JAVA功能代码《12》----使用NIO快速复制文件
iText入门(2012.07.10)
该文转载于博友(http://lichunhui.iteye.com/blog/1550584)
iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
http://itextpdf.com/
版本:itextpdf-5.2.1.jar
1、生成一个PDF
- //Step1—CreateaDocument.
- Documentdocument=newDocument();
- //Step2—GetaPdfWriterinstance.
- PdfWriter.getInstance(document,newFileOutputStream(FILE_DIR+"createSamplePDF.pdf"));
- //Step3—OpentheDocument.
- document.open();
- //Step4—Addcontent.
- document.add(newParagraph("HelloWorld"));
- //Step5—ClosetheDocument.
- document.close();
2、页面大小,页面背景色,页边空白,Title,Author,Subject,Keywords
- //页面大小
- Rectanglerect=newRectangle(PageSize.B5.rotate());
- //页面背景色
- rect.setBackgroundColor(BaseColor.ORANGE);
- Documentdoc=newDocument(rect);
- PdfWriterwriter=PdfWriter.getInstance(doc,out);
- //PDF版本(默认1.4)
- writer.setPdfVersion(PdfWriter.PDF_VERSION_1_2);
- //文档属性
- doc.addTitle("Title@sample");
- doc.addAuthor("Author@rensanning");
- doc.addSubject("Subject@iTextsample");
- doc.addKeywords("Keywords@iText");
- doc.addCreator("Creator@iText");
- //页边空白
- doc.setMargins(10,20,30,40);
- doc.open();
- doc.add(newParagraph("HelloWorld"));
3、设置密码
- PdfWriterwriter=PdfWriter.getInstance(doc,out);
- //设置密码为:"World"
- writer.setEncryption("Hello".getBytes(),"World".getBytes(),
- PdfWriter.ALLOW_SCREENREADERS,
- PdfWriter.STANDARD_ENCRYPTION_128);
- doc.open();
- doc.add(newParagraph("HelloWorld"));
4、添加Page
- document.open();
- document.add(newParagraph("Firstpage"));
- document.add(newParagraph(Document.getVersion()));
- document.newPage();
- writer.setPageEmpty(false);
- document.newPage();
- document.add(newParagraph("Newpage"));
5、添加水印(背景图)
- //图片水印
- PdfReaderreader=newPdfReader(FILE_DIR+"setWatermark.pdf");
- PdfStamperstamp=newPdfStamper(reader,newFileOutputStream(FILE_DIR
- +"setWatermark2.pdf"));
- Imageimg=Image.getInstance("resource/watermark.jpg");
- img.setAbsolutePosition(200,400);
- PdfContentByteunder=stamp.getUnderContent(1);
- under.addImage(img);
- //文字水印
- PdfContentByteover=stamp.getOverContent(2);
- over.beginText();
- BaseFontbf=BaseFont.createFont(BaseFont.HELVETICA,BaseFont.WINANSI,
- BaseFont.EMBEDDED);
- over.setFontAndSize(bf,18);
- over.setTextMatrix(30,30);
- over.showTextAligned(Element.ALIGN_LEFT,"DUPLICATE",230,430,45);
- over.endText();
- //背景图
- Imageimg2=Image.getInstance("resource/test.jpg");
- img2.setAbsolutePosition(0,0);
- PdfContentByteunder2=stamp.getUnderContent(3);
- under2.addImage(img2);
- stamp.close();
- reader.close();
6、插入Chunk, Phrase, Paragraph, List
- //Chunk对象:aString,aFont,andsomeattributes
- document.add(newChunk("China"));
- document.add(newChunk(""));
- Fontfont=newFont(Font.FontFamily.HELVETICA,6,Font.BOLD,BaseColor.WHITE);
- Chunkid=newChunk("chinese",font);
- id.setBackground(BaseColor.BLACK,1f,0.5f,1f,1.5f);
- id.setTextRise(6);
- document.add(id);
- document.add(Chunk.NEWLINE);
- document.add(newChunk("Japan"));
- document.add(newChunk(""));
- Fontfont2=newFont(Font.FontFamily.HELVETICA,6,Font.BOLD,BaseColor.WHITE);
- Chunkid2=newChunk("japanese",font2);
- id2.setBackground(BaseColor.BLACK,1f,0.5f,1f,1.5f);
- id2.setTextRise(6);
- id2.setUnderline(0.2f,-2f);
- document.add(id2);
- document.add(Chunk.NEWLINE);
- //Phrase对象:aListofChunkswithleading
- document.newPage();
- document.add(newPhrase("Phrasepage"));
- Phrasedirector=newPhrase();
- Chunkname=newChunk("China");
- name.setUnderline(0.2f,-2f);
- director.add(name);
- director.add(newChunk(","));
- director.add(newChunk(""));
- director.add(newChunk("chinese"));
- director.setLeading(24);
- document.add(director);
- Phrasedirector2=newPhrase();
- Chunkname2=newChunk("Japan");
- name2.setUnderline(0.2f,-2f);
- director2.add(name2);
- director2.add(newChunk(","));
- director2.add(newChunk(""));
- director2.add(newChunk("japanese"));
- director2.setLeading(24);
- document.add(director2);
- //Paragraph对象:aPhrasewithextrapropertiesandanewline
- document.newPage();
- document.add(newParagraph("Paragraphpage"));
- Paragraphinfo=newParagraph();
- info.add(newChunk("China"));
- info.add(newChunk("chinese"));
- info.add(Chunk.NEWLINE);
- info.add(newPhrase("Japan"));
- info.add(newPhrase("japanese"));
- document.add(info);
- //List对象:asequenceofParagraphscalledListItem
- document.newPage();
- Listlist=newList(List.ORDERED);
- for(inti=0;i<10;i++){
- ListItemitem=newListItem(String.format("%s:%dmovies",
- "country"+(i+1),(i+1)*100),newFont(
- Font.FontFamily.HELVETICA,6,Font.BOLD,BaseColor.WHITE));
- Listmovielist=newList(List.ORDERED,List.ALPHABETICAL);
- movielist.setLowercase(List.LOWERCASE);
- for(intj=0;j<5;j++){
- ListItemmovieitem=newListItem("Title"+(j+1));
- Listdirectorlist=newList(List.UNORDERED);
- for(intk=0;k<3;k++){
- directorlist.add(String.format("%s,%s","Name1"+(k+1),
- "Name2"+(k+1)));
- }
- movieitem.add(directorlist);
- movielist.add(movieitem);
- }
- item.add(movielist);
- list.add(item);
- }
- document.add(list);
7、插入Anchor, Image, Chapter, Section
- //Anchor对象:internalandexternallinks
- Paragraphcountry=newParagraph();
- Anchordest=newAnchor("china",newFont(Font.FontFamily.HELVETICA,14,Font.BOLD,BaseColor.BLUE));
- dest.setName("CN");
- dest.setReference("http://www.china.com");//external
- country.add(dest);
- country.add(String.format(":%dsites",10000));
- document.add(country);
- document.newPage();
- AnchortoUS=newAnchor("Gotofirstpage.",newFont(Font.FontFamily.HELVETICA,14,Font.BOLD,BaseColor.BLUE));
- toUS.setReference("#CN");//internal
- document.add(toUS);
- //Image对象
- document.newPage();
- Imageimg=Image.getInstance("resource/test.jpg");
- img.setAlignment(Image.LEFT|Image.TEXTWRAP);
- img.setBorder(Image.BOX);
- img.setBorderWidth(10);
- img.setBorderColor(BaseColor.WHITE);
- img.scaleToFit(1000,72);//大小
- img.setRotationDegrees(-30);//旋转
- document.add(img);
- //Chapter,Section对象(目录)
- document.newPage();
- Paragraphtitle=newParagraph("Title");
- Chapterchapter=newChapter(title,1);
- title=newParagraph("SectionA");
- Sectionsection=chapter.addSection(title);
- section.setBookmarkTitle("bmk");
- section.setIndentation(30);
- section.setBookmarkOpen(false);
- section.setNumberStyle(
- Section.NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT);
- Sectionsubsection=section.addSection(newParagraph("SubSectionA"));
- subsection.setIndentationLeft(20);
- subsection.setNumberDepth(1);
- document.add(chapter);
8、画图
- //左右箭头
- document.add(newVerticalPositionMark(){
- publicvoiddraw(PdfContentBytecanvas,floatllx,floatlly,
- floaturx,floatury,floaty){
- canvas.beginText();
- BaseFontbf=null;
- try{
- bf=BaseFont.createFont(BaseFont.ZAPFDINGBATS,"",BaseFont.EMBEDDED);
- }catch(Exceptione){
- e.printStackTrace();
- }
- canvas.setFontAndSize(bf,12);
- //LEFT
- canvas.showTextAligned(Element.ALIGN_CENTER,String.valueOf((char)220),llx-10,y,0);
- //RIGHT
- canvas.showTextAligned(Element.ALIGN_CENTER,String.valueOf((char)220),urx+10,y+8,180);
- canvas.endText();
- }
- });
- //直线
- Paragraphp1=newParagraph("LEFT");
- p1.add(newChunk(newLineSeparator()));
- p1.add("R");
- document.add(p1);
- //点线
- Paragraphp2=newParagraph("LEFT");
- p2.add(newChunk(newDottedLineSeparator()));
- p2.add("R");
- document.add(p2);
- //下滑线
- LineSeparatorUNDERLINE=newLineSeparator(1,100,null,Element.ALIGN_CENTER,-2);
- Paragraphp3=newParagraph("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN");
- p3.add(UNDERLINE);
- document.add(p3);
9、设置段落
- Paragraphp=newParagraph("Inthepreviousexample,youaddedaheaderandfooterwiththeshowTextAligned()method.Thisexampledemonstratesthatit’ssometimesmoreinterestingtousePdfPTableandwriteSelectedRows().Youcandefineabottomborderforeachcellsothattheheaderisunderlined.Thisisthemostelegantwaytoaddheadersandfooters,becausethetablemechanismallowsyoutopositionandalignlines,images,andtext.");
- //默认
- p.setAlignment(Element.ALIGN_JUSTIFIED);
- document.add(p);
- document.newPage();
- p.setAlignment(Element.ALIGN_JUSTIFIED);
- p.setIndentationLeft(1*15f);
- p.setIndentationRight((5-1)*15f);
- document.add(p);
- //居右
- document.newPage();
- p.setAlignment(Element.ALIGN_RIGHT);
- p.setSpacingAfter(15f);
- document.add(p);
- //居左
- document.newPage();
- p.setAlignment(Element.ALIGN_LEFT);
- p.setSpacingBefore(15f);
- document.add(p);
- //居中
- document.newPage();
- p.setAlignment(Element.ALIGN_CENTER);
- p.setSpacingAfter(15f);
- p.setSpacingBefore(15f);
- document.add(p);
10、删除Page
- FileOutputStreamout=newFileOutputStream(FILE_DIR+"deletePage.pdf");
- Documentdocument=newDocument();
- PdfWriterwriter=PdfWriter.getInstance(document,out);
- document.open();
- document.add(newParagraph("Firstpage"));
- document.add(newParagraph(Document.getVersion()));
- document.newPage();
- writer.setPageEmpty(false);
- document.newPage();
- document.add(newParagraph("Newpage"));
- document.close();
- PdfReaderreader=newPdfReader(FILE_DIR+"deletePage.pdf");
- reader.selectPages("1,3");
- PdfStamperstamp=newPdfStamper(reader,newFileOutputStream(FILE_DIR
- +"deletePage2.pdf"));
- stamp.close();
- reader.close();
11、插入Page
- FileOutputStreamout=newFileOutputStream(FILE_DIR+"insertPage.pdf");
- Documentdocument=newDocument();
- PdfWriter.getInstance(document,out);
- document.open();
- document.add(newParagraph("1page"));
- document.newPage();
- document.add(newParagraph("2page"));
- document.newPage();
- document.add(newParagraph("3page"));
- document.close();
- PdfReaderreader=newPdfReader(FILE_DIR+"insertPage.pdf");
- PdfStamperstamp=newPdfStamper(reader,newFileOutputStream(FILE_DIR
- +"insertPage2.pdf"));
- stamp.insertPage(2,reader.getPageSize(1));
- ColumnTextct=newColumnText(null);
- ct.addElement(newParagraph(24,newChunk("INSERTPAGE")));
- ct.setCanvas(stamp.getOverContent(2));
- ct.setSimpleColumn(36,36,559,770);
- stamp.close();
- reader.close();
12、排序page
- PdfWriterwriter=PdfWriter.getInstance(doc,out);
- writer.setLinearPageMode();
- doc.open();
- doc.add(newParagraph("1page"));
- doc.newPage();
- doc.add(newParagraph("2page"));
- doc.newPage();
- doc.add(newParagraph("3page"));
- doc.newPage();
- doc.add(newParagraph("4page"));
- doc.newPage();
- doc.add(newParagraph("5page"));
- int[]order={4,3,2,1};
- writer.reorderPages(order);
13、目录
- //Code1
- document.add(newChunk("Chapter1").setLocalDestination("1"));
- document.newPage();
- document.add(newChunk("Chapter2").setLocalDestination("2"));
- document.add(newParagraph(newChunk("Sub2.1").setLocalDestination("2.1")));
- document.add(newParagraph(newChunk("Sub2.2").setLocalDestination("2.2")));
- document.newPage();
- document.add(newChunk("Chapter3").setLocalDestination("3"));
- //Code2
- PdfContentBytecb=writer.getDirectContent();
- PdfOutlineroot=cb.getRootOutline();
- //Code3
- @SuppressWarnings("unused")
- PdfOutlineoline1=newPdfOutline(root,PdfAction.gotoLocalPage("1",false),"Chapter1");
- PdfOutlineoline2=newPdfOutline(root,PdfAction.gotoLocalPage("2",false),"Chapter2");
- oline2.setOpen(false);
- @SuppressWarnings("unused")
- PdfOutlineoline2_1=newPdfOutline(oline2,PdfAction.gotoLocalPage("2.1",false),"Sub2.1");
- @SuppressWarnings("unused")
- PdfOutlineoline2_2=newPdfOutline(oline2,PdfAction.gotoLocalPage("2.2",false),"Sub2.2");
- @SuppressWarnings("unused")
- PdfOutlineoline3=newPdfOutline(root,PdfAction.gotoLocalPage("3",false),"Chapter3");
14、Header, Footer
- PdfWriterwriter=PdfWriter.getInstance(doc,newFileOutputStream(FILE_DIR+"setHeaderFooter.pdf"));
- writer.setPageEvent(newPdfPageEventHelper(){
- publicvoidonEndPage(PdfWriterwriter,Documentdocument){
- PdfContentBytecb=writer.getDirectContent();
- cb.saveState();
- cb.beginText();
- BaseFontbf=null;
- try{
- bf=BaseFont.createFont(BaseFont.HELVETICA,BaseFont.WINANSI,BaseFont.EMBEDDED);
- }catch(Exceptione){
- e.printStackTrace();
- }
- cb.setFontAndSize(bf,10);
- //Header
- floatx=document.top(-20);
- //左
- cb.showTextAligned(PdfContentByte.ALIGN_LEFT,
- "H-Left",
- document.left(),x,0);
- //中
- cb.showTextAligned(PdfContentByte.ALIGN_CENTER,
- writer.getPageNumber()+"page",
- (document.right()+document.left())/2,
- x,0);
- //右
- cb.showTextAligned(PdfContentByte.ALIGN_RIGHT,
- "H-Right",
- document.right(),x,0);
- //Footer
- floaty=document.bottom(-20);
- //左
- cb.showTextAligned(PdfContentByte.ALIGN_LEFT,
- "F-Left",
- document.left(),y,0);
- //中
- cb.showTextAligned(PdfContentByte.ALIGN_CENTER,
- writer.getPageNumber()+"page",
- (document.right()+document.left())/2,
- y,0);
- //右
- cb.showTextAligned(PdfContentByte.ALIGN_RIGHT,
- "F-Right",
- document.right(),y,0);
- cb.endText();
- cb.restoreState();
- }
- });
- doc.open();
- doc.add(newParagraph("1page"));
- doc.newPage();
- doc.add(newParagraph("2page"));
- doc.newPage();
- doc.add(newParagraph("3page"));
- doc.newPage();
- doc.add(newParagraph("4page"));
15、左右文字
- PdfWriterwriter=PdfWriter.getInstance(document,out);
- document.open();
- PdfContentBytecanvas=writer.getDirectContent();
- Phrasephrase1=newPhrase("Thisisatest!left");
- Phrasephrase2=newPhrase("Thisisatest!right");
- Phrasephrase3=newPhrase("Thisisatest!center");
- ColumnText.showTextAligned(canvas,Element.ALIGN_LEFT,phrase1,10,500,0);
- ColumnText.showTextAligned(canvas,Element.ALIGN_RIGHT,phrase2,10,536,0);
- ColumnText.showTextAligned(canvas,Element.ALIGN_CENTER,phrase3,10,572,0);
16、幻灯片放映
- PdfWriterwriter=PdfWriter.getInstance(doc,out);
- writer.setPdfVersion(PdfWriter.VERSION_1_5);
- writer.setViewerPreferences(PdfWriter.PageModeFullScreen);//全屏
- writer.setPageEvent(newPdfPageEventHelper(){
- publicvoidonStartPage(PdfWriterwriter,Documentdocument){
- writer.setTransition(newPdfTransition(PdfTransition.DISSOLVE,3));
- writer.setDuration(5);//间隔时间
- }
- });
- doc.open();
- doc.add(newParagraph("1page"));
- doc.newPage();
- doc.add(newParagraph("2page"));
- doc.newPage();
- doc.add(newParagraph("3page"));
- doc.newPage();
- doc.add(newParagraph("4page"));
- doc.newPage();
- doc.add(newParagraph("5page"));
17、压缩PDF到Zip
- ZipOutputStreamzip=newZipOutputStream(newFileOutputStream(FILE_DIR+"zipPDF.zip"));
- for(inti=1;i<=3;i++){
- ZipEntryentry=newZipEntry("hello_"+i+".pdf");
- zip.putNextEntry(entry);
- Documentdocument=newDocument();
- PdfWriterwriter=PdfWriter.getInstance(document,zip);
- writer.setCloseStream(false);
- document.open();
- document.add(newParagraph("Hello"+i));
- document.close();
- zip.closeEntry();
- }
- zip.close();
18、分割PDF
- FileOutputStreamout=newFileOutputStream(FILE_DIR+"splitPDF.pdf");
- Documentdocument=newDocument();
- PdfWriter.getInstance(document,out);
- document.open();
- document.add(newParagraph("1page"));
- document.newPage();
- document.add(newParagraph("2page"));
- document.newPage();
- document.add(newParagraph("3page"));
- document.newPage();
- document.add(newParagraph("4page"));
- document.close();
- PdfReaderreader=newPdfReader(FILE_DIR+"splitPDF.pdf");
- Documentdd=newDocument();
- PdfWriterwriter=PdfWriter.getInstance(dd,newFileOutputStream(FILE_DIR+"splitPDF1.pdf"));
- dd.open();
- PdfContentBytecb=writer.getDirectContent();
- dd.newPage();
- cb.addTemplate(writer.getImportedPage(reader,1),0,0);
- dd.newPage();
- cb.addTemplate(writer.getImportedPage(reader,2),0,0);
- dd.close();
- writer.close();
- Documentdd2=newDocument();
- PdfWriterwriter2=PdfWriter.getInstance(dd2,newFileOutputStream(FILE_DIR+"splitPDF2.pdf"));
- dd2.open();
- PdfContentBytecb2=writer2.getDirectContent();
- dd2.newPage();
- cb2.addTemplate(writer2.getImportedPage(reader,3),0,0);
- dd2.newPage();
- cb2.addTemplate(writer2.getImportedPage(reader,4),0,0);
- dd2.close();
- writer2.close();
19、合并PDF
- PdfReaderreader1=newPdfReader(FILE_DIR+"splitPDF1.pdf");
- PdfReaderreader2=newPdfReader(FILE_DIR+"splitPDF2.pdf");
- FileOutputStreamout=newFileOutputStream(FILE_DIR+"mergePDF.pdf");
- Documentdocument=newDocument();
- PdfWriterwriter=PdfWriter.getInstance(document,out);
- document.open();
- PdfContentBytecb=writer.getDirectContent();
- inttotalPages=0;
- totalPages+=reader1.getNumberOfPages();
- totalPages+=reader2.getNumberOfPages();
- java.util.List<PdfReader>readers=newArrayList<PdfReader>();
- readers.add(reader1);
- readers.add(reader2);
- intpageOfCurrentReaderPDF=0;
- Iterator<PdfReader>iteratorPDFReader=readers.iterator();
- //LoopthroughthePDFfilesandaddtotheoutput.
- while(iteratorPDFReader.hasNext()){
- PdfReaderpdfReader=iteratorPDFReader.next();
- //Createanewpageinthetargetforeachsourcepage.
- while(pageOfCurrentReaderPDF<pdfReader.getNumberOfPages()){
- document.newPage();
- pageOfCurrentReaderPDF++;
- PdfImportedPagepage=writer.getImportedPage(pdfReader,pageOfCurrentReaderPDF);
- cb.addTemplate(page,0,0);
- }
- pageOfCurrentReaderPDF=0;
- }
- out.flush();
- document.close();
- out.close();
20、Annotation
- PdfWriterwriter=PdfWriter.getInstance(doc,out);
- writer.setLinearPageMode();
- doc.open();
- doc.add(newParagraph("1page"));
- doc.add(newAnnotation("Title","Thisisaannotation!"));
- doc.newPage();
- doc.add(newParagraph("2page"));
- Chunkchunk=newChunk("\u00a0");
- chunk.setAnnotation(PdfAnnotation.createText(writer,null,"Title","Thisisaanotherannotation!",false,"Comment"));
- doc.add(chunk);
- //添加附件
- doc.newPage();
- doc.add(newParagraph("3page"));
- Chunkchunk2=newChunk("\u00a0\u00a0");
- PdfAnnotationannotation=PdfAnnotation.createFileAttachment(
- writer,null,"Title",null,
- "resource/test2.jpg",
- "img.jpg");
- annotation.put(PdfName.NAME,
- newPdfString("Paperclip"));
- chunk2.setAnnotation(annotation);
- doc.add(chunk2);
21、插入一个Table
- PdfPTabletable=newPdfPTable(3);
- PdfPCellcell;
- cell=newPdfPCell(newPhrase("Cellwithcolspan3"));
- cell.setColspan(3);
- table.addCell(cell);
- cell=newPdfPCell(newPhrase("Cellwithrowspan2"));
- cell.setRowspan(2);
- table.addCell(cell);
- table.addCell("row1;cell1");
- table.addCell("row1;cell2");
- table.addCell("row2;cell1");
- table.addCell("row2;cell2");
- document.add(table);
22、表格嵌套
- PdfPTabletable=newPdfPTable(4);
- //1行2列
- PdfPTablenested1=newPdfPTable(2);
- nested1.addCell("1.1");
- nested1.addCell("1.2");
- //2行1列
- PdfPTablenested2=newPdfPTable(1);
- nested2.addCell("2.1");
- nested2.addCell("2.2");
- //将表格插入到指定位置
- for(intk=0;k<24;++k){
- if(k==1){
- table.addCell(nested1);
- }elseif(k==20){
- table.addCell(nested2);
- }else{
- table.addCell("cell"+k);
- }
- }
- document.add(table);
23、设置表格宽度
- PdfPTabletable=newPdfPTable(3);
- PdfPCellcell;
- cell=newPdfPCell(newPhrase("Cellwithcolspan3"));
- cell.setColspan(3);
- table.addCell(cell);
- cell=newPdfPCell(newPhrase("Cellwithrowspan2"));
- cell.setRowspan(2);
- table.addCell(cell);
- table.addCell("row1;cell1");
- table.addCell("row1;cell2");
- table.addCell("row2;cell1");
- table.addCell("row2;cell2");
- //100%
- table.setWidthPercentage(100);
- document.add(table);
- document.add(newParagraph("\n\n"));
- //宽度50%居左
- table.setHorizontalAlignment(Element.ALIGN_LEFT);
- document.add(table);
- document.add(newParagraph("\n\n"));
- //宽度50%居中
- table.setHorizontalAlignment(Element.ALIGN_CENTER);
- document.add(table);
- document.add(newParagraph("\n\n"));
- //宽度50%居右
- table.setWidthPercentage(50);
- table.setHorizontalAlignment(Element.ALIGN_RIGHT);
- document.add(table);
- document.add(newParagraph("\n\n"));
- //固定宽度
- table.setTotalWidth(300);
- table.setLockedWidth(true);
- document.add(table);
24、设置表格前后间隔
- PdfPTabletable=newPdfPTable(3);
- PdfPCellcell=newPdfPCell(newParagraph("合并3个单元格",fontZH));
- cell.setColspan(3);
- table.addCell(cell);
- table.addCell("1.1");
- table.addCell("2.1");
- table.addCell("3.1");
- table.addCell("1.2");
- table.addCell("2.2");
- table.addCell("3.2");
- cell=newPdfPCell(newParagraph("红色边框",fontZH));
- cell.setBorderColor(newBaseColor(255,0,0));
- table.addCell(cell);
- cell=newPdfPCell(newParagraph("合并单2个元格",fontZH));
- cell.setColspan(2);
- cell.setBackgroundColor(newBaseColor(0xC0,0xC0,0xC0));
- table.addCell(cell);
- table.setWidthPercentage(50);
- document.add(newParagraph("追加2个表格",fontZH));
- document.add(table);
- document.add(table);
- document.newPage();
- document.add(newParagraph("使用'SpacingBefore'和'setSpacingAfter'",fontZH));
- table.setSpacingBefore(15f);
- document.add(table);
- document.add(table);
- document.add(newParagraph("这里没有间隔",fontZH));
- table.setSpacingAfter(15f);
25、设置单元格宽度
- //按比例设置单元格宽度
- float[]widths={0.1f,0.1f,0.05f,0.75f};
- PdfPTabletable=newPdfPTable(widths);
- table.addCell("10%");
- table.addCell("10%");
- table.addCell("5%");
- table.addCell("75%");
- table.addCell("aa");
- table.addCell("aa");
- table.addCell("a");
- table.addCell("aaaaaaaaaaaaaaa");
- table.addCell("bb");
- table.addCell("bb");
- table.addCell("b");
- table.addCell("bbbbbbbbbbbbbbb");
- table.addCell("cc");
- table.addCell("cc");
- table.addCell("c");
- table.addCell("ccccccccccccccc");
- document.add(table);
- document.add(newParagraph("\n\n"));
- //调整比例
- widths[0]=20f;
- widths[1]=20f;
- widths[2]=10f;
- widths[3]=50f;
- table.setWidths(widths);
- document.add(table);
- //按绝对值设置单元格宽度
- widths[0]=40f;
- widths[1]=40f;
- widths[2]=20f;
- widths[3]=300f;
- Rectangler=newRectangle(PageSize.A4.getRight(72),PageSize.A4.getTop(72));
- table.setWidthPercentage(widths,r);
- document.add(newParagraph("\n\n"));
- document.add(table);
26、设置单元格高度
- PdfPTabletable=newPdfPTable(2);
- PdfPCellcell;
- //折行
- table.addCell(newPdfPCell(newParagraph("折行",fontZH)));
- cell=newPdfPCell(newParagraph("blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"));
- cell.setNoWrap(false);
- table.addCell(cell);
- //不折行
- table.addCell(newPdfPCell(newParagraph("不折行",fontZH)));
- cell.setNoWrap(true);
- table.addCell(cell);
- //设置高度
- table.addCell(newPdfPCell(newParagraph("任意高度",fontZH)));
- cell=newPdfPCell(newParagraph("1.blahblah\n2.blahblahblah\n3.blahblah\n4.blahblahblah\n5.blahblah\n6.blahblahblah\n7.blahblah\n8.blahblahblah"));
- table.addCell(cell);
- //固定高度
- table.addCell(newPdfPCell(newParagraph("固定高度",fontZH)));
- cell.setFixedHeight(50f);
- table.addCell(cell);
- //最小高度
- table.addCell(newPdfPCell(newParagraph("最小高度",fontZH)));
- cell=newPdfPCell(newParagraph("最小高度:50",fontZH));
- cell.setMinimumHeight(50f);
- table.addCell(cell);
- //最后一行拉长到page底部
- table.setExtendLastRow(true);
- table.addCell(newPdfPCell(newParagraph("拉长最后一行",fontZH)));
- cell=newPdfPCell(newParagraph("最后一行拉长到page底部",fontZH));
- table.addCell(cell);
- document.add(table);
27、设置单元格颜色
- PdfPTabletable=newPdfPTable(4);
- PdfPCellcell;
- cell=newPdfPCell(newParagraph("颜色测试",fontZH));
- table.addCell(cell);
- //红色背景,无边框
- cell=newPdfPCell(newParagraph("红色背景,无边框",fontZH));
- cell.setBorder(Rectangle.NO_BORDER);
- cell.setBackgroundColor(BaseColor.RED);
- table.addCell(cell);
- //绿色背景,下边框
- cell=newPdfPCell(newParagraph("绿色背景,下边框",fontZH));
- cell.setBorder(Rectangle.BOTTOM);
- cell.setBorderColorBottom(BaseColor.MAGENTA);
- cell.setBorderWidthBottom(5f);
- cell.setBackgroundColor(BaseColor.GREEN);
- table.addCell(cell);
- //蓝色背景,上边框
- cell=newPdfPCell(newParagraph("蓝色背景,上边框",fontZH));
- cell.setBorder(Rectangle.TOP);
- cell.setUseBorderPadding(true);
- cell.setBorderWidthTop(5f);
- cell.setBorderColorTop(BaseColor.CYAN);
- cell.setBackgroundColor(BaseColor.BLUE);
- table.addCell(cell);
- cell=newPdfPCell(newParagraph("背景灰色度",fontZH));
- table.addCell(cell);
- cell=newPdfPCell(newParagraph("0.25"));
- cell.setBorder(Rectangle.NO_BORDER);
- cell.setGrayFill(0.25f);
- table.addCell(cell);
- cell=newPdfPCell(newParagraph("0.5"));
- cell.setBorder(Rectangle.NO_BORDER);
- cell.setGrayFill(0.5f);
- table.addCell(cell);
- cell=newPdfPCell(newParagraph("0.75"));
- cell.setBorder(Rectangle.NO_BORDER);
- cell.setGrayFill(0.75f);
- table.addCell(cell);
- document.add(table);
28、插入图像
- Imageimage=Image.getInstance("resource/test2.jpg");
- float[]widths={1f,4f};
- PdfPTabletable=newPdfPTable(widths);
- //插入图片
- table.addCell(newPdfPCell(newParagraph("图片测试",fontZH)));
- table.addCell(image);
- //调整图片大小
- table.addCell("Thistwo");
- table.addCell(newPdfPCell(image,true));
- //不调整
- table.addCell("Thisthree");
- table.addCell(newPdfPCell(image,false));
- document.add(table);
29、设置表头
- String[]bogusData={"M0065920","SL","FR86000P","PCGOLD",
- "119000","9606","2001-08-13","4350","6011648299",
- "FLFLMTGP","153","119000.00"};
- intNumColumns=12;
- //12
- PdfPTabledatatable=newPdfPTable(NumColumns);
- intheaderwidths[]={9,4,8,10,8,11,9,7,9,10,4,10};//percentage
- datatable.setWidths(headerwidths);
- datatable.setWidthPercentage(100);
- datatable.getDefaultCell().setPadding(3);
- datatable.getDefaultCell().setBorderWidth(2);
- datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
- datatable.addCell("Clock#");
- datatable.addCell("TransType");
- datatable.addCell("Cusip");
- datatable.addCell("LongName");
- datatable.addCell("Quantity");
- datatable.addCell("FractionPrice");
- datatable.addCell("SettleDate");
- datatable.addCell("Portfolio");
- datatable.addCell("ADPNumber");
- datatable.addCell("AccountID");
- datatable.addCell("RegRepID");
- datatable.addCell("AmtToGo");
- datatable.setHeaderRows(1);
- //边框
- datatable.getDefaultCell().setBorderWidth(1);
- //背景色
- for(inti=1;i<1000;i++){
- for(intx=0;x<NumColumns;x++){
- datatable.addCell(bogusData[x]);
- }
- }
- document.add(datatable);
30、分割表格
31、设置单元格留白
- PdfPTabletable=newPdfPTable(2);
- PdfPCellcell;
- Paragraphp=newParagraph("Quickbrownfoxjumpsoverthelazydog.Quickbrownfoxjumpsoverthelazydog.");
- table.addCell(newPdfPCell(newParagraph("默认",fontZH)));
- table.addCell(p);
- table.addCell(newPdfPCell(newParagraph("Padding:10",fontZH)));
- cell=newPdfPCell(p);
- cell.setPadding(10f);
- table.addCell(cell);
- table.addCell(newPdfPCell(newParagraph("Padding:0",fontZH)));
- cell=newPdfPCell(p);
- cell.setPadding(0f);
- table.addCell(cell);
- table.addCell(newPdfPCell(newParagraph("上Padding:0左Padding:20",fontZH)));
- cell=newPdfPCell(p);
- cell.setPaddingTop(0f);
- cell.setPaddingLeft(20f);
- table.addCell(cell);
- document.add(table);
- document.newPage();
- table=newPdfPTable(2);
- table.addCell(newPdfPCell(newParagraph("没有Leading",fontZH)));
- table.getDefaultCell().setLeading(0f,0f);
- table.addCell("blahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\n");
- table.getDefaultCell().setLeading(14f,0f);
- table.addCell(newPdfPCell(newParagraph("固定Leading:14pt",fontZH)));
- table.addCell("blahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\n");
- table.addCell(newPdfPCell(newParagraph("相对于字体",fontZH)));
- table.getDefaultCell().setLeading(0f,1.0f);
- table.addCell("blahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\nblahblah\nblahblahblah\n");
- document.add(table);
32、设置单元格边框
- //没有边框
- PdfPTabletable1=newPdfPTable(3);
- table1.getDefaultCell().setBorder(PdfPCell.NO_BORDER);
- table1.addCell(newParagraph("Cell1"));
- table1.addCell(newParagraph("Cell2"));
- table1.addCell(newParagraph("Cell3"));
- document.add(table1);
- //边框粗细颜色
- document.newPage();
- Rectangleb1=newRectangle(0f,0f);
- b1.setBorderWidthLeft(6f);
- b1.setBorderWidthBottom(5f);
- b1.setBorderWidthRight(4f);
- b1.setBorderWidthTop(2f);
- b1.setBorderColorLeft(BaseColor.RED);
- b1.setBorderColorBottom(BaseColor.ORANGE);
- b1.setBorderColorRight(BaseColor.YELLOW);
- b1.setBorderColorTop(BaseColor.GREEN);
- PdfPTabletable2=newPdfPTable(1);
- PdfPCellcell=newPdfPCell(newParagraph("Cell1"));
- cell.cloneNonPositionParameters(b1);
- table2.addCell(cell);
- document.add(table2);
33、PdfPTableEvent
34、PdfPCellEvent
35、PdfPageEventHelper
相关推荐
itext-1.4.5.jar itext-2.1.7.jar itext-3.1.jar itext-1.4.5.jar itext-2.1.7.jar itext-3.1.jar itext-5.0.6.jar
iText-2.1.7.js2.jar iTextAsian.jar iTextAsianCmaps.jar itext-rtf-2.1.7.jar iText-2.1.7.js2.jar iTextAsian.jar iTextAsianCmaps.jar itext-rtf-2.1.7.jar 能够配合最新ireport5.6.0的全套汉字jar包
itext-2.1.7.js6.jar
iText两个架包 iText-2.1.5.jar itext-1.3.jar iText-2.1.5.jar itext-1.3.jar iText-2.1.5.jar itext-1.3.jar
iText-5.0.6.jar iTextAsian.jar
com.itextpdf.itextpdf.5.5.13.3 相关jar包和包含源码jar包 ... <artifactId>itextpdf <version>5.5.13.3 下载地址为: https://github.com/itext/itextpdf/releases/tag/5.5.13.3 各位大佬有积分的可以打赏1积分
关于itext-2.0.8.jar下载,针对文件导出以PDF文件格式导出,仅供参考。
官方最新itextpdf-5.5.8.jar+中文支持包itext-asian.jar
itext-2.1.7.js8.zip 适用于JasperReports 6.15.0,有需要的请下载
在使用最新版jasperreports的时候,比如6.8.0版本时,itext-2.1.7.js6.jar无法根据maven来下载,需要使用此jar包导入本地仓库。
itext-asian.jar、itext-asian.jar、itext-asian.jar、itext-asian.jar
JAVA生成WORD文件的方法目前有以下种: ...本文介绍的是itext生成rtf文件并保存格式为word 此方案本人已实践过 并已在项目中使用 用到的jar包: iText-2.1.5.jar iText-rtf-2.1.4.jar iTextAsian.jar
JasperReports依赖itext-2.1.7.js8.jar,目前maven仓库下载不了,估计后面也下载不了
itext-2.0.8.jar html转换pdf
iTextAsian.jar以及 iText-2.1.5.jar,itextasian.jar包是一款可以安装适用于生成PDF文档的一个java类库,当选择使用java开发时,可以使用这款itextasian.jar包进行java开发,有需要的朋友们欢迎前来下载使用这款...
iText-2.0.8.jar/jxl.jar/core-renderer.jar/iTextAsian.jariText-2.0.8.jar/jxl.jar/core-renderer.jar/iTextAsian.jariText-2.0.8.jar/jxl.jar/core-renderer.jar/iTextAsian.jariText-2.0.8.jar/jxl.jar/core-...
iText.jar,生成pdf所需,已经加入iTextAsian.jar中的字体类,可以不用再单独下载iTextAsian,直接将iText加入项目即可,不用配置环境变量啥的
itext-rtf-2.1.7.jar,iTextAsian.jar,iText-5.0.6.jar,itext-2.1.7.jar
<artifactId>itext <version>2.1.7.js7 <scope>compile <optional>false <groupId>org.bouncycastle <artifactId>bcmail-jdk15on <groupId>org.bouncycastle <artifactId>bcpkix-jdk15on </dependency>
通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF/通过iTextSharp操作PDF