170 похожих чатов

Всем хай, мне нужно сделать генерацию .docX документа и добавить

туда разные данные + markdown(то что юзер там сделает). Я пытался сделать это на джс, но не удалось сделать так как мне нужно. Можно ли это реализовать на ПХП? Так как markdown editor выдаст хтмл со стилями, думаю надо делать большой хтмл файл, а потом с него сгенерировать .docx.

5 ответов

14 просмотров

Искал уже какие-нибудь решения?

я делал рабочую реализацию для docx - с помощью этого https://habr.com/ru/post/244421/ . Но у меня не было нужды сохранять разметку - я использовал готовые шаблоны, которые заполнялись кучей данных. Ну а второе - без костылей и глубокого анализа вордовского xml, все равно не обошлось.

там откровенно конченная xml разметка, которая любит дробить строки, по первому своему желанию, еще и меняется в зависимости от версии редактора. Я честно пытался красиво сделать, но в итоге захардкодил нужный функционал

с нуля, или изменял готовый шаблон?

{{{your_gender}r=male} This is male! } при сохранении шаблона оно у меня умудрялолось его сохранять в виде <w:r> <w:t>{</w:t> <w:t>{</w:t> <w:t>{</w:t> <w:t>your_gender}</w:t> <w:t>=male</w:t> <w:t>}</w:t> <w:t>This is male!</w:t> <w:t>}</w:t> </w:r>

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта