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-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. 7th, 2026 12:30 am
Powered by Dreamwidth Studios