Масштабируйте изображение на странице, добавляя поля в PDF с помощью Ghostscript
Мой клиент хочет, чтобы я добавил дополнительную информацию в правую и верхнюю границу на их одной странице PDF. Файл содержит изображение товара с мерами и другую информацию. Мне нужно масштабировать содержимое страницы так, чтобы было видно, что справа / вверху поля будут добавлены дополнительные данные. Я поигрался с Ghostscript в Windows, но пока либо изображение обрезается, либо ничего не происходит: gswin32c -sOutputFile=scaled2.pdf -dBATCH -dNOPAUSE -dDEVICEHEIGHTPOINTS=312 -dDEVICEWIDTHPOINTS=421 -dFIXEDMEDIADDDDDFDDDDWD c "<> setpagedevice" -f 255x195x175mm_EB_Fefco0427_FSN1013.pdf
Так как я обычно не работаю с PDF-файлами, то я здесь вне себя.
Мне нужно изображение в формате PDF, уменьшенное в размере и расположенное в правом нижнем углу. Размер PDF должен быть одинаковым.
Любое другое решение, которое работает в Windows и может быть обработано из командной строки, также в порядке.
1 ответ
Вы можете посмотреть код, представленный в моем ответе здесь. Это показывает, как изменить масштаб содержимого файла PDF с другим размером носителя и как переместить масштабированное содержимое на номинальный выходной носитель.
Я довольно удивлен, что -c "<>setpagedevice" -f
не просто выдает ошибку, так как это недопустимый PostScript.
[редактировать]
Итак, вам нужно сделать два прохода или самостоятельно рассчитать масштаб.
В двухпроходной модели вы сначала применяете масштабирование, в результате чего вы получите PDF-файл, содержимое которого по-прежнему заполняет страницу, но размер страницы был изменен до меньших размеров. Затем вы запускаете его с переводом и желаемым конечным размером носителя, но не устанавливаете FitPage.
Чтобы выполнить масштабирование самостоятельно, вам нужно добавить масштаб в команду BeginPage вместо того, чтобы Ghostscript делал это за вас. Это означает, что вам придется самостоятельно рассчитывать масштабные коэффициенты.
Параметр для оператора setpagedevice будет выглядеть примерно так:
<</BeginPage {0.5 0.5 scale 200 0 translate}>> setpagedevice
Это уменьшит содержимое на 50% в каждом направлении и сместит начало координат на 100 пунктов вправо. Очевидно, что значения перевода будут зависеть от масштабного коэффициента и размера исходного и масштабированного носителя. Я бы попробовал это проверить, но вы не предоставили пример файла PDF для тестирования.