[О блоге]
[наверх]
[пред]
[2022-01-27 21:05:41+03:00]
[5c2b1203284c41e99a6af455ce9257821d95dd3d]
Темы: [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 на самом деле ничего не удаляет, а
инкрементально дописывает изменения. И только сторонними утилитами можно
действительно избавиться от ненужного.
[оставить комментарий]