Skip to content

Unicode issue on setting text in textbox #7

@vidar

Description

@vidar

There is a problem with non-ascii characters in textbox. It can be fixed in line 1705 in presentation.py by not calling str, instead either just setting it to value or unicode(value).

Script:

# -*- coding: utf-8 -*-
from pptx import Presentation

if __name__ == '__main__':
    prs = Presentation()
    sl = prs.slidemasters[0].slidelayouts[5]
    s = prs.slides.add_slide(sl)
    tb = s.shapes.add_textbox(752777,1509138,7718035,4833392)
    p = tb.textframe.add_paragraph() 
    p.text = 'Hér er texti með íslenskum stöfum. This string contains icelandic/non-ascii characters.'
    prs.save('test.pptx')

Stacktrace:

Traceback (most recent call last):
  File "a.py", line 14, in <module>
    p.text = 'Hér er texti með íslenskum stöfum. This string contains icelandic/non-ascii characters.'
  File "/Users/vidar/.virtualenvs/DM27/src/pptx/pptx/presentation.py", line 1705, in _set_text
    r.text = str(value)
  File "/Users/vidar/.virtualenvs/DM27/src/pptx/pptx/presentation.py", line 1790, in text
    self.__t.text = str
  File "lxml.etree.pyx", line 922, in lxml.etree._Element.text.__set__ (src/lxml/lxml.etree.c:40737)
  File "apihelpers.pxi", line 656, in lxml.etree._setNodeText (src/lxml/lxml.etree.c:18467)
  File "apihelpers.pxi", line 1339, in lxml.etree._utf8 (src/lxml/lxml.etree.c:24233)
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
``` 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions