한 페이지에 여러 테이블을 맞추려고합니다. 나는 잠재적 인 해결책을 구현했다. 문제는 필자가 원할 때 다음 인쇄 영역으로 이동하는 방법이다. 오히려 현재 인쇄 영역이 채워질 때 문제가된다. 출력 내용은 다음과 같습니다. 두 번째 영역이 부분적으로 자동 채워 지도록 글꼴 크기를 늘 렸습니다. iText7이 원할 때보다는 다음 영역을 사용하도록 내가 말할 수있는 방법이 있습니까?iText7을 사용하여 여러 테이블을 PDF로 인쇄
내 코드는 다음과 같습니다
import java.io.File;
import java.io.FileNotFoundException;
import com.itextpdf.io.IOException;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.layout.LayoutArea;
import com.itextpdf.layout.layout.LayoutResult;
import com.itextpdf.layout.property.TextAlignment;
import com.itextpdf.layout.renderer.DocumentRenderer;
public class ColumnDocumentRendererTest {
static PdfDocument pdfDoc;
static Document document;
Table tble;
protected int nextAreaNumber = 0;
public static final String DEST = "./target/test/resources/sandbox/tables/horizontzl_alignment.pdf";
public ColumnDocumentRendererTest(Document document2) {
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
throws IOException, FileNotFoundException {
File file = new File(DEST);
file.getParentFile().mkdirs();
new ColumnDocumentRendererTest(document).createPdf(DEST);
}
public void createPdf(String dest)
throws IOException, FileNotFoundException {
pdfDoc = new PdfDocument(new PdfWriter(DEST));
document = new Document(pdfDoc);
ColumnDocumentRenderer renderer = new ColumnDocumentRenderer(document);
document.setRenderer(renderer);
//Add paragraph to the document
tble = new Table(new float[] { 3f, 3f, 3f, 3f, 3f, 3f, 3f });
/*tble.addCell(new Cell()
.add(new Paragraph(tokenizer.nextToken()).setFont(font)));*/
for (int i = 1; i <= 21; i++) {
tble.addCell(new Cell().add(new Paragraph(Integer.toString(i))
.setTextAlignment(TextAlignment.RIGHT)
.setFontSize((float) 20.5)));
}
document.add(tble);
document.close();
}
}
하나의 테이블에는 표시 할 수 없지만 영역 나누기는 광고 할 수 있습니다. 가능한 한 많은 행을 추가하는 각 영역이있는 단일 테이블을 연속적으로 렌더링한다고 가정합니다. – mkl