empirik
Июнь 25, 2013 12:23:36
Есть django-wysiwyg, нужно преобразовать html код, введенный пользователем, в форму odt или open office xml (для docx). Нужен именно валидный xml код, который можно было бы вставить в существующий документ, который выступает в роли шаблона. Смотрел python-docx, он, судя по всему, такую возможность не поддерживает, по крайней мере в документации и в коде я ее не нашел нигде.
Doberman26rus
Июнь 25, 2013 14:27:45
Могу предложить тебе, на мой взгляд, не самое изящное, но рабочее решение. Конвертировать непосредственно самим Open Office
soffice --headless --convert-to odf tmp/test.html
это один из вариантов. у него есть так же возможно читать/писать непосредственно в stdin/stdout (subprocess в помощь). на выходе ты получаешь валидный odt из которого вытащишь нужный тебе xml.
soffice при отсутствии Иксов запускается в Xvfb.
empirik
Июнь 25, 2013 22:11:28
Да, решение действительно не самое изящное, уже думал о нем. Ну, если ничего более подходящего не найду - можно будет и так. Хотя по сути, наверно, можно будет и без этого обойтись. Там, впринципе, нужен очень ограниченный набор тегов, можно, наверно написать какие-нибудь xslt-файлы.
4kpt
Июнь 26, 2013 00:01:38
Для конвертации в odt существует модуль odf.py. Зачем изобретать велосипед?
Единственное. В качестве исходных данных никогда не использовал django-wysiwyg…
empirik
Июнь 26, 2013 12:07:34
4kpt, вот и я не вижу, чтобы odf.py поддерживал конвертирование html в odf.
4kpt
Июнь 26, 2013 22:56:10
empirik
Июнь 27, 2013 08:43:58
Тут все сосредоточено на создании документов, а мне нужно просто вставить кусок кода в документ. Удивительно, что не получается ничего найти, мне задача не кажется такой уж уникальной. Ну лан, на крайний случай сам что-нибудь напишу, мне же очень ограниченный набор тегов нужен.
4kpt
Июнь 27, 2013 16:05:25
empirik
Выложи пример документа до и документа после.
empirik
Июнь 28, 2013 14:41:27
Выложил. Пример простенький, но на нем уже видно, что может понадобиться. В данном случае есть нумерованный список, который вводился пользователем вручную. Для документа не очень хорошо, да и что если он захочет выделить что-нибудь жирным и тд.
4kpt
Июнь 28, 2013 16:05:55
Еще раз по этапам. Кто и что вводит. Какие могут быть дополнительные манипуляции с текстом?
Пока ничего сложного не вижу. Всю работу можно выполнить с помощью odfpy. Вообще легко :)
P.S. Просто я может чего-то недопонимаю :(