Python-UNO bridge: променете опциите за експортиране на PDF

Опитвам се да генерирам PDF от odt файл с помощта на Python и OpenOffice UNO bridge. Засега работи добре, единственият проблем, с който се сблъсквам, са опциите за експортиране. По подразбиране OO използва съществуващите настройки за експортиране на PDF (използваните последния път или по подразбиране, ако за първи път). Но трябва да задам тези настройки ръчно, например „UseTaggedPDF“ трябва да е вярно. Това е част от кода, където експортирам PDF:

try:
    properties=[]
    p       = PropertyValue()
    p.Name  = "FilterName"
    p.Value = "writer_pdf_Export"
    properties.append(p)
    p       = PropertyValue()
    p.Name  = "UseTaggedPDF"
    p.Value = True
    properties.append(p)


    document.storeToURL(outputUrl, tuple(properties))
finally:
    document.close(True)

PDF файлът е генериран, но не е маркиран. Какво не е наред с това?


person Sano J    schedule 06.05.2013    source източник


Отговори (1)


Най-накрая намерих решението на http://www.oooforum.org/forum/viewtopic.phtml?t=70949

try:
    # filter data
    fdata = []
    fdata1 = PropertyValue()
    fdata1.Name = "UseTaggedPDF"
    fdata1.Value = True
    fdata.append(fdata1)

    fdata.append(fdata1)

    args = []
    arg1 = PropertyValue()
    arg1.Name = "FilterName"
    arg1.Value = "writer_pdf_Export"
    arg2 = PropertyValue()
    arg2.Name = "FilterData"
    arg2.Value = uno.Any("[]com.sun.star.beans.PropertyValue", tuple(fdata) )
    args.append(arg1)
    args.append(arg2)

    document.storeToURL(outputUrl, tuple(args))
finally:
    document.close(True)
person Sano J    schedule 06.05.2013
comment
(1) Можете да приемете своя собствен отговор (2) Препоръчвам ви да обясните как това е решението. - person Marcin; 18.12.2013