ImageMagick преобразует PDF в крошечные изображения, несмотря на настройку параметров плотности и изменения размера

Я использую ImageMagick для преобразования следующего файла PDF в файл PNG: PDF из IMSLP (Постоянная ссылка)

В программе просмотра PDF это выглядит красиво (хотя и требует небольшого масштабирования):

ImageMagick преобразует PDF в крошечные изображения, несмотря на настройку параметров плотности и изменения размера

но при преобразовании с

convert "file.pdf" "/tmp/file.png"

полученное изображение получает чрезвычайно низкое разрешение:

ImageMagick преобразует PDF в крошечные изображения, несмотря на настройку параметров плотности и изменения размера

при добавлении информации о плотности и изменении размера я получаю несколько большие изображения, но все же не исходное разрешение, которое хранится в PDF (конечно, не 300 точек на дюйм)

convert -density "300" -resize "3000x3000>" "file.pdf" "/tmp/file.png"

ImageMagick преобразует PDF в крошечные изображения, несмотря на настройку параметров плотности и изменения размера

При использовании pdfimages Poppler-Utils я получаю соответствующее изображение:

ImageMagick преобразует PDF в крошечные изображения, несмотря на настройку параметров плотности и изменения размера

У меня такой вопрос: есть ли способ заставить ImageMagick извлекать изображения в «правильном» разрешении (как они хранятся в документе PDF)? Другими словами, игнорировать масштаб, необходимый для правильного просмотра PDF, таким образом извлекая правильное разрешение изображения?

Я использую ImageMagick 7.1.0.16 с Ghostscript 9.55.0 внутри образа докера Alpine Linux.

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
Включение UTF-8 в jsPDF с помощью Angular
Включение UTF-8 в jsPDF с помощью Angular
Привет, разработчики, я предполагаю, что вы уже знаете, как экспортировать pdf через jsPDF. Если ответ отрицательный, то вы можете ознакомиться с моей...
0
0
35
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно увеличить плотность намного больше и изменить размер после прочтения ввода в Imagemagick.

Это будет 5800 × 7200 пикселей:

convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] x.png

Это будет 2417 × 3000 пикселей:

convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] -resize "3000x3000>" y.png

Ответ принят как подходящий

Очень необычная структура, она претерпела множество изменений, но мы можем предположить, что некоторые страницы могли быть преобразованы в 300 dpi или 600 dpi, поскольку все они отображаются примерно с одинаковым размером.

Обратите внимание, что графическое dpi является субъективным, это не то значение, которое используется внутри PDF, это пиксели по умолчанию из 72-точечных единиц, которые относятся к графическому рабочему dpi. изображение могло иметь разрешение 75 dpi, но сохранялось с разрешением 300 пикселей на 72 точки.

1st Analysis говорит, что изображения

  • image-0028 = 714 X 900 точек, номинально 600 dpi
  • изображение-0002 = 726 X 900 точек, номинально 600 точек на дюйм
  • изображение-0005 = 674 x 900 точек, номинально 600 точек на дюйм
  • изображение-0008 = 674 x 900 точек, номинально 600 точек на дюйм
  • изображение-0011 = 674 x 900 точек, номинально 600 точек на дюйм
  • изображение-0014 = 674 x 900 точек, номинально 600 точек на дюйм

но все они были уменьшены до различных размеров ок. 1,2 "x 1,5", поэтому, возможно, разумный размер источника, соответствующий всем этим сокращениям, 9,6 x 12 дюймов с небольшим кадрированием.

Таким образом, чтобы получить страницы извлечения ближайшего исходного качества с разрешением 600 dpi (без потерь png лучше всего сохранить эти недостатки jpeg с потерями)

Затем переконвертируйте их в 75 dpi, чтобы получить исходные данные, максимально приближенные к плохому качеству.

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