itext Split PDF Вертикально

У меня есть требование, где я должен разделить страницу PDF прямо в центре по вертикали. Я искал различные посты и не мог определить правильный способ сделать это

Я хочу использовать библиотеку iText с использованием Java.

Я использовал SplitPDFFile.java из

iText: разбить PDF на несколько PDF (1 на страницу)

и изменил его, как показано ниже, но страница не разделяется, но копирует всю страницу.

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;

    public class SplitPDFFile {

        /**
         * @param args
         */
        public static void main(String[] args) {

            try {
                String inFile = "C:/input.pdf";

               System.out.println ("Reading " + inFile);
                PdfReader reader = new PdfReader(inFile);
                Rectangle cropBox = reader.getCropBox(1);            
                Rectangle  psize = reader.getPageSize(1);
                cropBox.setRight(psize.getWidth()/2);
                System.out.println(psize.getWidth());
                System.out.println(psize.getHeight());
                int n = reader.getNumberOfPages();
                System.out.println ("Number of pages : " + n);
                int i = 0;
                while ( i < n ) {
                    String outFile = inFile.substring(0, inFile.indexOf(".pdf"))
                        + "-" + String.format("%03d", i + 1) + ".pdf";
                    System.out.println ("Writing " + outFile);
                    Document document = new Document(cropBox);
                    PdfCopy writer = new PdfCopy(document, new FileOutputStream(outFile));
                    writer.setCropBoxSize(cropBox); 
                    document.open();
                    PdfImportedPage page = writer.getImportedPage(reader, ++i);
                    writer.addPage(page);
                    document.close();
                    writer.close();                     
                } 
            }
            catch (Exception e) {
                e.printStackTrace();
            }   
        }   
    }

Ответы на вопрос(1)

Ваш ответ на вопрос