Найти - Пользователи
Полная версия: HTML в Open Document Text
Начало » Django » HTML в Open Document Text
1 2 3
empirik
Есть django-wysiwyg, нужно преобразовать html код, введенный пользователем, в форму odt или open office xml (для docx). Нужен именно валидный xml код, который можно было бы вставить в существующий документ, который выступает в роли шаблона. Смотрел python-docx, он, судя по всему, такую возможность не поддерживает, по крайней мере в документации и в коде я ее не нашел нигде.
Doberman26rus
Могу предложить тебе, на мой взгляд, не самое изящное, но рабочее решение. Конвертировать непосредственно самим Open Office
soffice --headless --convert-to odf tmp/test.html

это один из вариантов. у него есть так же возможно читать/писать непосредственно в stdin/stdout (subprocess в помощь). на выходе ты получаешь валидный odt из которого вытащишь нужный тебе xml.

soffice при отсутствии Иксов запускается в Xvfb.
empirik
Да, решение действительно не самое изящное, уже думал о нем. Ну, если ничего более подходящего не найду - можно будет и так. Хотя по сути, наверно, можно будет и без этого обойтись. Там, впринципе, нужен очень ограниченный набор тегов, можно, наверно написать какие-нибудь xslt-файлы.
4kpt
Для конвертации в odt существует модуль odf.py. Зачем изобретать велосипед?
Единственное. В качестве исходных данных никогда не использовал django-wysiwyg…
empirik
4kpt, вот и я не вижу, чтобы odf.py поддерживал конвертирование html в odf.
4kpt
Тут точно ничего нет, чтобы Вам подошло?

http://opendocumentfellowship.com/projects/odfpy
empirik
Тут все сосредоточено на создании документов, а мне нужно просто вставить кусок кода в документ. Удивительно, что не получается ничего найти, мне задача не кажется такой уж уникальной. Ну лан, на крайний случай сам что-нибудь напишу, мне же очень ограниченный набор тегов нужен.
4kpt
empirik
Выложи пример документа до и документа после.
empirik
Выложил. Пример простенький, но на нем уже видно, что может понадобиться. В данном случае есть нумерованный список, который вводился пользователем вручную. Для документа не очень хорошо, да и что если он захочет выделить что-нибудь жирным и тд.
4kpt
Еще раз по этапам. Кто и что вводит. Какие могут быть дополнительные манипуляции с текстом?
Пока ничего сложного не вижу. Всю работу можно выполнить с помощью odfpy. Вообще легко :)

P.S. Просто я может чего-то недопонимаю :(
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB