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

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

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

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

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

решение1

Последние версии Ghostscript тоже могут это делать. Просто добавьте параметр -dFILTERIMAGEв свою команду.

Есть еще два новых параметра, которые можно добавить для выборочного удаления типов контента."вектор"и"текст":

  1. -dFILTERIMAGE: создает вывод, в котором удалены все растровые изображения.

  2. -dFILTERTEXT: создает вывод, в котором удалены все текстовые элементы.

  3. -dFILTERVECTOR: создает вывод, в котором удалены все векторные рисунки.

Любые два из этих вариантов можно объединить. (Если объединить все три, то все страницы будут очищены...)

Примеры

Вот скриншот примера страницы 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

cpdf -draft original.pdf -o version_without_images.pdf

Его нет в репозиториях, но вы можете найти его для скачивания (предварительно скомпилированныйилиисточник) наих веб-сайт.


Руководство:

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

Параметр -draft удаляет из файла растровые (фотографические) изображения, чтобы его можно было напечатать с меньшим расходом чернил. При желании можно добавить параметр -boxes, заполняя пустые места перечеркнутым квадратом, обозначающим место, где было изображение. Не гарантируется, что оно будет полностью видимо во всех случаях (растровое изображение может быть частично закрыто векторными объектами или обрезано в оригинале). Например:

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

решение3

В то время как ответ @Rinzwind - этоПравильная вещь, я хотел бы просто прокомментировать "промежуточное" решение. Обычно можно значительно уменьшить размер изображений, используяghostscriptс

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

...иногда это очень удобно для корректуры. Страница руководства по написанию PDF-файловздесь.

решение4

Вы можете использоватьМастер-редактор PDF(для Windows, Linux, macOS):

  1. Открыть PDF-файл
  2. Удалить эти изображения
  3. Сохранить как новый PDF-файл

Вы можете загрузить его из центра программного обеспечения Ubuntu.

Связанный контент