Вот PNG, сделанный из вашего одностраничного образца PDF-файла:
При просмотре в любом средстве просмотра PDF ширина страницы больше высоты.
Это именно то, что должно быть.
[...] похоже, что все приложения PDF, которые я пробовал, ошибочно принимают ширину за высоту и высоту за высоту ширина этого PDF-файла.
Как вы сказали, это только кажется таким.
Файл PDF поврежден?
Нет, не работает.
Вы пропустили одну информацию, которую вам дала ваша первая команда ( pdfinfo
):
Page rot: 90
Это означает, что исходный код PDF внутри файла PDF говорит зрителю принять это «Это действительно выше чем широкая " -страница и отображать ее с поворотом на 90 градусов.
Таким образом, «при просмотре в любом средстве просмотра PDF ширина страницы больше, чем высота» . Как и положено. См. Мой Нет. 1 выше. А мой Нет. 2 выше.
Вы можете использовать pdfimages
для извлечения всех изображений, а затем ImageMagick convert
, чтобы преобразовать их, которые выходят как PNM или PBM, в JPEG:
pdfimages -j test.pdf test-
for i in *.pbm ; do \
convert $i ${i/.pbm/.jpg} ; \
done
Это приводит к восьми различным images, те, которые имеют нумерацию 0-7 в вашей команде pdfimages -list
из вашего вопроса ( '2.' ).
Вот эти изображения. Все они масштабируются до 25% от исходного размера, поэтому не тратится слишком много места.Все они отображаются в «естественной» ориентации, так как извлечены из изображений в формате pdf
. Вот первый номер 0
в вашем списке:
Это изображение было извлечено в его «естественной» ориентации. Он явно выше ширины.
Все следующие пары изображений масштабированы на 25%. Они представляют изображения типа маски
в списке ваших pdfimages
, выводимых выше:
Ваш сканер (с его встроенное ПО) более "умный". Он не просто создает один TIFF из страницы, а затем вставляет его в оболочку PDF, но пытается оптимизировать различные части, используя изображения «маски» (с альфа-каналами - отображаются черным цветом в файлах JPEG, которые я создал) для частей, содержащих текст.
К счастью, программное обеспечение вашего сканера не было "более" интеллектуальным, когда оно применяло сжатие для текста и использовало JPEG2000 вместо JBIG2. Так что вы не попались на печально известную « ошибку сканирования ксерокопирования » .
Для справки другим, у кого могут быть подобные проблемы, самый простой способ получить журнал от rcctl — выполнить rcctl -d start httpd
, это, по крайней мере, поможет в диагностике проблемы.