Автор Тема: pdftk раздувает файлы при их разделении  (Прочитано 2502 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Всем привет!
$ du -b file.pdf
15820146 file.pdf
$ pdftk A=file.pdf cat A1 output 1.pdf$ du -b 1.pdf
15654155 1.pdf
$ pdftk A=file.pdf cat A3-7 output 5.pdf$ du -b 5.pdf
15668428 5.pdf

При этом в файлах 1.pdf и 5.pdf реально по 1 и 5 страниц соответственно.
pdfseparate также раздувает каждую страницу, она всегда практически равна объёму исходного файла.

Куда копать?

p9
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
В p8 с подобными проблемами сталкиваться не приходилось.
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
Куда копать?
В сторону анализа содержимого входного и выходных файлов, вестимо. Примеры файлов покажите.

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

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Примеры файлов покажите.
Документ создан экспортом в PDF из LO 6.1.
Там и текст, и картинки.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Почему тогда при "склеивании" обратно, файл становится больше оригинального ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
Почему тогда при "склеивании" обратно, файл становится больше оригинального ?
Грубо приближённо — потому, что наборы шрифтов из отдельных файлов не объединяются, а так и остаются назначены для каждого объекта, да и самих объектов при объединении становиться больше.
Сделайте и покажите тестовые файлы, тогда посмотрим.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
В p8 с подобными проблемами сталкиваться не приходилось.
Собственно специально проверил, ситуация аналогичная с p9 - именно этот файл тоже раздувает. Я значит раньше имел дела с файлами, состоящими только из картинок, которые формируются сканерами, например. С ними проблем не было.

Хотелось бы заставить нормально работать pdftk с файлами PDF, полученными экспортом из LO.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Сделайте и покажите тестовые файлы, тогда посмотрим.
Готово (см. вложения).
Мой файл несколько больше, но по содержанию схож.
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
Собственно специально проверил, ситуация аналогичная с p9 - именно этот файл тоже раздувает. Я значит раньше имел дела с файлами, состоящими только из картинок, которые формируются сканерами, например. С ними проблем не было.
Картинки изначально больше. Там не так заметно, но при разделении и последующем объединении размер всё равно хоть немного, но больше (если оптимизация не применяется, а она ухудшает качество).

Хотелось бы заставить нормально работать pdftk с файлами PDF, полученными экспортом из LO.
Так это вполне может оказаться нормальной работой.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Хм, мне вот такой вариант с уменьшением объёма нравится:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH  -dQUIET -sOutputFile=new.pdf test.pdfРазобрал свой файл постранично на отдельные файлы, потом прогнал командой выше каждый файл и снова собрал в один файл. Размер увеличился, но не критично. Было - 15820146 байт, стало - 17499675 байт.
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
Готово (см. вложения).
Мой файл несколько больше, но по содержанию схож.
Ну, да. Так и есть. Делил и объединял с помощью pdfseparate, pdfunite. При разделении обе страницы содержат встроенный шрифт TimesNewRomanRSMT. А при последующем объединении выходной файл уже два набора шрифта содержит. И, кстати, две картинки тоже. Похоже при объединении pdf не перестраивается, а тупо в конец новые объекты дописываются. В этом случае может помочь печать в файл pdf из этого файла. Примерно как БД — объекты как бы удалены и игнорируются, но в файле так и остаются. При печати такие объекты убираются.
« Последнее редактирование: 18.11.2019 20:22:26 от stranger573 »

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
Хм, мне вот такой вариант с уменьшением объёма нравится:
Ну так ghostscript же. Вы, кстати, этой командой понизили версию pdf с 1.5 до 1.4, соответственно какие-то объекты из результирующего файла были выброшены.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 241
    • Email
А зачем вам понадобилось делить и потом собирать вместе страницы? Если не секрет. Или вас только размеры смутили?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
Варианты лучше есть ?
У меня просто команда на объединение файлов висит в особых действиях Thunar, можно что-то туда взамен pdftk приделать, чтобы не городить pdftk, а потом ещё и gs ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 009
    • Email
А зачем вам понадобилось делить и потом собирать вместе страницы? Если не секрет. Или вас только размеры смутили?
Ну, заменить часть страниц, например, пересобрать PDF.
В особых действиях висит, удобно, пользователю понятно и легко освоить.
Сноси Винду, переходи на Линукс ! :)