Знайти роздільну здатність зображення у PDF-файлі?


15

У мене є проблема, коли деякі користувачі створюють дуже великі PDF-файли. З іншого боку, у мене є PDF, який надсилається з наших факсимільних апаратів, які насправді мають невеликі розміри та повністю друкуються. Моє запитання

  • Чи я можу знайти дозвіл (DPI) PDF. Я шукав в Інтернеті, не знайшов жодної відповіді. Перевірив властивості файлу, ця інформація там не зберігалася, принаймні в моєму випадку.
  • Яке оптимальне дозвіл перетворення текстового файлу в PDF-зображення. 96dpi, 300dpi або більше?
  • Веселе питання. Чи можу я змінити розмір PDF-файлу, який був відсканований з високою точністю на дюйм, на меншу?

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

Примітка: Мій PDF - це повністю зображення, текст до зображень. Я також знайомий з primoPDF (безкоштовно), з чим можна експериментувати

Відповіді:


18

відповідь і коментар slhck заслуговують на оновлення: pdfimagesзараз (принаймні з версії 0.26.5) чітко перераховані x-ppiта y-ppi. Ось зразок виводу:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

На Debian (Wheezy) та Fedora (23) pdfimagesвходить до складу poppler-utilsпакетів.


Мої всі порожні
theonlygusti

8

Я знаю, що ви не хочете витягувати дані зображення, але це, мабуть, єдиний спосіб дізнатися оригінальну роздільну здатність.


На * Нікс, якщо у вас є ImageMagick - х identifyі Xpdf встановлений 1 :

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

Де test.pdfваш вхідний PDF. Вихідні файли записуються test-000.jpg, test-001.jpgі так далі. Це дасть вам оригінальний розмір усіх вміщених зображень цього PDF 2 .

Приклад виводу для файлу PDF, що містить лише одне велике зображення:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) У Windows теж є такі, але сценарій, звичайно, був би іншим.
2) Зауважте, що зображення насправді не несуть інформацію DPI. Простіше кажучи: це просто те, що використовується для друку та зображень, не потребує притаманної міри DPI.


Яке оптимальне дозвіл перетворення текстового файлу в PDF-зображення. 96dpi, 300dpi або більше?

Як правило, все, що ви хочете надрукувати, має бути 300dpi або більше. Більшість принтерів також буде працювати з більш високою роздільною здатністю.


2
Версія pdfimages (можливо , більш пізній , ніж оригінальний питання) з проекту Poppler додає -list варіанти: pdfimages -list test.pdf. Замість того, щоб виводити файли, у цьому списку розмір та тип зображення. Все ще не дає чіткого рішення, але уникає створення вихідних файлів.
scruss

1
@scruss Починаючи з версії 0.34.0, pdfimages -listнадає чітко x-ppiта y-ppi, як і багато іншої інформації.
Skippy le Grand Gourou

Дійсно, це зараз, @SkippyleGrandGourou: приблизно через п’ять років після того, як було задано питання. pdfimages все ще не застосовує цю роздільну здатність / розмір до зображень, які вона витягує.
scruss

@scruss Насправді, здається, що роздільна здатність pdfimagesможе бути дуже вимкненою (наприклад, коли зображення більше, ніж його видима область, у форматі PDF, створеному автором scribus). (На жаль, я зараз не
встигаю

4

Чомусь остання версія pdfimages, яку я можу оновити у своєму CentOS, - це версія 3.04.

Отже, у мене немає варіанту -list, як зазначено в попередніх відповідях. Однак тестове зображення, створене з pdfimages на основі відповіді slhck, містить бажану відповідь!

ідентифікувати -вербозний тест-0000.jpg | більше

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

Отже, dpi явно відображається на 6-му рядку, використовуючи параметр -verbose в команді ідентифікації.

Отже, відповідь slhck можна змінити на наступне.

pdfimages -j test.pdf тест && для файлу в $ (знайдіть.-ім'я "test * .jpg"); Визначте -verbose "$ file" | awk 'NR == 6'; зроблено

На іншій ноті я спробував бігти

ідентифікувати -вербольний тест.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

Здається, що Imagemagick завжди передбачає 72dpi, тому інформація, надрукована тут, видається невірною.


1

PDF-файл не має властивої роздільної здатності, кожне растрове зображення в ньому (якщо воно є) матиме власну роздільну здатність. Я не знаю простий спосіб витягти єдине число для медіани / модальної роздільної здатності XObjects вбудованого зображення.


До речі, я не зацікавлений у витягуванні даних із зображення у форматі pdf, я просто хочу знати, якою була роздільна здатність сканування, і якщо вона дуже велика, зайве не хотілось би цього уникнути у майбутньому.
hk_

@Dave: Насправді я мав на увазі витягнути інформацію про вбудовані зображення, а не витягнути зображення. Але відповідь slhck може вирішити вашу проблему.
RedGrittyBrick

1

Це працювало з файлом pdf, створеним з mfp Kyocera ... Це, ймовірно, справедливо лише для зображень на повній сторінці, як сканування.

  1. Відкрийте pdf w / Reader-
  2. Файл> Властивості - Вкладка Опис - Розмір сторінки. Мій приклад сказав 8,5x11,0 дюйма.

  3. Відкрийте PDF у текстовому редакторі (блокноті), шукайте /widthта/height

  4. Візьміть висоту і ширину і розділіть їх на висоту і ширину сторінки (в дюймах)

Приклад:

5100/8.5=600
6600/11.0=600

Мій PDF був відсканований у роздільній здатності 600x600.

Перші два кроки можна пропустити, якщо ви знаєте розмір документа (як правило, формат A4 становить 8,27x11,69).


0

Щоб відповісти на вашу другу точку, крім згадки @slhck про принтер dpi, 300dpi - це також типовий мінімальний рекомендований номер для OCR з розміром шрифту 10 + pt.

Крім того, сучасний 15-дюймовий екран 4K ноутбука також має лише близько 280PPi, тому якщо ви хочете переглянути весь А4 на екрані (пейзаж), точкове сканування не перевищує ~ 320 точок на дюйм, тому що будь-який документ, вищий за цей, буде Звичайно, це не має значення, якщо ви плануєте збільшувати масштаб, то вам може знадобитися більш високий dpi.

Щоб відповісти на два ваші інші моменти, зараз принаймні ви можете використовувати Acrobat Pro для перевірки DPI зображення та роздільної здатності, а також ви можете їх редагувати.

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