Як видалити зображення з PDF-файлу


13

У мене досить великий (~ 100 МБ) PDF-документ із великою кількістю зображень (як ілюстрацій та фонових зображень), і я хотів би мати копію цього PDF-файлу без зображень, але я не можу дізнатися, як це зробити зробити це.

Я не говорю про перетворення його лише в текст, я хотів би зберегти абзаци / таблиці / мульти стовпці такими, якими вони є.

Мені зручно в командному рядку і маю кілька комп’ютерів з різними дистрибутивами, якими я можу користуватися.


Оскільки ми говоримо про документ на 500 сторінок з декількома зображеннями на кожній сторінці, я шукаю автоматизований спосіб видалення кожної картини.
Орнукс

Відповіді:


14
cpdf -draft original.pdf -o version_without_images.pdf

Його немає у сховищах, але ви можете знайти завантаження ( попередньо складене або джерело ) на їхньому веб-сайті .


Посібник :

15.1 Проекти документів

Опція -draft видаляє растрові (фотографічні) зображення з файлу, щоб вони могли друкуватися з меншою кількістю чорнила. За бажанням можна додати опцію -boxes, заповнивши пробіли, залишені порожніми, перекресленим полем, що позначає, де було зображення. Це не гарантується, що воно буде повністю видимим у всіх випадках (растрові карти можуть бути частково охоплені векторними об'єктами або обрізані в оригіналі). Наприклад:

 cpdf -draft -boxes in.pdf -o out.pdf

1
Це саме те , що я шукав. Вихідний файл просто ідеальний. Дуже дякую!
Орнукс

@Rinzwind Зверніть увагу, що посилання "їх веб-сайт" насправді переходить до поштового файлу.
Джос

Хм .. для мене він продовжує додавати майже випадкові рядки через і впоперек тексту, а розмір файлу насправді трохи збільшується, а не зменшується.
Геннінг Келер

23

Останні випуски Ghostscript також можуть це зробити. Просто додайте параметр -dFILTERIMAGEдо вашої команди.

Є ще два нові параметри, які можна додати для вибіркового видалення типів вмісту "вектор" та "текст" :

  1. -dFILTERIMAGE: дає вихід, з якого видаляються всі растрові зображення.

  2. -dFILTERTEXT: видає результат, з якого видаляються всі текстові елементи.

  3. -dFILTERVECTOR: дає вихід, з якого видаляються всі векторні малюнки.

Будь-які два з цих варіантів можна комбінувати. (Якщо об’єднати всі 3, ви отримаєте всі сторінки, які будуть заблоковані ...)

Приклади

Ось скріншот із прикладу PDF-сторінки, яка містить усі 3 типи змісту, згаданих вище:

Знімок екрана оригінальної сторінки PDF, що містить елементи "зображення", "вектор" та "текст".
Знімок екрана оригінальної сторінки PDF, що містить елементи "зображення", "вектор" та "текст".


Запуск наступних 6 команд створить усі 6 можливих варіантів залишку вмісту:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

Наведене нижче зображення ілюструє результати:


Верхній рядок, зліва: весь "текст" видалено; всі "зображення" видалено; всі "вектори" видалено. Нижній рядок, зліва: зберігається лише "текст"; зберігаються лише "образи"; зберігаються лише "вектори".
Верхній рядок, зліва: весь "текст" видалено;  всі "зображення" видалено;  всі "вектори" видалено.  Нижній рядок, зліва: зберігається лише "текст";  зберігаються лише "образи";  зберігаються лише "вектори".



2

Хоча відповідь @Rinzwind - це правильна річ , я хотів би просто прокоментувати рішення "на півдорозі". Як правило , ви можете значно зменшити розмір зображення , використовуючи Ghostscript з

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... це колись дуже зручно для коректури. Сторінка посібника з написання PDF-документації знаходиться тут .


@KurtPfeifle /screen(серед іншого) встановить роздільну здатність зображення для растрових зображень 72dpi. Так що так, якщо у вас є зображення на меншій DPI, це може збільшити розмір файлу. Це причина, чому я вживав слово «нормально» (у значенні «не завжди, але досить часто»). Не соромтеся звертати увагу на все, що завгодно.
Рмано

Виконайте наступну команду: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Він створить два текстових файли, які можна порівняти за допомогою sdiff -sbB $[file1}.txt ${file2}.txt. Тепер ви точно і повністю знаєте всі різні настройки, запроваджені компанією -dPDFSETTINGS=/screen!
Курт Пфайфл

Зроблено. Досі не вдається побачити, який варіант може дати більший файл, /screenніж у /default--- 72dpi проти 150dpi, оптимізовано, відкинути попередній перегляд EPS ... але ей, не велика проблема. Люди перевірять і вибирають краще рішення.
Рмано

Вибачте - можливо, мені доведеться зараз вибачитися за дотепність моєї 1-ї заяви. Якщо чесно, я, мабуть, пам’ятаю свої попередні розслідування (кілька років тому), які /screenдали дуже погані результати. Можливо, моя пам'ять виходить з ладу, або я її змішав /epub. Команда, яку я вам дала, була з пам’яті, бо я був повністю впевнений, що вона покаже, що я маю на увазі. Тепер я повторно запустив його, я вже не бачу, чого я очікував: більш розширені тести, які я робив кілька років тому. Тоді багато (CID? / CFF?) Шрифтів отримали розміри розширеного здуття в результаті PDF-файлів. Я мушу заново відвідати цю проблему ще раз, коли в мене
з’явиться

0

Ви можете використовувати головний редактор pdf, видалити ці зображення та зберегти як новий pdf-файл. Ви можете завантажити його з програмного центру Ubuntu.


Я щойно встановив його, щоб спробувати, але не бачу автоматизованого способу зробити це. Зважаючи на те, що це документ на 500 сторінок, я не бачу тут видалення вручну як рішення. Я щось пропустив?
Орнукс

ні, ви нічого не пропустили, я думав, що зображення великого розміру, тому ви хочете їх видалити, ніколи не думали про так багато зображень. все одно приємне питання.
Суджер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.