Как я могу объединить файлы PDF, не копируя шрифты?

Я должен объединить о 100 PDF файлы в тот, где каждый файл использует более или менее те же шрифты неиз подмножества. Все опции я попробовал до сих пор (pdfunite, gs, и т.д.), не интеллектуальны о дублировании шрифта, и объединенный PDF заканчивается с 100 копии того же шрифта и поэтому намного больше, чем это должно быть.

Есть ли способ сделать любое из следующего:

  1. Объединить PDFs, не копируя шрифты?
  2. Дедуплицировать шрифты в PDF позже?
  3. Удалить шрифты из PDF полностью?

Идеальное решение будет иметь коммерческую дружественную лицензию Open Source (например, не APGL).

1
задан 31 December 2018 в 22:53

1 ответ

Вопреки тому, что Вы говорите, последние версии Ghostscript стали довольно эффективными когда дело доходит до слияния нескольких PDFs в единственный, и в то же время стараясь не встраивать идентичный шрифт многократно.

Исходные данные

Вот детали, приблизительно 3 вводят PDFs, который я объединю в единственный вывод:

for i in {1..3}; do pdffonts ${i}.pdf ; echo ; done

 name                       type              encoding         emb sub uni object ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica                  Type 1C           WinAnsi          yes no  no       8  0

 name                       type              encoding         emb sub uni object ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica                  Type 1C           WinAnsi          yes no  no       8  0

 name                       type              encoding         emb sub uni object ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica                  Type 1C           WinAnsi          yes no  no       8  0

Слияние

Теперь объедините эти три входных файла PDF с помощью pdftk.

pdftk 1.pdf 2.pdf 3.pdf cat output merged.pdf

Вывод

Теперь проверьте состояние шрифта вывода merged.pdf:

pdffonts merged.pdf

 name                       type              encoding         emb sub uni object ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica                  Type 1C           WinAnsi          yes no  no       5  0
 Helvetica                  Type 1C           WinAnsi          yes no  no      14  0
 Helvetica                  Type 1C           WinAnsi          yes no  no      23  0

Хорошо, еще там...

Оптимизируйте с Ghostscript

gs -o optim.pdf -sDEVICE=pdfwrite merged.pdf 

 GPL Ghostscript GIT PRERELEASE 9.27 (2018-11-20)
 Copyright (C) 2018 Artifex Software, Inc.  All rights reserved.
 This software comes with NO WARRANTY: see the file PUBLIC for details.
 Processing pages 1 through 3.
 Page 1
 Page 2
 Page 3

Проверьте состояния шрифта и размеры файла

ls -lh {1..3}.pdf merged.pdf optim.pdf 

 -rw-r--r--  1 kurtpfeifle  staff    51K Dec 31 20:25 1.pdf
 -rw-r--r--  1 kurtpfeifle  staff    51K Dec 31 20:25 2.pdf
 -rw-r--r--  1 kurtpfeifle  staff    51K Dec 31 20:25 3.pdf
 -rw-r--r--  1 kurtpfeifle  staff   147K Dec 31 20:32 merged.pdf
 -rw-r--r--  1 kurtpfeifle  staff   7.5K Dec 31 20:34 optim.pdf

Заключение

Я протестировал это с Ghostscript v9.25.

Если это не будет работать на Вас, то Вы должны будете...

  1. ... скажите нам версию Ghostscript, который Вы используете;
  2. ... предоставьте ссылку на (часть из) Ваш вход PDFs для более подробного анализа.

Я знаю, что этот ответ не предоставляет Вам решение, которое встречает точно Ваши лицензионные требования. - Но Ваш ложный оператор о Ghostscript предложил мне давать этот ответ так или иначе, таким образом, другие люди, заинтересованные этой темой, могут все еще извлечь выгоду из него...

0
ответ дан 7 December 2019 в 22:40

Другие вопросы по тегам:

Похожие вопросы: