Каков наилучший способ конвертировать пары PDF в отдельные страницы? - PullRequest
0 голосов
/ 26 апреля 2018

Мне нужно взять существующий PDF (созданный с помощью Prawn) и объединить пары после страницы 1 (обложка) в одну страницу.Я также хотел бы добавить вертикальную линию в центре соединяемых страниц.Страницы должны быть напечатаны в книгах, и цель состоит в том, чтобы создать отдельные PDF-страницы, которые похожи на вид рядом в Acrobat.Я знаю, что могу конвертировать их в изображения, делать то, что мне нужно, с помощью ImageMagick, а затем переводить их обратно в формат PDF, но я стараюсь свести к минимуму количество конверсий, чтобы сохранить максимально возможное качество.

Я также понимаю, что могу сделать это с самого начала с Prawn, но я стараюсь избегать этого, поскольку это потребует очень больших изменений в нашем приложении.

1 Ответ

0 голосов
/ 26 апреля 2018

Это можно сделать с помощью Ghostscript и устройства pdfwrite, но это отнюдь не просто.Вам нужно написать некоторый PostScript, чтобы выполнить эту работу.

Вам нужно будет добавить процедуры BeginPage и EndPage, BeginPage потребуется проверить номер текущей страницы (и вам придется отслеживать это самостоятельно).Если его страница 1, обработайте нормально.Если это четная страница, отбросьте текущий PageSize и замените его на тот, который охватывает пару страниц.Обработайте четную страницу.Не передавайте содержимое.

Если страница нечетная (а не 1), переведите источник так, чтобы его смещение вправо соответствовало ширине страницы.Обработайте нечетную страницу.используйте Moveto, Lineto и Stroke, чтобы нарисовать необходимую линию между двумя страницами.Передайте страницу.

Предполагается, что все страницы имеют одинаковый размер и ориентацию или, по крайней мере, размеры каждой страницы известны заранее.Их можно было бы также получить программно, но более сложно.

Это определенно нетривиально, но если вы покопаетесь в моих ответах в тегах PostScript и поищите что-нибудь со словом «наложение« вы »Я, вероятно, найду наброски программ для этой работы.

Я быстро взглянул и здесь - это ответ, который я написал некоторое время назад.Он использует подход, отличающийся от описанного выше, он копирует некоторые свойства интерпретатора PDF и использует их заново.Это делает кусок того, что вы хотите, хотя.

...