Вопрос

I have now succeeded in opening a Word 97-2003 (.doc) document and edited it from Python. But how do I save it?

I always get:

Traceback (most recent call last):
  File "office.py", line 55, in <module>
    model.storeToUrl('file:///c:/temp/out.doc', ())
AttributeError: storeToUrl

(Related question.)

What should the attributes be?

And how do I then close the document?

Это было полезно?

Решение

The other answer is all over the net, and is very confusing. In some examples, model is the TEXT object, storeToURL() and dispose() are methods of the document object, here is another implementation.

from com.sun.star.beans import PropertyValue
from unohelper import systemPathToFileURL

# open a writer document object
doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ())

.....

url = systemPathToFileUrl('c:/out.doc')

# NOTE THAT ARGS IS A TUPLE OF PROPERTY VALUES
args = (PropertyValue('FilterName', 0, 'MS Word 97', 0),)

doc.storeToURL(url, args)

# close the document
doc.dispose()

Другие советы

model.storeToURL('file:///c:/temp/out.doc', (createPropertyValue("FilterName","MS Word 97"),) 

Note the all caps on "URL", in my original code it was spelled wrong, like "Url".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top