使用导出插件或 iText:Grails 将一个 PDF 页面垂直分成两个相等的部分
Divide one PDF page into two equal section vertically using export plugin or iText: Grails
我目前正在使用 Export 1.6 插件将我的 SQL 查询数据导出到 Grails 中的 PDF。
我已经分层但无法找到确切的解决方案 -
I want to generate dynamically multi page PDF, but the page should be
equally partitioned into two equal section vertically.I used document.newPage() but this is dividing a page into two
pages.
代码片段-
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();
}
}
您可以尝试使用 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;
我目前正在使用 Export 1.6 插件将我的 SQL 查询数据导出到 Grails 中的 PDF。
我已经分层但无法找到确切的解决方案 -
I want to generate dynamically multi page PDF, but the page should be equally partitioned into two equal section vertically.I used document.newPage() but this is dividing a page into two pages.
代码片段-
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();
}
}
您可以尝试使用 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;