私はいくつかのテーブルを1ページに収めようとしています。私は潜在的な解決策を実装しました。私の問題は、現在の印刷領域が満たされたときに、次の印刷領域に移動する方法です。 これは今のように出力されます。私は第2領域が部分的に自動的に塗りつぶされるようにフォントサイズを増やしました。 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();
}
}
することはでき広告エリアの休憩ではなく、単一のテーブルの内側: 次のコードは、ユースケースを解決します。 1つのテーブルが連続的にレンダリングされ、各エリアに可能な限り多くの行が追加されているものとします。 – mkl