Страница 1 из 1

TAsterDocFile

СообщениеДобавлено: 06.10.2022 04:50:46
Sharfik
Класс TAsterDocFile разработан для вывода таблиц в офисные документы, минуя сторонние библиотеки.
Тестировался с документами Microsoft office стандарта Open XML(2010).
Кто не знает, при сохранении документа в MS Office есть маленькая галочка "Привести файл к новой версии документа", если ее поставить то все весело будет. И если очень повезет, то все форматирование летит к чертям.

Далее, реализована поддержка заполнения шаблонов форматов XMLX, DOCX. В классе есть процедура:
Код: Выделить всё
procedure TAsterDocFile.TablesWriteToFile;

В ней примерно такая выборка. Соответственно последние три не были реализованы.
Код: Выделить всё

        if (FDocFileType=dftDocx) then
        begin

        end
        else if (FDocFileType=dftXlsx) then
        begin

        end
        else if (FDocFileType=dftMSDoc2003XML) then
        begin
            //todo: MS XML
        end
        else if (FDocFileType=dftOdt) then
        begin
            //todo: Open Office
        end
        else if (FDocFileType=dftOds) then
        begin
           //todo: Open Office
        end;

Принцип работы следующий: берется документ, распаковывается как zip архив во временную папку. Тестировалось все под Win10, по этому в теле модуля u_aster используется функция запроса временной папки Windows. Под линукс надо дописать. Далее, распакованное содержимое по известным файлам считывается в XML и заполняется. Класс ищет строго определенный по названию лист книги или определенную по заголовку таблицу документа.
После формирования новых XML все упаковывается заново в файл и передается пользователю. Для форматирования текста документов DOCX предусмотрены теги (курсив, жирный, зачеркивание, подчеркивание).
**У меня не было времени и возможности изучать xsd, поэтому как и что заполнять, где что лежит изучалось распаковкой и припарированием чистых файлов в варианте 2010. И сборка документа ведется без использования схем xml.

Если кто будет развивать, то не забывайте выкладывать сюда.
Скачать:
2021-03-19 https://disk.yandex.ru/d/Q-mmLC0GnwRq5Q

Re: TAsterDocFile

СообщениеДобавлено: 09.10.2022 18:31:48
Ichthyander
Да что же это такое. Почему весь прогресс мимо нас паскалистов проходит. Lazarus - это звучит гордо. Делайте удобней себе и другим. Репозитарии кода и проектов: https://github.com/ https://bitbucket.org/ https://bitbucket.org/ и много много других. Потратьте 15 минут на знакомство и получайте удовольствия от удобства. Яндекс диск хорош, но он для других более приземленных целей

Re: TAsterDocFile

СообщениеДобавлено: 09.10.2022 19:07:48
Sharfik
1. Я не программист в профессиональном смысле. И "поделка" заточена под конкретные условия и заниматься развитием в полном объеме нет возможности.
2. Репозитории для крупных проектов, мелким там делать нечего. То что я выкладывал на GitHub имеет нулевой интерес. В соседней теме пример, автор вместо того чтобы посмотреть чужую реализацию и просто подогнать под себя решил идти по всем граблям сам с нуля.
3. Мое мнение - с GitHub удобно скачивать и читать код, но загружать в него, и управлять, обновлять это треш какой то. Форумы лучшее из изобретений человечества.

Re: TAsterDocFile

СообщениеДобавлено: 09.10.2022 21:20:22
Ichthyander
1. Как это противоречит тому, что Вы можете облегчить себе работу?
2. Не важно какой интерес это вызовет. ВЫ же облегчаете жизнь прежде всего себе. А потом уже тем, кто может воспользоваться вашим трудом. То что Вы выложили на яндекс диске будет однозначно потеряно. В репозитарии кода кто-то может его найти по поиску. В репозитарии кода Вам могут предложить доработку. В гите не важно большой проект или нет - это одинаково. Да, и в большинстве случаев репозитарии - это маленкие проекты. Проекты могут быть кстати и закрытыми. Для отдельных файлов - есть гист github
3.
Мое мнение - с GitHub удобно скачивать и читать код, но загружать в него, и управлять, обновлять это треш какой то.

Уверяю Вас: Вы что-то кардинально не поняли, если считаете, что загрузить проект на гитхаб это треш. Каким путем пошли Вы? В худшем случае Вы можете загрузить проект как на яндекс диск прямо через браузер. А если воспользуетесь клиентом GitHub Desktop, то будет еще куча инструментов, полезных для ведения и управления кодом и его версиями. Можете забыть про бекапы и отдельные папки под версии программ.
Форумы лучшее из изобретений человечества.
ОПять таки как это мешает нам использовать репозитарии кода? Вы же дали ссылку на яндекс диск. ТАк почему не дать на гитхаб, к примеру

Re: TAsterDocFile

СообщениеДобавлено: 10.10.2022 01:17:45
Sharfik
С моей точки зрения, там интерфейс и весь подход к работе этого сервиса делал не сильно адекватный человек. Интерфейс должен подсказывать и помогать пользователю, а не заставлять его пить валерьянку. Я не облегчаю, а усложняю себе жизнь если включаю поддержание проекта на GitHub. Все зависит от пользователя, если он не в состоянии аккуратно содержать у себя файлы, то ему ничто не поможет. Если проект делает команда, то нет вопросов - github. Который русским языком даже обзавестись не смог. И опыт полученный при работе с облаком Microsoft говорит только в пользу систематизированных локальных копий. Доверять сторонним, и тем более бесплатным сервисам это себя не любить и свой труд. Делиться с их помощью да можно, но ставить их в основе экосистемы своей работы - нет.

PS: Если класс по вашему мнению хоть кому то полезен класс, залью его туда когда будет время. Человеку нужно быть полезным и приятнее видеть как увеличивается циферка скачивания на яндексе, чем наблюдать пустоту на гитхабе.
PS2: У Лебедева в Кодоводстве было очень наглядно разжевано что "вы"/"вам" не обязательно писать с большой буквы. Да и в интерне, исторически было общение по никам(кличкам).