Что: 5c2b1203284c41e99a6af455ce9257821d95dd3d Когда: 2022-01-27 21:05:41+03:00 ------------------------------------------------------------------------ Темы: zsh ------------------------------------------------------------------------ Метаинформация PDF-файлов http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/ps2pdf.zsh Оригинальная ps2pdf команда на самом деле является просто shell обёрткой над Ghostscript-ом, передавая пару опций, типа желаемой версии создаваемого PDF. Я давно уже использую самописный ps2pdf.sh, который старается делать PDF/A документы: типа более надёжные на то что будут везде открыты. Как минимум я хочу чтобы он встраивал шрифты в них, а то уже насмотрелся когда пользователи Windows/Word отправляют PDF-ки, в которых ссылки на отсутствующие шрифты. PDFSETTINGS=/default на удивление делает почти всё что мне надо и не делает того что мне не надо. Дополнительно я указываю чтобы "фильтрация" изображений не применялась -- насколько понимаю, он не будет пытаться что-то пересжимать/перекодировать. Этот же скрипт я использую для "пересжатия" уже имеющихся на руках PDF-ок. На самом деле оно зачастую может увеличить документ, как минимум из-за добавленных шрифтов. Обратил внимание что Ghostscript создаёт свою собственную метаинформацию в файле, хотя и старается брать некоторые поля из оригинального файла. Всякое имя автора, заголовок pdflatext при использовании \usepackage[pdfusetitle]{hyperref} пропишет в результрующий файл. В ps2pdf добавил вызов exiftool для удаления всяких пустых полей, полей содержащих UUID-ы (ну не нравится мне такой род информации), плюс копирую информацию о программе создавшей изначальный PDF. В итоге получается: PDF Version : 1.4 Linearized : No Page Count : 1 XMP Toolkit : Image::ExifTool 12.30 Creator : pdfTeX-1.40.22 Title : Мой титульный лист Producer : GPL Ghostscript 9.25 Conformance : B Part : 1 Create Date : 2022:01:27 21:30:56+03:00 Creator Tool : LaTeX with hyperref Modify Date : 2022:01:27 21:30:56+03:00 Author : Сергей Матвеев Изначально это всё было на pure POSIX shell с вставками Perl-а для выдирания названий полей. Но затем этот скрипт стал ещё одной жертвой моей любви к zsh, с которым внешние утилиты (ну кроме, собственно, gs и exiftool) полностью исчезли и код стал существенно проще. Всё же мне очень нравится zsh уже и как язык скриптования. Знаю что можно написать нечто менее понятное чем на Perl-е, но... так можно везде. Хотя я обнаружил что ExifTool на самом деле ничего не удаляет, а инкрементально дописывает изменения. И только сторонними утилитами можно действительно избавиться от ненужного. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9C%D0%B5%D1%82%D0%B0%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20PDF-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20%285c2b1203284c41e99a6af455ce9257821d95dd3d%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0