Я пытаюсь вставить горизонтальную линию в документ LibreOffice Writer (odt), используя odfpy. (В Writer: Меню-> Вставка-> Горизонтальная линия)
Это моя попытка (адаптация этот пример ):
from odf import opendocument, chart, text, draw
drawdoc = opendocument.OpenDocumentDrawing() # Create the subdocument
maindoc = opendocument.OpenDocumentText() # Create the main document
dl = draw.Line(x1="1pt", x2="1pt", y1="100pt", y2="100pt", anchortype="paragraph")
maindoc.text.addElement(dl)
objectloc = maindoc.addObject(drawdoc)
do = draw.Object(href=objectloc)
dl.addElement(do)
maindoc.save("horizontalline.odt")
Но я получаю следующую ошибку :
Traceback (most recent call last):
File "pagebreak.py", line 9, in <module>
dl.addElement(do)
File "/usr/local/lib/python3.6/dist-packages/odf/element.py", line 427, in addElement
raise IllegalChild( "<%s> is not allowed in <%s>" % ( element.tagName, self.tagName))
odf.element.IllegalChild: <draw:object> is not allowed in <draw:line>
Я изучаю odfpy, но документации немного. Также я попытался создать документ в Writer, и после этого прочитал style.xml
и content.xml
, но я не вижу связанных частей.