当前位置: 代码迷 >> Java Web开发 >> Itext 生成pdf 表格嵌套的时候,内表格与外表格上下有间隙,该怎么解决
  详细解决方案

Itext 生成pdf 表格嵌套的时候,内表格与外表格上下有间隙,该怎么解决

热度:764   发布时间:2016-04-17 10:57:03.0
Itext 生成pdf 表格嵌套的时候,内表格与外表格上下有间隙
Itext 生成pdf 表格嵌套的时候,内表格与外表格上下有间隙

  我不知道有什么好的处理办法,大家帮帮忙


public void createPDF(HttpServletResponse response) {
 
Document document = new Document();
StringBuffer script = new StringBuffer();
script.append("this.print({bUI: false,bSilent: true,bShrinkToFit: false});") 
.append("\r\nthis.closeDoc();");
document.setPageSize(PageSize.A4);
 
try {
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 设置中文字体
Font headFont0 = new Font(bfChinese, 10);
ByteArrayOutputStream ops = new ByteArrayOutputStream();
 
PdfWriter pdfwriter = PdfWriter.getInstance(document,ops);
document.open();
// pdfwriter.addJavaScript(script.toString());
pdfwriter.setViewerPreferences(PdfWriter.PageModeUseThumbs);
float[] widths = {474f};
float[] width1 = {74f,80f,20f,40f,20f,40f,20f,180f};
float[] width2 = {74f,170f,80f,150f};
float[] width3 = {74f,400f};
float[] width4 = {158f,158f,158f};
float[] width5 = {316f,158f};
PdfPTable table = new PdfPTable(widths);
table.setSpacingBefore(130f);// 设置表格上面空白宽度
table.setTotalWidth(474);
table.setLockedWidth(true);// 设置表格的宽度固定
table.setWidthPercentage(100f);
PdfPTable pt = null;
PdfPCell cell = null;
 //1=====  
cell = new PdfPCell(new Paragraph("", headFont0));
pt = this.createTable(width1, 0f, 474f, true);
cell.setBorderWidth(0.1f);
cell.setFixedHeight(14);
pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
table.addCell(pt);
 
 //2=====  
pt = this.createTable(width2, 0f, 474f, true);
cell.setFixedHeight(14);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  table.addCell(pt);
 //3=====  
  pt = this.createTable(width3, 0f, 474f, true);
  pt.addCell(cell);
  pt.addCell(cell);
  table.addCell(pt);
 //4=====  
  pt = this.createTable(width4, 0f, 474f, true);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  table.addCell(pt);
   
//5=====  
  pt = this.createTable(width4, 0f, 474f, true);
  cell.setFixedHeight(100);
  pt.addCell(cell);
  pt.addCell(cell);
  pt.addCell(cell);
  table.addCell(pt);
   
 //6=====  
  pt = this.createTable(width5, 0f, 474f, true);
  cell.setFixedHeight(14);
  pt.addCell(cell);
  pt.addCell(cell);
  table.addCell(pt);
   
 //7=====  
  cell = new PdfPCell(new Paragraph("", headFont0));
  cell.setFixedHeight(14);
  table.addCell(cell);
   
 //8=====  
  pt = this.createTable(width5, 0f, 474f, true);