Знай врага в лицо: формат PDF
Jan. 25th, 2010 05:26 pmЯ тут неожиданно ознакомился с форматом PDF и теперь ищу, на кого бы излить распирающее меня знание. Один пострадавший уже есть, но этого мало.
- Официальная спецификация PDF занимает 530 страниц (я полагаю в PDF :) ) и продается ISO за 70 франков. Правда, есть неофициальная, где содержится вся та же информация и которую можно сгрузить бесплатно. Поэтому, как сказано на одном из сайтов "редкий программист воплощает весь стандарт в одиночку", но генерировать PDF относительно просто.
- Во-первых, к моему удивлению, PDF оказался текстовым форматом, точнее он был задуман, как чисто-текстовой формат, а когда выяснилось, что некоторые почтовые программы режут 8-мой бит, его переопределили, как "нетекстовой" и во вторую строку вписывают комментарий со "странными" (>127) символами. Тем не менее, элементами PDF в первом приближении являются текстовые команды записанными нормальными ASCII символами, его можно открыть в текстовом редакторе и почитать.
- Это, разумеется, несколько неэффективно с точки зрения об'ёма, поэтому отдельные секции, например страницы заменяются своим ужатым текстом - но это его не превращает в бинарный, так же как зазипованный XML это все равно текст - его сначала надо раскрыть и только потом обрабатывать. А здесь это верно для отдельных секций. Ужимаются они алгоритмом Flate, являющимся разновидостью Zlib, и нигде больше не использующимся. По крайней мере, я их раскрыть не смог ничем, кроме специальной утилиты, которая делает uncompress PDF.
- PDF представляет из себя контейнер для подмножества Postscript - из Postscript выкинуты функции и т.п., зато PDF добавляет мета-информацию - описание струкуры документа, деление на страницы, оглавление и т.п., поэтому по PDF документу гораздо проще передвигаться, чем по PostScript
- Т.к. это Postscript, то он жестко прописывает для каждого кусочка текста, где тот находится. Именно поэтому, PDF non-reflowable, т.е. жестко привязан к размеру листа, на котором его собираются печатать, в подавляющем большинстве случаев A4. И поэтому из него так муторно извлекать текст. Особенно когда текст набран в два столбца, т.к. эти столбцы исключительно визуальные, внутри PDF столбец как таковой никак не обозначен, просто часть текста размещена при помощи координат в одном месте листа, а часть в другом.
- Т.к. для любого куска текста можно указать шрифт и определение шрифта можно включить в сам файл, то можно не заморачиваться указанием кодировки, а просто для отрывка на определенном языке указать шрифт, который его правильно отобразит. Я даже не выяснил еще, есть ли вообще в PDF возможность указать кодировку, если хочется. Поэтому при попытке извлечь нелатинский текст из PDF получается фигня, а именно, в случае русского, буквы с акцентами (диакритическими значками: умалуты, правые штрихи, левые штрихи и т.п.)
- Из-за всего вышеуказанного, все чужие утилиты (Adobe не Reader не проверял) позорно валятся на сложном PDF, портят текст, не понимают кодиривок, не понимают колонок, оставляют headers and footers посреди текста и т.д. И что делать - непонятно. Хотя для каждой конкретной книги несложно (реально) сделать custom script, который извлечет ее содержимое и сохранит часть форматов.
- Это я еще часть и забыл и немного остыл.
- Все это превращает PDF в формат, абсолютно не подходящий для передачи информации, если не считать таковой печать. Читать его даже с экрана компьютера неудобно, потому что скролится он не гладко, а постранично, а уж с меньшего устройства только при отсутствии выбора.
- В общем, тех кто отсканированные и распознанные книги выкладывает в PDF надо
вешать на первом попавшемся сукузаставлять из этого PDF извлекать обратно текст, вручную. А особенно тех, кто создавал PDF при помощи виртуального принтера, который в низ каждой страницы впендюривает полный путь файла и номера страниц.
no subject
Date: 2010-01-25 03:44 pm (UTC)Сделали подписанный оффисный DOC, с помощью бесплатного офисного интерфейса.
no subject
Date: 2010-01-25 03:54 pm (UTC)no subject
Date: 2010-01-25 03:48 pm (UTC)no subject
Date: 2010-01-25 03:53 pm (UTC)Мне кажется, что когда PostScript/PDF придумывали, поддержкой нескольких языков вообще не заморачивались. Были только разнообразные локализации, а они ведь примерно так и работают.
no subject
Date: 2010-01-25 04:42 pm (UTC)no subject
Date: 2010-01-25 06:35 pm (UTC)> не говоря уж а том что ощущение страницы для меня обязательно при читке с экрана
А зачем? Это же произвольное деление. Мне мешает, что PgDn каждый раз на разное число строк прыгает
no subject
Date: 2010-01-26 02:19 am (UTC)А зачем? Это же произвольное деление.
У меня память визуально пространственная - я текст помню как 'это было в середине, на левой странице наверху' Без пространсвенной разбивке мне читать почти бесполезно, и уж точно некомфортно. В общем, я все что нужно серьезно прочитать распечатываю.
no subject
Date: 2010-01-25 05:36 pm (UTC)no subject
Date: 2010-01-25 06:57 pm (UTC)На самом деле, там вообще какой-то бардак. Я попробовал - там часть букв соответствует, часть нет и, что хуже всего, одна и та же буква может перевестись в разные, или разные в одну. Там по-моему, даже кол-во букв при копировании не сохраняется. Если они этот PDF своей программой генерировали, то можно еще и не то натворить - можно каждой букве отдельно шригт определять, только размер файла тогда будет вообще убийственный
no subject
Date: 2010-01-25 07:08 pm (UTC)Файл видно не такой уж и громадный, скачивается довольно быстро.
И поиск там у них работает, хотя иногда и ошибается.
Наверное там у них какая-то своя программа это все делает. Да и дешифровка таких текстов, совсем не простое дело. Ивритские OCR жутко дорогие, вообще. А тут еще книги написанные шрифтом Раши...
no subject
Date: 2010-01-25 07:11 pm (UTC)no subject
Date: 2010-01-25 07:15 pm (UTC)Так ינמק находит יצחק, потому что в шрифте Раши похоже
no subject
Date: 2010-01-25 07:16 pm (UTC)О!
Date: 2010-01-25 07:10 pm (UTC)Re: О!
Date: 2010-01-25 07:15 pm (UTC)Но не надо их вредителями обзывать. Могли бы выложить просто картинками. А так, многое можно найти через поиск, хоть иногда и ошибки есть.
И там есть книги, которых нигде больше не найдешь. Во всяком случае пока.
Re: О!
Date: 2010-01-25 07:16 pm (UTC)Re: О!
Date: 2010-01-25 07:21 pm (UTC)Но тут выбор - вычитывать все, это огромная работа. А вместо этого, они выкладывают больше книг.
И все таки, мне кажется, этот OCR больше помогает, чем путает.
Re: О!
Date: 2010-01-25 07:33 pm (UTC)Re: О!
Date: 2010-01-25 07:49 pm (UTC)Я бы не вычитала. Дислектик я, не вижу ошибок. Т.е. конечно некоторые вижу, но не все...
no subject
Date: 2010-01-25 06:46 pm (UTC)no subject
Date: 2010-01-25 06:59 pm (UTC)no subject
Date: 2010-01-25 07:02 pm (UTC)no subject
Date: 2010-02-16 05:01 pm (UTC)я об этом почти неотрывно думаю последние две недели. Именно примерно в таких же выражениях.
интересно было почитать больше про внутренности.
еще, кстати, хочется найти место на том суку для тех, кто использует pdf для математических/научных статей.
no subject
Date: 2010-02-16 08:08 pm (UTC)Их я как раз понимаю - что есть, то и выкладывают. Журналы-то хотят PDF. Впрочем, особенного выбора-то нет - написано в Латехе, так что или PDF или PostScript, который еще хуже. Не Латех же им выкладывать в самом деле. Можно еще HTML генерировать из Латеха, но там формулы только картинками (даже если MathML, то кто его понимает). Потом, я PDF не люблю в контексте ридера, а вы?
no subject
Date: 2010-02-16 08:18 pm (UTC)И да, с математическими статьями беда. Latex не выложишь, нормальных программ для него тоже нет, а все остальное формулы либо картинками, либо ужасно (либо никак).
no subject
Date: 2010-02-16 08:27 pm (UTC)Да и Calibre (супер программа для электронной библиотеке) его б/м переводит во что хошь (если не два столбца), единственно, что каждую строчку делает абзацем. Но это, может, исправят. Или можно сначала в .mobi, а потом во что хошь.
> все остальное формулы либо картинками, либо ужасно (либо никак).
Ну вот потому и PDF. Для Sony Reader, говорят, его легко повернуть в ландшафт и нарезать под размер экрана.
no subject
Date: 2010-02-16 08:36 pm (UTC)По поводу статей -- это просто мне иногда надо формулы из них в Word переводить. Та еще работа.
no subject
Date: 2010-02-16 08:41 pm (UTC)Да уж, не для faint of heart. Странно, что не написали чего-нибудь автоматического. Хотя, MS западло, наверное, а те, кто пользуются Латехом, не видят необходимости