Я вернулся из отпуска и могу посмотреть мои предыдущие ответы. Этот:
Ghostscript: Обрезать определенную область?
демонстрирует, как визуализировать часть исходного входного файла в растровое изображение. Я бы посоветовал вам использовать ту же самую технику, но использовать устройство pdfwrite вместо устройства png16m, чтобы вы получили файл PDF в качестве вывода, таким образом сохраняя векторный характер ввода.
Перефразируя ответ здесь:
gs -sDEVICEWIDTHPOINTS=72 -dDEVICEHEIGHTPOINTS=144 -dFIXEDMEDIA -r300 -sDEVICE=pdfwrite -o out.pdf -c "<</PageOffset [-180 -108]>> setpagedevice" -f input.pdf
Создаст «окно» шириной 1 дюйм и высотой 2 дюйма, начиная с 2,5 дюйма слева от оригинала и 1,5 дюйма снизу вверх. Затем он запускает ввод, и все его положения, которые находятся в этом окне, сохраняются, все, что находится за его пределами, отбрасывается.
Вам необходимо сделать это несколько раз, по одному разу для каждого раздела, который вы хотите.
Я должен отметить, что сам Ghostscript прекрасно способен отрисовывать весь PDF-файл в документе. Он использует тот же самый подход списка отображения для очень больших выходных файлов, где он создает (упрощенное) представление исходного ввода и запускает это описание несколько раз. Каждый раз, когда он отображает одну горизонтальную полосу конечного результата, затем перемещается вниз к следующей полосе и т. Д.
IMO, вероятно, что ограничивающий фактор 300 точек на дюйм в вашем исходном опыте - это ImageMagick, а не Ghostscript, я Знайте, что Ghostscript способен отображать входные данные размером в несколько метров в каждом измерении при разрешении 1200 т / д и более, хотя для создания гигабайта данных, конечно же, требуется много времени.