Да, «текстовое» происхождение у них очень редкое, чаще скан.
Хотя пару раз натыкался на документы, которые были сканом с текстовым слоем из FineReader.
надо только не забывать что чаще всего в DJVU нет текстового слоя, а есть только картинка с текстом — её можно разве что только распознать каким-нибудь FineReader-ом, но это уже совсем другая тема.
Спасибо, конечно, но это хайлайтер highlight.hohli.com/ как-то странно формирует выходной поток, что хабр обрезает единичку — в комментированном исходнике по ссылке, всё нормально.
Угу. Заметил, что по ссылке все ок.
Вопрос может немного не в тему, подскажите — как объединить два rtf файла в один?
Т.е. есть договор и приложение к нему двумя файлами. Как сделать один единый документ?
Ну так навскидку — сделать merge стилей (добавить недостающие шрифты/палитры в \fonttbl и \colortbl), оставшееся приложение с учётом изменений ссылок на стили дописать перед последней }. Из коробки у меня решения нет :)
поидее если просто склеить тела документов, то всё должно быть хорошо.
только посередине стоит вставить перевод страницы (\page ) или строки (\par или \line — по ситуации) и хотя бы сброс стилей параграфа ( \pard )
пример: есть два документа {\rtf1… hello… } и {\rtf1… bye… }
если склеить должно получится:
{\rtf1… hello… \pard \page… bye… }
возможно, переопределять стили, шрифты и цвета второй раз не очень хорошо. но на первый взгляд работает.
Спасибо конечно, это вроде и так понятно. Но проблема как раз-таки и состояла в том, как отделить тело от хедера и футера. Попробуйте создать два документа (желательно побольше, может даже вставить текст какого-то договора) в MS Word в формате rtf и склеить их через блокнот. Наверное тогда вы лучше сможете понять мою проблему.
выскажусь в защиту rtf — формат читается как на винде, так и на линуксе (убунту) без установки доп. софта (ворда или openoffice), в отличие, например от doc. В тоже время в rtf можно оформлять текст, делать списки. Поэтому резюме в нем храню.
очень даже используется. это один из самых безболезненных способов делать на сайтах автоматически генерируемые документы, которые можно потом открыть в ворде.
Что ж с первой «ошибкой» согласен — свой копипейст нужно проверять ;)
А про strlen — соглашусь, что каждый раз. Но я не писал самый оптимальный алгоритм (если глянуть на чтение мной pdf'а, так там вообще оптимизировать и оптимизировать). Но всё равно, Евгений, спасибо — добавил в исходном коде по ссылке.
Вы мешаете мух с котлетами — cvs только даёт возможность предоставить данные в виде таблицы — никакого форматирования и тому прочих рюшек. Всё зависит от задачи, так что CVS просто есть — рулить он не может.
Можно просто вывести данные в HTML табличку и добавить соответствующий хидер:
header(«Content-type: application/vnd.ms-excel»);
header(«Content-Disposition: attachment;Filename=document_name.xls»);
В любой версии Excel откроется. Можно любые стили применять, только не подключать внешние стайлшиты.
То же самое с вордом:
header(«Content-type: application/vnd.ms-word»);
header(«Content-Disposition: attachment;Filename=document_name.doc»);
Я понимаю, что откроется. Но все эти ухищрения не от хорошей жизни, так ведь? Тётенька из бухгалтерии вполне вероятно вашу табличку откроет в браузере и завопит, что у ней Excel сломался. Давайте мыслить масштабней.
Тетенька не сможет открыть этот файл так просто в браузере — это будет файл с расширением XLS. Понятно что это не полноценный Excel файл, но задачу решает более чем в 90% случаев. Опять же, там можно сделать любое форматирование.
Никто не говорит, что Ваш вариант неверный, неправильный. Просто Вы идёте простым путём, а я напролом, но идеологически правильней. К тому же Вы по большей части рассуждаете о записи данных — меня интересует чтение.
Почему именно чтение, да потому что в интернетах по сервакам разбросаны документы именно в doc'ах, rtf'ках и odt'шках, а не всё подряд в переименованном html'е. Индексирование — вот первоцель статей.
Пытаюсь приспособить Ваш скрипт для своих нужд, но не очень получается (с rtf первый раз). Поможете?
У меня куча файлов типа такого route2.ru/obzor/data/as1075.rtf, в wordpad вполне прилично выглядят. В них нет картинок, но встречается текст разной жирности, которую нужно вытаскивать. Из-за этого я подумал, что хорошо бы конвертировать rtf не просто в plain text, но в html. Возникает проблема — по-видимому, разные версии wordpad генерят разный rtf. В моих исходниках когда начинается жирный текст, ставится /b, но в конце тега /b0 нет. Если же я открою файл и пересохраню, то он становится гораздо красивее, в полтора раза меньше, и появляются /b0. Но работать нужно с исходниками. Есть идеи, как отлавливать, что тег /b закончился?
Вау! Меня переводят и перепечатывают (скрежещет зубами из-за позорного плагиата)! Уверяю Вас писал всё сам, это легко приметить, в тексте на англоязычном сайте упоминается кодировка cp1251 — странно, что английский/американский программист по умолчанию разбирает текст в кирилице ;)
Надо бы написать им письмо с просьбой поставить метку о том, что это перевод статьи.
Более того, на скриншоте на вышеупомянутом сайте совсем другие данные, нежели обсуждаются в статье. Да и посмотрев мои остальные статьи, Вы вполне можете сделать вывод, что изыскания я делал сам — копаться надо было глубоко, а скрипты-поделки из интернетов мне не подходили.
Милый мой Fadeev, перед тем как размахивать шашкой и кричать, что скрипт не работает, наверное всё же стоит заглянуть вовнутрь и понять, что же происходит. Советую внимательно рассматривать строчку №232 до просветления. Если последнее не появится, увы и ах — похоже программирование не для Вас. Удачи Вам.
В скрипте — windows-1250 — это среднеевропейская кодировка (я нахожусь в Чехии, халтура предполагала работу с чешским языком). Вы пытаетесь сконвертировать latin-1 (или если угодно windows-1252) в windows-1251.
Пробелы вполне могут появляться из-за того, что скрипт неверно работает с мультибайтовыми кодировками с пустым верхним байтом. Исправлять это не буду, не пишу в PHP больше четырёх лет. Если у Вас есть возможность, желание и знания разобраться, как и почему это не работает, и как это исправить — сделайте pull request.
Да, похоже код to_windows1250 куда-то убежал (считайте, потерялся в вечности). Повторюсь, что это была чешская халтура, получение кирилицы в тот момент мне было не интересно.
Текст любой ценой: RTF