Кажется, что вы ищете плитка a PDF. Вы не говорите нам, какую версию iText вы планируете использовать. Поскольку вы, похоже, новичок в этом, я предполагаю, что вы используете iText 7. В этом случае обратитесь к Chapter 6 из iText 7 Jump-Start tutorial, где мы разбиваем PDF на одну страницу в PDF с четырьмя страницами.
Оригинал PDF:
Плиточный PDF:
См TheGoldenGateBridge_Tiles для кода:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfDocument sourcePdf = new PdfDocument(new PdfReader(src));
PdfPage origPage = sourcePdf.getPage(1);
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
Rectangle orig = origPage.getPageSize();
//Tile size
Rectangle tileSize = PageSize.A4.rotate();
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
tileSize.getWidth()/orig.getWidth() * 2f,
tileSize.getHeight()/orig.getHeight() * 2f);
//The first tile
PdfPage page = pdf.addNewPage(PageSize.A4.rotate());
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, -orig.getHeight()/2f);
//The second tile
page = pdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth()/2f, -orig.getHeight()/2f);
//The third tile
page = pdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, 0);
//The fourth tile
page = pdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth()/2f, 0);
// closing the documents
pdf.close();
sourcePdf.close();
изменяющемся этот пример в код тха t плитка PDF с 1 страницей в PDF с 2 страницами, это вопрос использования простой математики.
Если вы используете iText 5, то на вопрос уже много раз ответили. Смотри, например: