Форум сайта python.su
Есть django-wysiwyg, нужно преобразовать html код, введенный пользователем, в форму odt или open office xml (для docx). Нужен именно валидный xml код, который можно было бы вставить в существующий документ, который выступает в роли шаблона. Смотрел python-docx, он, судя по всему, такую возможность не поддерживает, по крайней мере в документации и в коде я ее не нашел нигде.
Офлайн
Могу предложить тебе, на мой взгляд, не самое изящное, но рабочее решение. Конвертировать непосредственно самим Open Office
soffice --headless --convert-to odf tmp/test.html
Отредактировано Doberman26rus (Июнь 25, 2013 14:28:09)
Офлайн
Да, решение действительно не самое изящное, уже думал о нем. Ну, если ничего более подходящего не найду - можно будет и так. Хотя по сути, наверно, можно будет и без этого обойтись. Там, впринципе, нужен очень ограниченный набор тегов, можно, наверно написать какие-нибудь xslt-файлы.
Офлайн
Для конвертации в odt существует модуль odf.py. Зачем изобретать велосипед?
Единственное. В качестве исходных данных никогда не использовал django-wysiwyg…
Офлайн
4kpt, вот и я не вижу, чтобы odf.py поддерживал конвертирование html в odf.
Офлайн
Тут точно ничего нет, чтобы Вам подошло?
http://opendocumentfellowship.com/projects/odfpy
Офлайн
Тут все сосредоточено на создании документов, а мне нужно просто вставить кусок кода в документ. Удивительно, что не получается ничего найти, мне задача не кажется такой уж уникальной. Ну лан, на крайний случай сам что-нибудь напишу, мне же очень ограниченный набор тегов нужен.
Офлайн
empirik
Выложи пример документа до и документа после.
Офлайн
Выложил. Пример простенький, но на нем уже видно, что может понадобиться. В данном случае есть нумерованный список, который вводился пользователем вручную. Для документа не очень хорошо, да и что если он захочет выделить что-нибудь жирным и тд.
Прикреплённый файлы: Desktop.zip (8,4 KБ)
Офлайн
Еще раз по этапам. Кто и что вводит. Какие могут быть дополнительные манипуляции с текстом?
Пока ничего сложного не вижу. Всю работу можно выполнить с помощью odfpy. Вообще легко :)
P.S. Просто я может чего-то недопонимаю :(
Офлайн