Витяг вбудованих зображень з PDF


165

Перш ніж почати користуватися Ubuntu, я використовував Nitro PDF Reader для автоматичного вилучення зображень з PDF-файлів. Чи є PDF-зчитувач для Linux, який робить це?

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


Чи можете ви пригадати, наскільки добре NitroPDF може виконати векторні зображення? Чи можна pdfimagesзробити це краще / гірше ніж NitroPDF?
Лео Леопольд Герц 준영


2
@ funky-future Очевидно, що два запитання - це дублікати, але ваша дублікатна ціль має лише дві відповіді, і одна з цих двох відповідей - це спам-відповідь, тому напрямок дублювання слід змінити, щоб уберегти це питання від удару молотком.
карел

Відповіді:


197

Використовуйте pdfimages

pdfimages це інструмент для вилучення зображень у форматі PDF, який зберігає зображення у форматі PDF у форматі файлів PPM, PBM, JPEG або JPEG 2000.

Це частина poppler-utilsпакету, яку вам потрібно буде встановити.

Використання: pdfimages [options] <PDF-file> <image-root>

Приклад: Наступне витягує всі зображення з PDF-файлу, зберігаючи їх у форматі JPEG.

pdfimages -j in.pdf /tmp/out

Збереже зображення з PDF-файлу in.pdfу файлах /tmp/out-000.jpg(або /tmp/out-000.pbm; див. Нижче) /tmp/out-001.jpgтощо.


Сторінка людини pdfimages пояснює:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.

8
Було б непогано мати рішення, яке витягує зображення у рідному форматі. Повторне кодування JPEG насправді не є ідеальним.
Крістіан

32
@Christian з man сторінки-all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
wil93

2
Зверніть увагу, що -allкомутатор підтримується лише в останніх редакціях poppler-utils. Наприклад, якщо ви все ще перебуваєте на 12.04, ви не зможете отримати доступ до цієї опції
Glutanimate

1
Якщо ви не можете скористатися, -allперейдіть для форматів PNM. Вони без втрат, і ви можете після обробки зображень, наприклад, в PNG.
Томаш Гандор

1
@Christian, використовуйте $ pdfimages -list <PDF-file>для перевірки вихідного формату в стовпці "enc", тому вам не доведеться перекодувати зображення в інший формат.
Хосе Баракат

24

Для цього я часто використовую Inkscape. Завантажте сторінку та видаліть усі інші речі. Перевага полягає в тому, що ви можете отримувати векторні зображення у SVG та змінювати їх за своїм бажанням.


Деякі PDF-файли можуть бути належним чином імпортовані лише за допомогою внутрішнього імпорту Inkscape (імпорт poppler / cairo або pdfimage не може їх правильно розібрати). Після імпортування скопіюйте та вставте зображення у новий файл та змініть розмір сторінки до вибору graphicsdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf

Немає проблем для мене, це було найкращим рішенням, зауважте, що ви повинні вибрати одну сторінку за один раз!
Джиммі Олано

5

У мене є PDF-файл із двома стовпцями із вбудованими зображеннями, створеними за допомогою LaTeX, де оригінальні зображення надавались у вигляді EPS. Я спробував запропоноване рішення на основі pdfimages, але, на жаль, воно не повернуло жодних зображень. Тоді я спробував використати Inkscape, але створені ним SVG-зображення були спотворені, і мені не пощастило експортувати їх як EPS.

Програмне забезпечення, яке працювало для нас, було MasterPdfEditor .

Ось процедура

  • Відкрийте файл за допомогою головного редактора PDF
  • За допомогою інструмента редагування (Alt + 1) виберіть зображення, яке потрібно витягти
  • Скопіюйте фігуру (Ctrl + C)
  • Клацніть навколишню пунктирну рамку навколо зображення та перевірте праву бічну панель (Object Inspector) та натисніть на "Geomerty". Там ви можете побачити розмір вашого вибору
  • Створіть новий файл (Ctrl + N). Він запропонує вказати розмір сторінки. Вкажіть точний розмір зображення та створіть новий файл
  • Тепер це трохи хитро: вставити зображення (Ctrl + V). Зображення може не відображатися в новому файлі. Використовуйте стрілки для переміщення, поки ви не зможете простежити його.
  • За допомогою стрілок центрируйте зображення на новій сторінці
  • Зберегти як PDF

Результат дуже високої якості, але програмне забезпечення не є безкоштовним. Існує демо-версія, яка "дозволяє спробувати всі функції", але поставляється з "додаванням водяного знака у вихідний файл". Якщо чесно, я не помітив жодного водяного знаку у створеному PDF.


Це Ask Ubuntu ... Нам тут подобається відкритий код, і ваше рішення є комерційним рішенням із закритим кодом ... Наскільки це краще, ніж вже схвалені відповіді? (-1 середній час)
Fabby

3
@Fabby Дякую за відгук. Я про це не знав. Чи існує таке правило на askubuntu.com? Однак, як тільки ви відкриєте програмний центр Ubuntu , ви отримуєте пропозиції щодо невільних програм.
Pantelis Sopasakis

Ні, немає "правила", і саме тому я не голосував за видалення цієї відповіді, але є кращі інструменти, які є безкоштовними (як у вільному пиві та вільній мові), тому це лише думка.
Fabby

1
+1. Я використовував командний рядок ImageMagick, але це цікаве рішення для тих, хто шукає графічний інтерфейс.
rpmcruz

2
Це працює для деяких людей, це досить добре. Не будьте нацистом .... Я не знаю, хто ми "ми". Ви можете говорити тільки для себе. +1 для відповіді
sdaffa23fdsf

4

Ви також можете спробувати pdfmod. Це графічний інтерфейс (графічний інтерфейс), який може витягувати зображення та виконувати інші основні PDF-маніпуляції.


Гм, здається мені трохи баггі. Вклали PDF з переважно фіолетовими зображеннями та отримали зеленуваті зображення.
DBX12

2

Якщо вам потрібне обрізане зображення у форматі pdf / eps, витягніть сторінку із зображенням, використовуючи pdfmod(як це запропонував To Do).

Тоді, використовуючи, pdfcropви можете обрізати його належним чином, встановивши поля шляхом спроб та помилок:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf

1

Я використовую pdfimages, який є інструментом командного рядка, і він чудово працює для мене. Це дуже простий у використанні, і ви можете використовувати --help варіант, щоб дізнатися більше про його використання. Я використовую Ubuntu, і він попередньо встановлений. Якщо ваші pdf-файли зашифровані або захищені паролем, є варіанти для цього, тому цей інструмент чудово працює. Більше про pdfimages ви можете прочитати тут


4
Будь ласка, прочитайте інші відповіді, перш ніж публікувати свої. Зауважте, є й інші, що висвітлюють це.
edwin

Гаразд, вибачте :) Я подумав опублікувати шахту, оскільки вона містить деяку інформацію про захищені паролем PDF-файли, і я пояснюю, що цей інструмент має ці параметри, плюс я опублікував посилання, яке є підручником щодо цього інструменту.
jetbird13

Якщо ви здобудете достатньо репутації, ви можете коментувати відповіді інших людей або підтримувати їх.
Едвін

1

За допомогою pdf-зображень витягнуте зображення може складатися з двох або більше частин. Простий спосіб з’єднати їх знову, не турбуючись про видобуті формати, - імпортувати деталі у LibreOffice Draw, обрізати діалог обрізання зображень, розташувати частини, налаштувати розмір сторінки та експортувати в будь-якому форматі, який ви бажаєте.


1

Якщо ви хочете обрізати зображення з pdf за допомогою pdfviewer, можете спробувати okular. Він може обрізати що завгодно (тексти чи зображення) у форматі png чи jpeg. Якщо ви бажаєте витягти зображення у форматі png з pdf, ви можете зробити це за допомогою мінімальної команди з pdftohtml. Він перетворює pdf в HTML плюс зображення. Тут ви можете знайти приклад - https://www.youtube.com/watch?v=CG1rf7k3xo8 . Якщо ви хочете витягти багато зображень із PDF, пропоную спробувати це.


0

Використовуване програмне забезпечення: Xreader OS: Antergos

Кроки:

  1. Відкрити PDF
  2. Клацніть правою кнопкою миші на зображенні
  3. Виберіть Зберегти зображення як ..
  4. Ім'я та розширення вхідного файлу.
  5. Зберегти.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.