实现一个功能,就是使用java使用itext生成图文并茂的pdf遇见几个问题 1: 要实现效果如下                 文字1:
                       
                     图片1                 文字2:
 
                     图片2
 
但是上述情况发生在换页时就变成如下样式了:
              
                 文字1:                                     
                 文字2:
                     图片1
                     图片22:生成的pdf中要求样式能够灵活变换:有时横,有时竖3:生成的段落文字,如何能解决标点符号不在居首求指教,谢谢了!                 
   

解决方案 »

  1.   

    图片是会遇到跨页的问题,我也遇到过,图片下方的日期就会脱离图片下方会放到上一页。其实可以用表格将文字和图片固定起来,这样 文字1:--> 图片1--> 文字2:--> 图片2 的顺序就不会乱,这是肯定的。详细代码如下:float[] widthes = { 50f };// 设置表格的列宽和列数  
            PdfPTable hiddenTable = new PdfPTable(widthes);// 建立一个pdf表格  
            hiddenTable.setSpacingBefore(11f);  //设置表格上空间  
            hiddenTable.setTotalWidth(500);// 设置表格的宽度  
            hiddenTable.setWidthPercentage(100);//设置表格宽度为%100  
            hiddenTable.getDefaultCell().disableBorderSide(1);  //隐藏所有的边框效果。
            hiddenTable.getDefaultCell().disableBorderSide(2);  
            hiddenTable.getDefaultCell().disableBorderSide(4);  
            hiddenTable.getDefaultCell().disableBorderSide(8);  
            
            cell = new PdfPCell(new Paragraph("文字1"FontChinese));//金额  
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);// 设置内容水平居中显示  
            cell.setPaddingTop(0f);  
            cell.setPaddingRight(20f);  
            cell.setBorder(Rectangle.NO_BORDER);  
            hiddenTable.addCell(cell); 
            Image upgif = Image.getInstance("D:/opt/yd_apps/rim/uploadfolder/图片1.jpg");   
            upgif.scalePercent(7.5f);//设置缩放的百分比%7.5  
            upgif.setAlignment(Element.ALIGN_RIGHT);  
              
            cell = new PdfPCell(new Paragraph("", FontChinese));//描述  
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);// 设置内容水平居中显示  
            cell.addElement(upgif);  
            cell.setPaddingTop(0f);             //设置内容靠上位置  
            cell.setPaddingBottom(0f);  
            cell.setPaddingRight(20f);  
            cell.setBorder(Rectangle.NO_BORDER);//设置单元格无边框  
            hiddenTable.addCell(cell);  
            --文字2、图片2以此类推
    :