Как аннотировать PS или PDF из командной строки (Linux) без потери качества?

StackOverflow https://stackoverflow.com/questions/8365597

Вопрос

Есть ли какой -либо инструмент командной строки для 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...").

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top