LINUX.ORG.RU

Какой то странный pdf файл

 


3

3

Для уменьшения размеров и увеличения качества сканированных pdf файлов пользуюсь gscan2pdf. Там много функций по обрезке, очистке, увеличения контрастности. Можно убрать фон и размер файла сильно упадет. Сейчас пытаюсь загрузить отсканированную книгу, но при загрузке в gscan2pdf страница загружается кусками, нарезанными полосками. Вместо одной страницы получается 5 полосок. Все гляделки pdf показывают файл нормально. Пытался конвертнуть в ps и обратно в pdf, получается тоже самое. Не понимаю, что за pdf такой? Попробовал открыть файл в Acrobat Pro. Показывает всю страницу целиком, но имеются горизонтальные линии, как будто это собранные вместе куски.

★★★★

Последнее исправление: rustamych (всего исправлений: 1)
Ответ на: комментарий от rumgot

В чем он лучше?

Тем, что он специально предназначен и оптимизирован под эту задачу. Прочитай про DjVu, вопрос отпадет сам собой.

nvl ★★★
()

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

dsl
()
Ответ на: комментарий от dsl

Файл оч большой 100Мб. Я выдернул 4 страницы, можно взять здесь https://drive.google.com/open?id=13qcYKahMtuHlwp-9JDgUufqVyIQ8Uu_2 Мне нужно полоски внутри каждой страницы склеить в одну страницу. Я не понимаю как вообще можно было так сканировать, чтоб такой урод получился.

rustamych ★★★★
() автор топика
Ответ на: комментарий от nvl

Как же это надо умудриться так сделать? Ни разу такой порнухи не видел. А как склеить куски внутри одной страницы?

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

А как склеить куски внутри одной страницы?

так в ps или pdf и так есть информация, как расположены эти куски на странице.

Я умею чистить, обрезать и убирать фон только в pdf. Потом уже можно конвертнуть и в djvu.

Почитай про DjVu, может стоит сразу в DjVu, обрезать и убирать фон - это сизифов труд.

nvl ★★★
()
Ответ на: комментарий от rustamych

для каждой страницы свой

И в чём проблема? Этот же convert собирает из кучи один pdf.

no-such-file ★★★★★
()
Ответ на: комментарий от nvl

Дело в том, что когда загоняешь в gscan2pdf получается 5 полосок на каждую страницу. Их можно чистить и обрезать, убирать фон. Но когда сохраняешь, то сохраняются все куски отдельно и количество страниц увеличивается в 5 раз. Читать это невозможно. Убирать фон и чистить совсем просто, никакого Сизифа здесь нет. Попробую конвертнуть в djvu, может действительно станет лучше. Иногда помогает просто загнать в Acrobat Pro и сохранить как оптимизированный. Бывает объем падает в 7 раз.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

Нет предела человеческой безграмотности. У меня пока рекорд держит файл от групппы людей, две сосканированных страницы текста в низком разрешении, архивом 29.Мб

kolja ★★
()
Ответ на: комментарий от kolja

Это ж можно в книгу рекордов Гиннеса :) Мой файл делали бразильцы, а они могут побить ваш рекорд :), руки у них растут не там, где надо.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

В jpg или png можно только постранично.

Упаковываешь в tar или zip, меняешь расширение на cbt или cbz соответственно, читаешь в том же Evince. Ну серьёзно, это не так убого, как PDF из картинок.

anonymous
()
Ответ на: комментарий от rustamych

Ну да.
Вспомнилась сразу байка с вопросом про то, чем пессимист отличается от оптимиста. На заявление первого, что хуже уже быть не может, оптимист уверенно отвечает, что может, может быть ещё хуже!

kolja ★★
()
Ответ на: комментарий от rustamych

Результат

Я использовал тот PDF который можно утянуть по ссылке (gui.pdf). Его первая страница целиком состоит из нескольких изображений:

0.110156, 0.000000, 841.800000, 120.600000, 3440.000000, 500.000000, 0.000000, 0, image_13_0_R
0.110156, 120.600000, 841.800000, 120.600000, 3440.000000, 500.000000, 0.000000, 0, image_12_0_R
0.110156, 241.200000, 841.800000, 120.600000, 3440.000000, 500.000000, 0.000000, 0, image_15_0_R
0.110156, 361.800000, 841.800000, 120.600000, 3440.000000, 500.000000, 0.000000, 0, image_16_0_R
0.110156, 482.400000, 841.800000, 112.440000, 3440.000000, 464.000000, 0.000000, 0, image_14_0_R

возможно дело в том, что порядок изображений на странице не соответсвует порядку их расположения в самом файле (эти самые image_13_0_R, image_12_0_R, etc.). У меня это выглядит примерно так (хотя есть два места с разрывом в пиксел):

https://drive.google.com/file/d/1BrmB4WJ7oM8TJkJ29i1lbuGwa79fm7YJ/view?usp=sh...
https://drive.google.com/file/d/1YD4Hv6ck7ZRLTTE__ODMRTrsWAITJCmq/view?usp=sh...
https://drive.google.com/file/d/1C3XoTOVsECyt0PaXpQK4O4Fq1WK0cwfl/view?usp=sh...

dsl
()
Ответ на: Результат от dsl

Да, верно. Это легко заметить, если взять этот файл в Acrobat Pro. Он так и располагает по 4 картинки на один лист и воспринимает каждую картинку отдельно. А как же слепить эти 4 картинка в одну на каждой странице?

rustamych ★★★★
() автор топика
Ответ на: Результат от dsl

В общем устал бороться с этим файлом. Acrobat Pro ужал файл с 100Мб до 17Мб без потери качества, но оставил эту идиотскую структуру. Лучше пойду завтра и сделаю сам нормальный скан с книги.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

Ручной способ не подойдет как я понял (нужно ведь все 100Мб?). Можно скрипт написать и им дергать pdfi (это тот самый инструмент над которым я работаю), брать координаты изображений и слеплять части воедино. И так для каждой страницы.

К сожалению, поделиться инструментом не могу - это часть программы в разработке пока что. Можно поступить так: я Вам форматы файлов с метаинфой + примеры. Вы пишите для них скрипт чтобы все слеплял как надо. Потом я этот скрипт пущу у себя и натравлю его на ваш файл в 100 Мб. И результат зашлю архивом.

dsl
()
Ответ на: комментарий от dsl

Спасибо большое за предложение, но я откажусь и все-таки схожу завтра и сделаю скан сам. Книжка есть под рукой, сканер на работе тоже. Завтра воскресенье, никто мешать не будет. В инете гуляет только этот скан, я скачал раз 20 на разных сайтах и везде одна и та же копия. К тому же это парень не сделал скан оглавления, пользоваться сложно. Вы, я вижу, спец по этим делам. Вы можете объяснить - как можно было ухитриться сделать такой скан? Я даже представить не могу. Сканер сканирует 1/5 часть страницы, сохраняет куда-то временно и так 5 раз, затем объявляет их одной страницей. Таких установок я не видел. Для садомазохистов видимо :).

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

А на самом деле все просто - сам PDF допускает такую возможность. Хочешь целое изображение храни, хочеть хоть мазаикой лепи из мелких кусков.

Я думаю что было так: принтер сделал скан и сохранил в один файл, парень этот файл засунул в какую-то программу которая умеет генерировать PDF файлы и, без лишней настройки, жмакнул сохранить. Программа, видимо, решила что не хорошо одно большое изображение держать в PDF и разбила его не части. Может быть для того, чтобы в браузере было его проще подгружать. Эти части в PDF хранятся как XObject'ы, 5 штук на страницу. Может их можно параллельно загружать, или быстрее отрисовать даже после загрузки например только первого куска (может - из-за того, что мне еще не довелось разбирать вопросы оптимизации PDF файла для передачи по сети).

Но по своему опыту скажу что такие файлы - скорее норма.

dsl
()
Ответ на: комментарий от dsl

Понял, спасибо за объяснение. Насчет того, что это норма пожалуй не соглашусь, хотя опыт связан только с научными книгами. У меня большая электронная библиотека, форматы pdf и djvu. Если файл большой и грязный, то я его стараюсь почистить и уменьшить. Убирание фона сразу уменьшает размер иногда в 10 раз. Но вот такой файл мне попался впервые.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

По работе постоянно сталкиваюсь с чертежами различного рода. Одна из задач - импортировать из PDF. Так вот именно для чертежей в виде изображений в PDF файле - норма.

dsl
()
Ответ на: комментарий от rustamych

Да. Не очень. Но ведь тут пока ищется хоть какой-нибудь работающий способ.

rumgot ★★★★★
()
Ответ на: комментарий от rustamych

такой урод получился

...такой урод получился...

Слишком много неверных суждений. Разбивка целого изображения на полосы не только приводит к уменьшению размера, но и (это главное) существенному снижению нагрузки при просмотре. А это основа электронных публикаций - неважно сколько усилий потрачено на составление публикации, главное, чтобы просмотр был быстрым, как можно менее требовал ресурсов и как можно более отражал исходную страницу.

С poppler-utils знакомы - это хорошо. Ничто не мешает склеить 5 полос imagemagick-ом.

Deleted
()
Ответ на: такой урод получился от Deleted

Это понятно, но файл имеет размер 100Мб при наличии 150 страниц. Как-то великовато. Обычно на 150 страниц хватает 3-4Мб. Правда Acrobat уменьшил его до 17. И еще, особой разницы не заметил при просмотре этого файла с разбивкой на 5 полос и другого файла без разбивки. Хотя может просто не заметил.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

3-4Мб

Обычно на 150 страниц хватает 3-4Мб

Опять неверное сравнение. Сейчас ваша pdf-ка хоть и выглядит непотребно (jpeg - это не типография), всё таки она в 300dpi. 150 страниц будет не будут весить 3-4Мб, если это jpeg в 300dpi, даже в 150dpi jpeg будет весить больше. BW-tiff мог бы существенно улучшить вид pdf-ки не увеличив потребление ресурсов, но не в 300dpi, а как минимум в 600dpi. Что опять даёт определлённые ограничения: объём не может быть меньше определённого значения. Перевод изображения сканов в BW удаляет много шумов, но не все.

Deleted
()
Ответ на: комментарий от Deleted

Получилось 4 png файла хорошего качества, мне кажется даже лучше оригинала, но размеры от 2.5 до 2.9Мб. Собрал их в один convert-ом получился файл 13Мб, а исходный 2.8Мб. Но gsca2pdf теперь открывает без полосок. Если сделать не 300, а 100, то получается 2.5Мб, но качество конечно сильно проигрывает. За совет спасибо, ни разу не пользовался этой утилитой. Пробовал перегнать в djvu с помощью pdf2djvu, качество дрянь.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

мне кажется даже лучше оригинала

Кажется. Крестись.

получился файл 13Мб, а исходный 2.8Мб.

Зря. Это лишь сырье. Без обработки не стоит. Попробуй бинаризацию. Чтобы не заморачиваться (пока) воспользуйся scantailor-ом. Заодно и страницы порубишь.

Deleted
()
Ответ на: комментарий от legolegs

Да, сейчас попробовал перегнать в djvu с помощью pdf2djvu. Качество нормальное только при 600dpi. Размер уменьшился втрое, но фон голубоватый остался.

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

djvu

...djvu...

Подводные камни: djvu максимально приспособлен к сканам, но многими отвергается на корню. Основная причина - отсутствие векторных объектов.

Deleted
()
Ответ на: комментарий от rustamych

Я вспомнил, почему у меня такие тёплые воспоминания о djvu - в университете мы сканировали всякие при помощи проприетарной виндовой программы «Djvu Solo». Там реально удобно было и результат хороший. Далее: 600dpi - это стандарт для djvu. Фон в djvu сохраняется в отдельном слое с меньшим разрешением и его можно скрывать (джвюшные просмотрщики, в т.ч. свободные это умеют, универсальные типа okular - нет).

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

и его можно скрывать

Это имеет смысл только, если существует маска (чёрно-белый слой). А pdf2djvu бинаризацию не производит.

Deleted
()
Ответ на: комментарий от Deleted

Да, pdf2djvu - это ущербное решение. Я не знаю, можно ли сделать полноценный djvu свободными инструментами, но у проприетарных результат превосходный.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Я не знаю, можно ли сделать полноценный djvu свободными инструментами

Чушь. Didjvu никто не отменял. Опять же напоминаю: djvu игнорится слишком многими, в то время как pdf из чёрно-белых tiff-ов не игнорится никем, а весит столько же.

Deleted
()
Ответ на: комментарий от legolegs

сделать полноценный djvu

сделать полноценный djvu

Даже с помощью djvumake (djvulibre) можно сделать «нормальный» djvu.

man djvumake
cjb2 mymask.pbm mymask.djvu
djvumake my.djvu Sjbz=mymask.djvu PPM=myimage.ppm
convert myimage.png myimage.ppm
convert +dither -colors 2 -normalize -compress Grop4 myimage.png myimage.pbm
Deleted
()
Ответ на: комментарий от Deleted

Классная прога, не знал, спасибо. Объем получившегося tiff файла в десятки раз меньше, чем изначальный png, при нормальном качестве. А что значит бинаризация? Бинарник, как исполняемый файл, я понимаю. А в случае png это что означает?

rustamych ★★★★
() автор топика
Ответ на: комментарий от rustamych

бинаризация?

А что значит бинаризация?

Бинаризация (threshold) - преобразование изображения в бинарный вид (0 или 1). Алгоритмы бинаризации разрабатывались еще в 80-х годах прошлого века. В их разработке принимал участие даже Дональд Е Кнут. Это связано с тем, что все иллюстрации в печати в те времена были бинарными.

Бимодальная бинаризация в imagemagick:

imagemagick +dither -colors 2 -normalize -compress Group4 page.png page.tif

«Пользовательская» (Manual) бинаризация:

imagemagick -threshold 40% -compress Group4 page.png page.b40.tif
imagemagick -threshold 50% -compress Group4 page.png page.b50.tif
imagemagick -threshold 60% -compress Group4 page.png page.b60.tif

«Хорошие» tiff-ы ты получил, пришло время для pdf:

tiff2pdf -o page.tif.pdf page.tif

И в конце объединить страницы:

pdftk *.pdf cat output book.pdf
Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.