Как аннотировать PS или PDF из командной строки (Linux) без потери качества?
-
27-10-2019 - |
Вопрос
Есть ли какой -либо инструмент командной строки для Linux, который позволит мне аннотировать файл PS или PDF с текстом или конкретным шрифтом, цветом и размером без потери качества? Я попробовал обратить ImageMagick, и полученный PDF довольно низкого качества.
У меня есть шаблон, изначально написанный в Adobe Illustrator, и я хотел бы генерировать PDF -файлы с именами в определенных местах. У меня огромный список имен, поэтому я хотел бы сделать это в партии (не интерактивно).
Если у кого -то есть идеи, я бы признателен услышать их. Спасибо, Карл
Решение
Я думаю, что лучше создать форму PDF и заполнить ее pdftk fill_form в партии:
$ pdftk form.pdf fill_form data.fdf output out.pdf flatten
Данные формы должны быть в Формирует формат данных (Это просто XML -файл с указанными именами поля и значениями).
Обратите внимание flatten
командование Требуется преобразовать заполненную форму в простой документ.
Другим способом является создание набора документов PDF «с именами в определенных местах» и прозрачным фоном, и PDFTK MACK каждый из них за шаблоном:
$ pdftk template.pdf stamp words.pdf output out.pdf
Другие советы
Еще один способ сделать это - взломать сам файл PostScript. Раньше было то, что файлы ИИ мы Файлы PostScript, и вы можете изменить их напрямую; Я не знаю, правда ли это. Таким образом, вам, возможно, придется экспортировать его.
Для простоты я предполагаю, что есть одна страница. Следовательно, в самом конце будет один вызов showpage
(Возможно, через другое имя). Любые команды рисунка, выполненные до ShowPage, будут отображаться на странице.
Вам может потребоваться повторнонилизация графического состояния (initgraphics
), как и остальная часть документа, возможно, оставила все это смешным, ожидая, что показываемая страница, прежде чем кто -либо заметит.
Чтобы разместить текст, вам необходимо установить новый шрифт (старый был признан недействительным путем initGraphics) измерение местоположения в точках (72 балла/дюйм, 28,3465 баллов/см).
/Palatino-Roman 17 selectfont %so much prettier than Times
x y moveto
(new text) show
Чтобы выполнить слияние, вы можете использовать Perl: испускайте начало документа в качестве здесь документа, построить некоторые линии написания текста по программе, излучать хвост документа. Вот пример генерирование PostScript с Perl
Или вы можете взять данные из командной линии (с GhostScript), используя --
вариант ($gs -q -- program.ps arg1 arg2 ... argn
) Эти аргументы доступны для программы через массив с именем /аргументами.
Итак, скажем, у вас есть хороший график страшного клоуна, держащего пустой знак шириной около 1 дюйма, 3 дюйма в высоту, верхний левый угол на 4 дюйма слева, 4 дюйма от дна. Вы можете вставить этот код в программу PS, незадолго до showpage
.
initgraphics
/Palatino-Roman 12 selectfont
4 72 mul 4 72 mul moveto
ARGUMENTS {
gsave show grestore 0 -14 rmoveto
} forall
Теперь вы можете заставить его сказать смешные вещи ($gs -- clown.ps "On a dark," "and stormy night..."
).