Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2013 12:23:36

empirik
Зарегистрирован: 2012-03-26
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Есть django-wysiwyg, нужно преобразовать html код, введенный пользователем, в форму odt или open office xml (для docx). Нужен именно валидный xml код, который можно было бы вставить в существующий документ, который выступает в роли шаблона. Смотрел python-docx, он, судя по всему, такую возможность не поддерживает, по крайней мере в документации и в коде я ее не нашел нигде.

Офлайн

#2 Июнь 25, 2013 14:27:45

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Могу предложить тебе, на мой взгляд, не самое изящное, но рабочее решение. Конвертировать непосредственно самим Open Office

soffice --headless --convert-to odf tmp/test.html

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

soffice при отсутствии Иксов запускается в Xvfb.



подпись

Отредактировано Doberman26rus (Июнь 25, 2013 14:28:09)

Офлайн

#3 Июнь 25, 2013 22:11:28

empirik
Зарегистрирован: 2012-03-26
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Да, решение действительно не самое изящное, уже думал о нем. Ну, если ничего более подходящего не найду - можно будет и так. Хотя по сути, наверно, можно будет и без этого обойтись. Там, впринципе, нужен очень ограниченный набор тегов, можно, наверно написать какие-нибудь xslt-файлы.

Офлайн

#4 Июнь 26, 2013 00:01:38

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Для конвертации в odt существует модуль odf.py. Зачем изобретать велосипед?
Единственное. В качестве исходных данных никогда не использовал django-wysiwyg…



Офлайн

#5 Июнь 26, 2013 12:07:34

empirik
Зарегистрирован: 2012-03-26
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HTML в Open Document Text

4kpt, вот и я не вижу, чтобы odf.py поддерживал конвертирование html в odf.

Офлайн

#6 Июнь 26, 2013 22:56:10

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Тут точно ничего нет, чтобы Вам подошло?

http://opendocumentfellowship.com/projects/odfpy



Офлайн

#7 Июнь 27, 2013 08:43:58

empirik
Зарегистрирован: 2012-03-26
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Тут все сосредоточено на создании документов, а мне нужно просто вставить кусок кода в документ. Удивительно, что не получается ничего найти, мне задача не кажется такой уж уникальной. Ну лан, на крайний случай сам что-нибудь напишу, мне же очень ограниченный набор тегов нужен.

Офлайн

#8 Июнь 27, 2013 16:05:25

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

HTML в Open Document Text

empirik
Выложи пример документа до и документа после.



Офлайн

#9 Июнь 28, 2013 14:41:27

empirik
Зарегистрирован: 2012-03-26
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Выложил. Пример простенький, но на нем уже видно, что может понадобиться. В данном случае есть нумерованный список, который вводился пользователем вручную. Для документа не очень хорошо, да и что если он захочет выделить что-нибудь жирным и тд.

Прикреплённый файлы:
attachment Desktop.zip (8,4 KБ)

Офлайн

#10 Июнь 28, 2013 16:05:55

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

HTML в Open Document Text

Еще раз по этапам. Кто и что вводит. Какие могут быть дополнительные манипуляции с текстом?
Пока ничего сложного не вижу. Всю работу можно выполнить с помощью odfpy. Вообще легко :)

P.S. Просто я может чего-то недопонимаю :(



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version