我目前正在使用Export 1.6插件将我的SQL查询数据导出为Grails中的PDF格式。
我已经分层但无法找到 -
的确切解决方案我想动态生成多页PDF,但页面应该是 同样分为两个相等的垂直部分。我使用document.newPage(),但这是一个页面分为两个 页。
代码段 -
protected void exportData(OutputStream outputStream, List data, List fields) throws ExportingException{
Rectangle left;
Rectangle right;
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
// step 3
document.open();
// step 4
PdfContentByte canvas = writer.getDirectContent();
ColumnText ct = new ColumnText(canvas);
int side_of_the_page = 0;
ct.setSimpleColumn(36, 36, 290, 806);
int paragraphs = 0;
while (paragraphs < 30) {
ct.addElement(new Paragraph(String.format("Paragraph %s: %s", ++paragraphs, TEXT)));
while (ColumnText.hasMoreText(ct.go())) {
if (side_of_the_page == 0) {
side_of_the_page = 1;
canvas.moveTo(297.5f, 36);
canvas.lineTo(297.5f, 806);
//canvas.colorStroke
canvas.stroke();
}
else {
side_of_the_page = 0;
PdfPTable talble = new PdfPTable()
while(data.size())
PdfPCell cell1 = new PdfPCell()
ct.addElement(data);
document.newPage();
}
ct.setSimpleColumn(305, 36, 559, 806);
}
}
// step 5
document.close();
}
}
答案 0 :(得分:1)
您可以尝试使用 itextpdf-5.x.x.jar 而不是默认的Grails导出插件。
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;