gianthare: (Default)
[personal profile] gianthare
Я тут неожиданно ознакомился с форматом 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 при помощи виртуального принтера, который в низ каждой страницы впендюривает полный путь файла и номера страниц.

Date: 2010-01-25 03:44 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Нас когда-то один заказчик просил сделать PDF с цифровой подписью. Не знаю, как сейчас, а тогда это делалось при помощи библиотеки от Adobe фантастической цены (кажется, 20К$, но уже не помню).
Сделали подписанный оффисный DOC, с помощью бесплатного офисного интерфейса.

Date: 2010-01-25 03:54 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Думаю, подешевело немного, потому что когда-то сам формат был закрытый Adobe, а теперь открытый

Date: 2010-01-25 03:48 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Да, и момент со подходящим шрифтом вместо кодировки - это, конечно, сильный ход. Черт, интересно, это они специально так придумали? Или само так вышло?

Date: 2010-01-25 03:53 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Ты знаешь, я даже не знаю, правда ли это.
Мне кажется, что когда PostScript/PDF придумывали, поддержкой нескольких языков вообще не заморачивались. Были только разнообразные локализации, а они ведь примерно так и работают.

Date: 2010-01-25 04:42 pm (UTC)
From: [identity profile] dmpogo.livejournal.com
Тем не менее все нормальные PDF читалки умеют гладко скролить, не говоря уж а том что ощущение страницы для меня обязательно при читке с экрана

Date: 2010-01-25 06:35 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Не знаю. Acrobat Reader не умеет, даже когда выставляешь опцию "показывать без деления на страницы".
> не говоря уж а том что ощущение страницы для меня обязательно при читке с экрана
А зачем? Это же произвольное деление. Мне мешает, что PgDn каждый раз на разное число строк прыгает

Date: 2010-01-26 02:19 am (UTC)
From: [identity profile] dmpogo.livejournal.com
У меня 9-й Acroread под Линуксом - отлично умеет, Даже есть опция 'автоматический скролл', когда он сам как в замедленном кино медленно движет страницу вверх.

А зачем? Это же произвольное деление.

У меня память визуально пространственная - я текст помню как 'это было в середине, на левой странице наверху' Без пространсвенной разбивке мне читать почти бесполезно, и уж точно некомфортно. В общем, я все что нужно серьезно прочитать распечатываю.

Date: 2010-01-25 05:36 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
Может быть вы можете объяснить, как они это делают на Hebrewbooks. Там они выставляют файлы в текстовом PDF, но все выглядит так, как в древней книге. Но вот если копируешь текст, то некоторые буквы оказываются совсем другими. Скажем вметос ламед - каф.

Date: 2010-01-25 06:57 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Ну вот так и делают видимо - описали красивый шрифт в начале файла, но соответствию между кодами и буквами не стандартное. Если совсем дикие, то могли и английские буквы использовать - я однажды искал палеобиблейский (?) шрифт - нашел, но буквы там соответствовали латинским и писать надо было с конца. Но шрифт красивый. А могли взять ивритскую кодировку не такую, как Windows ожидает - их же несколько, на Маке совсем своя, даже интервал другой.

На самом деле, там вообще какой-то бардак. Я попробовал - там часть букв соответствует, часть нет и, что хуже всего, одна и та же буква может перевестись в разные, или разные в одну. Там по-моему, даже кол-во букв при копировании не сохраняется. Если они этот PDF своей программой генерировали, то можно еще и не то натворить - можно каждой букве отдельно шригт определять, только размер файла тогда будет вообще убийственный

Date: 2010-01-25 07:08 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
"одна и та же буква может перевестись в разные, или разные в одну. " - вот это то и странно.
Файл видно не такой уж и громадный, скачивается довольно быстро.
И поиск там у них работает, хотя иногда и ошибается.
Наверное там у них какая-то своя программа это все делает. Да и дешифровка таких текстов, совсем не простое дело. Ивритские OCR жутко дорогие, вообще. А тут еще книги написанные шрифтом Раши...

Date: 2010-01-25 07:11 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Ну вот, мы пришли к одному выводу, по-моему - это неудачный OCR (наложенный на скан)

Date: 2010-01-25 07:15 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Так и есть - при поиске находится то же, что копируется.
Так ינמק находит יצחק, потому что в шрифте Раши похоже

Date: 2010-01-25 07:16 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
Да.

О!

Date: 2010-01-25 07:10 pm (UTC)
From: [identity profile] gianthare.livejournal.com
У меня лучше идея - в PDF можно сделать два слоя - картинак и текст. То что мы видим - это картинка, а текстовой слой составлен из примерно похожик современных ивритских бкв. От этого такие дикие расхождения. Например, этого можно добиться, если этой картинке сделать OCR программой рассчитанной на современный ивритский шрифт, тогда все странности это просто ошибки распознавания ( а те кто это так выложил - вредители)

Re: О!

Date: 2010-01-25 07:15 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
Интересная мысль! Так наверное и есть.
Но не надо их вредителями обзывать. Могли бы выложить просто картинками. А так, многое можно найти через поиск, хоть иногда и ошибки есть.
И там есть книги, которых нигде больше не найдешь. Во всяком случае пока.

Re: О!

Date: 2010-01-25 07:16 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Я смайлики не всегда ставлю. Хотя мне кажется, лучше было без OCR положить, чтобы не путать. Или предупредить

Re: О!

Date: 2010-01-25 07:21 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
Я понимаю, что вы не в серьез. И понимаю, что обидно, что копировать смысла нет.
Но тут выбор - вычитывать все, это огромная работа. А вместо этого, они выкладывают больше книг.
И все таки, мне кажется, этот OCR больше помогает, чем путает.

Re: О!

Date: 2010-01-25 07:33 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Наверное, можно посетителей сайта запрячь. Просто предложить - сгрузил файл, не будешь ли так добр вычитать страничку. Сколько это займет, минут 5-10? Я бы вычитал.

Re: О!

Date: 2010-01-25 07:49 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
Не знаю. Может быть.
Я бы не вычитала. Дислектик я, не вижу ошибок. Т.е. конечно некоторые вижу, но не все...

Date: 2010-01-25 06:46 pm (UTC)
From: [identity profile] egle.livejournal.com
Я с ПДФ знакома только как пользователь. Насколько я понимаю, его основная задача -- чтобы файл выглядел одинаково на любой платформе, и на принтере. Именно поэтому имеет смысл четкое указание координат для кусков текста и включение фонта в файл.

Date: 2010-01-25 06:59 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Я знаю - это чем он хорош. А я пишу о том, чем он плох. Тем не менее, логические блоки могли бы все равно отмечать. Типа, "а сейчас у нас идет вторая колонка", а потом уже координаты задавать.

Date: 2010-01-25 07:02 pm (UTC)
From: [identity profile] gianthare.livejournal.com
А уж описание фонта точно не мешает указать используемую кодировку

Date: 2010-02-16 05:01 pm (UTC)
From: [identity profile] angerona.livejournal.com
В общем, тех кто отсканированные и распознанные книги выкладывает в PDF надо вешать на первом попавшемся суку заставлять из этого PDF извлекать обратно текст, вручную. А особенно тех, кто создавал PDF при помощи виртуального принтера, который в низ каждой страницы впендюривает полный путь файла и номера страниц.


я об этом почти неотрывно думаю последние две недели. Именно примерно в таких же выражениях.

интересно было почитать больше про внутренности.

еще, кстати, хочется найти место на том суку для тех, кто использует pdf для математических/научных статей.
Edited Date: 2010-02-16 05:02 pm (UTC)

Date: 2010-02-16 08:08 pm (UTC)
From: [identity profile] gianthare.livejournal.com
> тех, кто использует pdf для математических/научных статей.
Их я как раз понимаю - что есть, то и выкладывают. Журналы-то хотят PDF. Впрочем, особенного выбора-то нет - написано в Латехе, так что или PDF или PostScript, который еще хуже. Не Латех же им выкладывать в самом деле. Можно еще HTML генерировать из Латеха, но там формулы только картинками (даже если MathML, то кто его понимает). Потом, я PDF не люблю в контексте ридера, а вы?

Date: 2010-02-16 08:18 pm (UTC)
From: [identity profile] angerona.livejournal.com
PDF для книг -- это отвратно, потому что их потом не прочтешь на телефоне или еще где-то с маленьким экраном (да и на большом неудобно; нет нормальных ридеров).

И да, с математическими статьями беда. Latex не выложишь, нормальных программ для него тоже нет, а все остальное формулы либо картинками, либо ужасно (либо никак).

Date: 2010-02-16 08:27 pm (UTC)
From: [identity profile] gianthare.livejournal.com
С книгами, на самом деле, не смертельно - (бесплатный) Mobi Desktop отлично их перелицовывает в .mobi, если у вас телефон поддерживает ридер для него (по-моему, достаточно, чтобы было J2ME на телефоне).
Да и Calibre (супер программа для электронной библиотеке) его б/м переводит во что хошь (если не два столбца), единственно, что каждую строчку делает абзацем. Но это, может, исправят. Или можно сначала в .mobi, а потом во что хошь.

> все остальное формулы либо картинками, либо ужасно (либо никак).
Ну вот потому и PDF. Для Sony Reader, говорят, его легко повернуть в ландшафт и нарезать под размер экрана.

Date: 2010-02-16 08:36 pm (UTC)
From: [identity profile] angerona.livejournal.com
у меня Droid (который на андроиде, конечно). Никогда не слышала про .mobi формат, надо будет посмотреть.

По поводу статей -- это просто мне иногда надо формулы из них в Word переводить. Та еще работа.

Date: 2010-02-16 08:41 pm (UTC)
From: [identity profile] gianthare.livejournal.com
> По поводу статей -- это просто мне иногда надо формулы из них в Word переводить. Та еще работа.
Да уж, не для faint of heart. Странно, что не написали чего-нибудь автоматического. Хотя, MS западло, наверное, а те, кто пользуются Латехом, не видят необходимости

Profile

gianthare: (Default)
gianthare

February 2026

S M T W T F S
1234567
891011121314
15161718192021
222324 25 262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 6th, 2026 08:12 pm
Powered by Dreamwidth Studios