Ruslan-maniak 0 27 июля, 2022 Опубликовано 27 июля, 2022 (изменено) · Жалоба Не нашел раздела подходящего для данной темы, так что размещу её здесь. Реализую генерацию pdf файлов на МК. И столкнулся с проблемой создания текстов с кириллицей. Описание как это сделать не нагуглил и реверс-инжиниринг даже очень простых файлов результата не дал. Может кто знает как это работает или даже сам такое реализовывал? Для примера как нужно изменить вот такой простейший файл содержащий стандартный "Hello word!" на "Привет мир!": %PDF-1.4 1 0 obj <</Type /Catalog /Pages 2 0 R>> endobj 2 0 obj <</Type /Pages /Kids [3 0 R] /Count 1>> endobj 3 0 obj<</Type /Page /Parent 2 0 R /Resources 4 0 R /MediaBox [0 0 500 800] /Contents 6 0 R>> endobj 4 0 obj<</Font <</F1 5 0 R>>>> endobj 5 0 obj<</Type /Font /Subtype /Type1 /BaseFont /Helvetica>> endobj 6 0 obj <</Length 44>> stream BT /F1 24 Tf 175 720 Td (Hello World!)Tj ET endstream endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000056 00000 n 0000000111 00000 n 0000000212 00000 n 0000000250 00000 n 0000000317 00000 n trailer <</Size 7/Root 1 0 R>> startxref 406 %%EOF Изменено 27 июля, 2022 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 43 27 июля, 2022 Опубликовано 27 июля, 2022 · Жалоба Я думал, что из-за высокой температуры умом тронулся... А зачем делать pdf на МК? Много лишних ресурсрв, которые занять нечем? Можно пояснить, какая великая нужда вынудила заняться таким на МК? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 212 27 июля, 2022 Опубликовано 27 июля, 2022 · Жалоба В 27.07.2022 в 18:07, Ruslan-maniak сказал: не нагуглил https://www.google.ru/search?q=pdf+utf-8+characters+example А также, в шрифте Helvetica никогда не было русских букв. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 27 июля, 2022 Опубликовано 27 июля, 2022 · Жалоба Те pdf с русскими буквами, что я видел, использовали Unicode кодировку с таблицей перекодировки внутри (для используемого набора Unicode символов <байт> -> <Unicode>) Тэг /ToUnicode в описателе шрифта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 27 июля, 2022 Опубликовано 27 июля, 2022 · Жалоба А не проще на МК генерить латеховский файл, а уж на ПК его компилировать? Или еще лучше: пусть МК генерирует файл с отчетом, а ПК его обрабатывает, генерирует латеховский исходник и компилирует его. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 43 28 июля, 2022 Опубликовано 28 июля, 2022 · Жалоба On 7/28/2022 at 12:02 AM, Eddy_Em said: Или еще лучше: пусть МК генерирует файл с отчетом, а ПК его обрабатывает, генерирует латеховский исходник и компилирует его. Eddy_Em это было бы логичней, но боюсь, что следующим вопросом будет "а как мне теперь это напечатать на принтере?". В любом случае, работа с текстом потребует много памяти, которой у МК не много. ИМХО, генерацию pdf лучше выполнять в сервере приложения на ПК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 6 28 июля, 2022 Опубликовано 28 июля, 2022 · Жалоба <html><head></head><body>Привет мир!</body></html> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 28 июля, 2022 Опубликовано 28 июля, 2022 (изменено) · Жалоба On 7/28/2022 at 5:54 AM, tonyk_av said: "а как мне теперь это напечатать на принтере?" Тогда все значительно проще: сгенерировать постскрипт-файл! А его уже и печатать... Можно простой командой [inline]cat file.ps > /dev/lp0[/inline] (если принтер нормальный, конечно). Ну или стандартным [inline]lp file.ps[/inline]. Но таки лучше не напрягать МК такими суровыми задачами. Например, можно сделать связку: Orange Pi Zero (около 2000 рублей сейчас стоит) или просто Orange Pi (около 2500) + микроконтроллер. Одноплатник пусть с МК общается, а через веб-морду или standalone приложение пользователь будет общаться с одноплатником. Настроить печать на одноплатнике - вуаля! Нажал пользователь в веб-морде кнопочку "печать отчета", и принтер радостно зажужжал! P.S. А вообще, я заметил, что вендузятники - люди крайне алогичные. Они любят искать проблемы на ровном месте и решать их совершенно дикими способами! Что-то у меня есть подозрение, что ТС ни о техе/латехе не слыхал, ни даже о постскриптах! Изменено 28 июля, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба On 7/28/2022 at 1:22 PM, Eddy_Em said: Тогда все значительно проще: сгенерировать постскрипт-файл! А его уже и печатать... Можно простой командой [inline]cat file.ps > /dev/lp0[/inline] (если принтер нормальный, конечно). Ну или стандартным [inline]lp file.ps[/inline]. Но таки лучше не напрягать МК такими суровыми задачами. Например, можно сделать связку: Orange Pi Zero (около 2000 рублей сейчас стоит) или просто Orange Pi (около 2500) + микроконтроллер. Одноплатник пусть с МК общается, а через веб-морду или standalone приложение пользователь будет общаться с одноплатником. Настроить печать на одноплатнике - вуаля! Нажал пользователь в веб-морде кнопочку "печать отчета", и принтер радостно зажужжал! P.S. А вообще, я заметил, что вендузятники - люди крайне алогичные. Они любят искать проблемы на ровном месте и решать их совершенно дикими способами! Что-то у меня есть подозрение, что ТС ни о техе/латехе не слыхал, ни даже о постскриптах! Я не спрашивал ЧТО делать. Я спросил КАК делать то, ЧТО мне нужно. Как линуксоид вы наверно не слышали про такое понятие как юзабилити. Нет ни каких серверов, нет приложений для постобработки файла на ПК. Какое еще orange Pi? Я не поделку диванную разрабатываю, чтобы в нее напихать кучу железа. Может мне просто цельный пк в каждый прибор засунуть. Вы про себестоимость слышали что-нибудь? Какой-то обывательский взгляд у вас на разработку. Тысячи пользователей должны иметь возможность просто вставить флэшку в тысячи приборов, нажать на кнопочку и получить pdf файл с нужной информацией на нее. Может мой ответ покажется грубым, но ваши пространные рассуждения не привязанные к реальности и теме топика просто обескураживают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 1 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба Именно для генерации можно попробовать что-то из этого скомпилить: https://github.com/AndreRenaud/PDFGen https://github.com/libharu/libharu Ну а в целом, отказаться от .pdf в пользу голого html тоже неплохая идея. Это тоже универсальный формат. Даже если нет браузера - можно любым текстовым редактором открыть. ЗЫ. И, как сказали выше, обязательно проверять, есть ли килирица в шрифтах, которые планируете использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба 27 minutes ago, nice_vladi said: Именно для генерации можно попробовать что-то из этого скомпилить: https://github.com/AndreRenaud/PDFGen https://github.com/libharu/libharu Ну а в целом, отказаться от .pdf в пользу голого html тоже неплохая идея. Это тоже универсальный формат. Даже если нет браузера - можно любым текстовым редактором открыть. ЗЫ. И, как сказали выше, обязательно проверять, есть ли килирица в шрифтах, которые планируете использовать. Да, спасибо. Html - можно конечно заюзать, но это костыль от безысходности был бы. В целом нашел способ писать кириллицу без встраивания шрифтов, но нужны были еще и надстрочные и подстрочные символы. Так что без встраивания шрифтов точно было не обойтись. Но библиотеку которая умеет встраивать шрифты не обнаружил, а все это зашаривать слишком трудозатратно. Так что остановился на PdfGen и сохранении текста в виде картинок с помощью нее, так как все нужные шрифты и символы есть как ассеты к графической части устройства. В результате все норм работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба 1 hour ago, Ruslan-maniak said: Html - можно конечно заюзать, но это костыль от безысходности был бы а в него засунуть jspdf который уже будет генерить pdf при открытии :) чтобы уж костыль так костыль 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться