根据某个条件分组查询之后, 可能每个分组只有一条数据, 然后pdf根据每个分组来分页, 这样就会导致每页只有少量的数据, 有大量的空白区域, 想把后面每页的数据都往上移动, 并且每个分组都有表头等数据。求可以实现多表头报表的方法或者PDF文件内容合成的方式(PDF文件合成已会,但PDF文件合成最终合成的文件两页内容之间会有空白,打印的时候会浪费纸)
写入pdf的时候是自动分页的吗?能自定义分页条件的话应该可以解决吧
可否通过页面内容合并的方式,就是把下一页的表头放到上一页的空白区域,把多个表头放到同一页上面去。下面是代码,需引入spire.pdf.jar:
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfBlendMode;
import com.spire.pdf.graphics.PdfTemplate;
import java.awt.geom.Point2D;
public class MergePages {
public static void main(String[] args) {
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");
//根据pdf的第2页绘制模板
PdfPageBase page1 = pdf.getPages().get(1);
PdfTemplate template = page1.createTemplate();
//获取pdf的第1页
PdfPageBase page0 = pdf.getPages().get(0);
//设置透明度和重叠样式
page1.getCanvas().setTransparency(1f,1f, PdfBlendMode.Normal);
//将pdf的第2页内容写入第1页中的指定位置
page0.getCanvas().drawTemplate(template,new Point2D.Float(0,80));
//删除原有第二页内容
pdf.getPages().remove(page1);
//保存pdf
pdf.saveToFile("MergePages.pdf", FileFormat.PDF);
pdf.dispose();
}
}
效果图:
能解决问题的话,点个采纳哟