Top > OOoPython > ExportPDF

PDF エクスポート Edit

Py-UNO から PDF ファイルにエクスポートする方法です。

PDF エクスポート時のオプションは PDF エクスポートオプションと同じものを利用します。

FilterData を与えるときに注意点があります。UNO の sequence は Python の tuple を基本的には利用しますが、PropertyValue の値に sequence が含まれている場合にその要素が PropertyValue の場合に型変換に失敗するらしく、うまくいきません。

次のようにします。

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

以下は writer ドキュメントをパスワードを付けて PDF に保存します。 FilterData を上記のように Any に変換しないと FilterData が無視されてしまいます。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
import uno
 
from com.sun.star.beans import PropertyValue
 
 
def a_test():
    ctx = XSCRIPTCONTEXT.getComponentContext()
    smgr = ctx.ServiceManager
    
    doc = XSCRIPTCONTEXT.getDocument()
    
    fdata = []
    fdata1 = PropertyValue()
    fdata1.Name = "EncryptFile"
    fdata1.Value = True
    fdata2 = PropertyValue()
    fdata2.Name = "DocumentOpenPassword"
    fdata2.Value = "pass"
    fdata.append(fdata1)
    fdata.append(fdata2)
    
    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)
    
    url = "file:///C:/usr/12.pdf"
    
    doc.storeToURL( url, tuple(args) )

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes