вы можете использовать iText для перемещения, масштабирования или обрезки pdf-страниц
вам нужно определить PdfReader для вашего исходного файла и Document для вашего целевого файла
затем вы перебираете страницы, если читатель создает новую страницу в документе
и добавьте sourcePage в качестве шаблона на новую страницу (смещение, масштабирование и т. д. в любом месте)
PdfReader reader = new PdfReader( input );
int n = reader.getNumberOfPages();
Rectangle psize = reader.getPageSize(1);
float width = psize.getHeight();
float height = psize.getWidth();
Document document = new Document(new Rectangle(height, width));
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream( output ));
document.open();
PdfContentByte cb = writer.getDirectContent();
int i = 0;
while (i < n) {
i++;
document.newPage();
PdfImportedPage page = writer.getImportedPage(reader, i);
cb.addTemplate(page, factor, 0, 0, factor, left, down);
}
document.close();