Клонировать PDF файл на одной странице - PullRequest
3 голосов
/ 28 июля 2010

У меня есть PDF-файл, который точно равен 1/5 размера страницы А4, и скрипт , чтобы преобразовать его в одну страницу А4, добавляя его несколько раз. Проблема в том, что ImageMagick работает только с растровой графикой, а мой PDF содержит текст и подробную векторную графику. В результате получается потеря текстовых данных, намного больший размер файла и худший вывод на печать.

Я бы хотел сделать то же самое, что и строка convert -density 1200 $pdf_file $pdf_file $pdf_file $pdf_file $pdf_file +append $a4_file без растеризации векторной графики .

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

pdftk и pdfnup действительно превосходны!

Псевдокодовая версия готового скрипта :

for each file:
    inkscape --export-pdf
    pdftk (pdf-file x 5) cat output 5.pdf
    pdfnup 5.pdf --nup 5x1 --paper a4paper --orient landscape --outfile {recto,verso}.pdf

pdftk R=recto.pdf V=verso.pdf cat R1W V1E output bookmark.pdf
1 голос
/ 28 июля 2010

Хорошо, у меня есть идея, как это может работать, но у меня нет возможности проверить это в данный момент.

Теперь рассмотрим эти три команды (потребуется Unix-ification, если вы не в Windows):

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p1.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f c:/path/to/first.pdf

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p2.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [168.4 0]>> setpagedevice" ^
    -f c:/path/to/second.pdf

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p3.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [336.8 0]>> setpagedevice" ^
    -f c:/path/to/third.pdf

За исключением любых неправильных вычислений с моей стороны, они "печатают" ваши первые 3 PDF-файла на альбомной среде формата A4, но смещая смещение страницы для каждого на 'n * (1/5 от ширины ландшафта)' точек, начиная с n = 0. (А4 составляет 842х595 баллов). Вы поняли ...

Теперь у вас будет 3 (и позже: 5) новых PDF-файла без дополнительной растровой графики.

Теперь ваша задача - использовать pdftk (с которым вы, похоже, знакомы) для наложения этих 3 (5) страниц PDF друг на друга.

Пожалуйста, дайте отзыв, если это работает для вас. (И не позволяйте Черной Дыре сбежать :-)).

...