Как я могу сжать мой PDF (две страницы) до менее чем 100 кБ?

У меня есть PDF файл, который я хочу сжать до менее чем 100 кБ. Он имеет сканирование двух страниц, которые я отсканировал с моего мобильного сканера. После сканирования это 338 кБ (с минимальным качеством для просмотра страниц). В основном я хочу загрузить этот файл на правительственный портал, который позволяет загрузить максимум 100 кБ всего в одном файле. Это моя основная цель. Ниже приведены методы, которые я попробовал сейчас, и он не выполнил нужную задачу:

  • используя простую обертку вокруг Ghostscript для сжатия PDF файлов "./shrinkpdf.sh in.pdf out.pdf xx". Я установил xx на 90 и это дает мне 282 кБ. Ниже значения 90 текст в PDF-документе не виден четко, и я уверен, что мое приложение будет отклонено тогда.

  • Я также попробовал "gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=setputFile=output.pdf input.pdf" с установочным значением как /screen, которое я считаю минимальным и дает мне 232 кБ и текст достаточно хорошо виден.

  • Я также пытался преобразовать его в JPEG, используя метод "pdftoppm" типа - "pdftoppm compressed.pdf jpeg -r 75 -jpeg", который дает мне 141 кБ для 1 страницы и 128 кБ для 2-й страницы. Я не уверен, как я получу эти два JPEG-файла, чтобы загрузить как один файл, но я думаю, что моя главная цель должна быть сейчас, чтобы получить его менее 100 кБ в первую очередь?

Я использую Ubuntu 20.04.2.

9
задан 11 April 2021 в 02:03

6 ответов

Как указал здешний приятный парень: https://serverfault.com/questions/1059919/cannot-stop-screen-started-with-systemctl-start/1059923#1059923

Нужно установить

KillMode=control-group.

и могут ли они пропустить

#ExecStop=/usr/bin/screen -r "minecraft-server" -X quit

, поскольку экран распространяет SIGTERM на jvm

-121--914008-

У меня была та же проблема на двух серверах веб-хостинга. Обычная конфигурация сети dhcp4. Сегментирование при создании конфигурации и т.д. Что-то было странным с обновлением netplan.io 0.101. Исправлено путем установки вручную обновления 0.102, которое находится в предложении. https://www.ubuntuupdates.org/package/core/focal/main/proposed/netplan.io https://www.ubuntuupdates.org/package/core/focal/main/proposed/libnetplan0 Я запустил сеть с dhclient, загрузил libnetplan0 и netplan.io и установил ее через dpkg. netplan try/netplan apply работает после

-121--913991-

Ниже 90 значения текст в pdf не виден ясно, и я уверен, что моя заявка будет отклонена.

Это отсканированный документ. Это означает, что это не текст, а изображение страницы. PDF поддерживает несколько схем сжатия изображений, в том числе без потерь, но качество и ухудшение предполагают, что вы используете JPEG.

Это, вероятно, наиболее эффективный способ его хранения.

Вы хотите сохранить две страницы в < 100kB. Это 50kB на страницу. Это высокий порядок - но, вероятно, возможно.

Я бы экспортировал страницы как JPG и играть с настройками качества и разрешения, пока вы не получите ваш результат:

convert file.pdf file.jpg

Это даст вам файл-0,jpg и файл-1.jpg для страницы 1 и две соответственно.

Теперь мы можем попытаться уменьшить разрешение страниц:

mogrify -resize 600x700 -quality 45 file-0.jpg

Этой мерой мне удалось получить A4 страницу вниз до 28kB. Это разборчиво, но не очень ясно:

Unclear image

Чтобы преобразовать ваши файлы обратно в PDF после игры с ними, чтобы уменьшить размер, запустите

convert file-?.jpg file.pdf

Помимо могрифии для изменения файлов, вы можете использовать такие инструменты, как gimp.

24
ответ дан 23 April 2021 в 23:24

Док-станция Ubuntu не допускает этого в GNOME (может отличаться для различных сред рабочего стола). Док-станция Ubuntu основана на расширении Dash to Dock , и это расширение также не допускает этого.

Но это можно решить с помощью другой опции: Dash to Panel . Он предоставляет гораздо больше возможностей, чем Dash to Dock. Это немного отличается от рабочего процесса, так как док-станция и верхняя панель объединены в одно целое, но это делает то, что задано в вопросе.

Установить Dash to Panel можно следующим образом:

  • Перейдите к настройкам внутреннего абонента в разделе «Сдвиги» и щелкните на закладке Behavior . Последний параметр - Разгруппировать приложения . Убедитесь, что это ON. Вы также можете щелкнуть дополнительные настройки в Разгруппировать приложения .

  • Также посмотрите на Показать предварительный просмотр окна при наведении на той же вкладке. Этот параметр позволяет просмотреть предварительный просмотр программы перед щелчком по ней.

-121--913968-

Это связано с тем, что Canonical отключил SMB1 по соображениям безопасности. SMB2/SMB3 все еще работает. Команда

smbtree также больше не работает.

Либо...

Используйте//server/pathname или//IP/pathname при использовании Connect to Server или/etc/fstab

или

Edit/etc/samba/smb.conf и добавьте его в раздел Network, а затем перезапустите smbd и nmbd...

# allow SMB1
client min protocol = NT1
server min protocol = NT1
name resolve order = bcast host lmhosts wins

Используйте команду testparm для подтверждения правильности файла smb.conf.

-121--913935-

Наиболее вероятным способом является сканирование в черно-белом (два цвета, а не в градациях серого). Форма для правительственного учреждения вряд ли будет нуждаться в полноцвете или градациях серого.

Достойный сканер выберет вариант сжатия, отличный от jpeg для черно-белых изображений, который приведет к гораздо меньшему размеру файлов.

Если этого недостаточно, то сжатие изображений bw вручную с помощью jbig2 может привести к еще меньшему количеству файлов, хотя экономия может привести только к увеличению количества документов с большим количеством страниц.

6
ответ дан 23 April 2021 в 23:24

Возможные решения , как предложено в ссылках. ЯММВ.

  1. Попробуйте ( ref ):

     $ modprobe -r igb
    $ сон 1
    $ modprobe igb
    $ сон 1
    $ systemctl перезапустить сеть
    
  2. Проблема может быть связана с драйвером, в зависимости от версии ядра. Поэтому можно попробовать обновить ядро (в настоящее время доступно 5.8.0 и даже 5.11.0, если установить его вручную). Если вы по какой-либо причине не можете использовать эти новые ядра, по крайней мере это поможет вам с диагнозом.

  3. Очевидно, использование старых ядер также может избавиться от проблемы. Я не нашел никакой конкретной информации о том, какой переход ввел проблему, но не трудно попробовать также с более ранними ядрами, по крайней мере, для диагностики проблемы.

Предложения , чтобы увеличить ваши шансы получить помощь и решить проблему:

  1. Опубликовать некоторые контекстные строки о ... Потеряна ссылка PCIe .

  2. Всякий раз, когда вы отправляете выходные данные команды, отправляйте точную команду, которая использовалась для ее создания.

  3. Укажите, где вы использовали pcie _ aspm = off .

  4. Опубликуйте выходные данные или результат каждого конкретного предложенного решения (или, если вы его не пробовали, хотя бы укажите причину, чтобы другие знали).

  5. Обновите вопрос с помощью добавленной информации, вместо того чтобы размещать его в комментариях. И слегка реорганизоваться, если это улучшит читаемость.

Связанные

  1. https://community.ipfire.org/t/intermittent-problem-with-intel-igb-driver-and-quad-port-i211-gigabit-card/4001 ("... Единственный способ исправить его, без перезагрузки, - перезагрузить модуль ядра igb и перезапустить все сети IPFire! ").
-121--914313-

Попробуйте установить libxml2-dev . Затем вы найдете заголовочные файлы в: /usr/include/libxml2/libxml/.

Я проверил это (без установки), установив программу apt-file . Затем я сделал: sudo apt-file update; sudo apt-file show libxml2-dev .

-121--913835-

Это настройки сканера.

Вы сканируете документы, как фотографии. По фотостандартам, текст - это много сложных и нюансированных деталей, которые занимают много места для места хранения.

Сканируемые страницы являются монохромными, черно-белыми, чернилами или отсутствуют. Монохромное сканирование прекрасно читаемо при 75 DPI (3 пикселя на мм), но давайте перейдем к стандартному формату факса, 100 DPI (4px на мм).

При этом разрешении на всем листе бумаги менее миллиона пикселей. 1 бит на пиксель, поэтому 125 кб необработанный . Две страницы являются необработанными по 250 КБ.

Теперь все, что вам нужно, это скромно грамотное сжатие, отмечая, что белые области страницы будут сжиматься практически до нуля. На данный момент это находится в диапазоне сжатия без потерь, чтобы получить менее 100 КБ.

Если на странице имеются затененные области, сообщите программному обеспечению сканера не «сглаживание». Дизеринг использует случайный образец вкл/выкл пикселов для аппроксимации оттенков серого. Этот шум рандомизирован (является энтропией),поэтому очень трудно сжиматься и занимает много места без уважительной причины.

В зависимости от содержимого ваших форм (которое я не знаю), они могут сжиматься до намного лучше, чем 100k. Если это так, вы можете получить возможность уйти с более высоким разрешением, поэтому переделать его на 150 dpi (6 px/mm) и посмотреть, если это делает. Не используйте программное обеспечение для понижения резолюций, если оно не кратно. (от 300 до 150 точек на дюйм в порядке... От 200 до 100 точек на дюйм плохо) .

600 dpi - хороший «универсальный донор», поскольку он понижается до 200, 150, 120 или 100.

1
ответ дан 23 April 2021 в 23:24

После множества экспериментов с этим я обнаружил, что самый простой способ - загрузить PDF-файл в LibreOffice Writer (это может занять некоторое время и потреблять память с большими PDF-файлами, поэтому закройте ненужные приложения). После загрузки «Экспорт в PDF ...» установите сжатие jpeg на 50% и разрешение изображения на 150 точек на дюйм - вы можете поиграть с настройками сжатия и точек на дюйм, которые вам подходят. Майк

1
ответ дан 23 April 2021 в 23:24

Поскольку отсканированный документ с оптимизацией размера файла, вероятно, будет черно-белым, .pbm - это монохромный растровый формат, который кажется идеальным для этого, и вы может скрыть это обратно в png для встраивания в pdf.

Использование образца документа 1 (постоянная ссылка на изображение: https://i.imgur.com/Ak2kVGD.jpg )

Original Document

Его размер 1751x2451 jpg скан документа размером 1,71 МБ, черно-белый с синими вставками

convert document_scanner_sample_scan_00_zoom.jpg -resize 1000 intermediate.pbm
convert intermediate.pbm page1.png # 1000x1436, 46kb

page1.png выглядит вполне презентабельно для 46kb ( https://i.imgur.com/gYwtipQ.png )

Optimized Document

Как указано в комментариях, png необходимо перекодировать, чтобы встроить в pdf. convert по умолчанию использует формат сжатия pdf / FlateDecode ( convert page1.png page1.pdf ) и итоговый PDF-файл составляет 67 КБ. Вместо этого используйте формат / CCITTFaxDecode , предназначенный для монохромных изображений, чтобы уменьшить его до 57 КБ.

convert page1.png -alpha off -monochrome -compress fax page1.pdf

См. Сопоставление параметров командной строки с форматом сжатия pdf в документации по магии изображений: https: //legacy.imagemagick.org/Usage/formats/#pdf_compression

Документацию по фильтрам сжатия PDF см. в разделе 7.4 справочника по PDF (версия 1.7). Введение представлено в разделе 7.4.1, Таблица 6.

https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf


1. Исходный образец документа можно найти здесь:

https://s1-www.scan2docx.com/img/samples/document_scanner_sample_scan_00_zoom.jpg

13
ответ дан 23 April 2021 в 23:24

Спасибо всем за помощь! Спасибо @vidarlo! Ваше предложение и идеи действительно помогли мне пройти через это, а также немного удачи помогло. Я отмечу ваш вклад как решение, поскольку он действительно помогает в этой задаче.

Мне повезло, что правительственный сайт позволил нам загрузить два файла по 100 Кб каждый отдельно. Об этом нигде не упоминалось! Он показывает только второе диалоговое окно в сообщении сайта, загружающем одну страницу. Что!

Итак, теперь идея заключалась в том, чтобы сжать каждую страницу до размера менее 100 КБ. Я решил сканировать каждую страницу отдельно:

Page 1 144kb.pdf и Page 2 165kb.pdf

Я обнаружил, что (по крайней мере для моего документа) convert file.pdf file.jpg выполняет меньше, чем pdftoppm file.pdf jpeg -r 75 -jpeg .Я не уверен, почему, но результат convert дал мне 258kb.jpg для первой страницы (144kb.pdf), а из pdftoppm он дал мне 130,6kb .jpg для той же страницы, но более красивый файл jpeg! Я решил продолжить.

pdftoppm 144kb.pdf jpeg -r 75 -jpeg  --> 130.6kb.jpg
pdftoppm 165kb.pdf jpeg -r 75 -jpeg  --> 134.4kb.jpg

Затем, как предложил @vidarlo, я попробовал mogrify, но без опции изменения размера, поэтому mogrify -quality 50 page1.jpg и page2.jpg дали мне 91 КБ и 96 КБ для двух файлов! 45 действительно немного размывает, а> 50 увеличивает размер файла до> 100 КБ.

На всякий случай при попытке конвертировать file.pdf file.jpg я получил ошибку ниже -

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert-im6.q16: no images defined `file.jpg' @ error/convert.c/ConvertImageCommand/3258.

Для этого я изменил файл policy.xml , расположенный в / etc / ImageMagick-6 . У меня была строка , добавленная перед , которая ранее не была установлена (права). Это решение обошло эту ошибку.

Также у меня возникла проблема с изменением этого файла policy.xml , и он открывался в режиме только для чтения (хотя я вошел в систему как администратор). Для этого я использовал gedit admin: ///etc/ImageMagick-6/policy.xml из терминала, чтобы сделать файл доступным для записи.

За это я должен поблагодарить их,

Еще раз большое вам спасибо!

7
ответ дан 23 April 2021 в 23:24

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

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