"" Then Kill pdfFilePath End If Call objDocument.storeToURL(OOoLocalPathToURL(pdfFilePath), args) Call objDocument.Close(True) Set objDocument = Nothing Set objDesktop = Nothing Set objReflection = Nothing Set objServicemanager = Nothing End Sub Ti basta richiamare la OOoPDF con il documento di origine e il pdf da salvare, es: Call OOoPDF("C:\Documents and Settings\Administrator\Documenti\lettera.doc", "C:\Lettera.pdf") Ciao">
> |  
re : Stampa PDF
cyberflaz
Con openoffice puoi fare cosė:



Option Public

Public objServicemanager As Variant
Public objReflection As Variant
Public objDesktop As Variant
Public objDocument As Variant

Function OOoLocalPathToURL(localpath As String) As String
OOoLocalPathToURL = localpath
OOoLocalPathToURL = Replace(OOoLocalPathToURL, "\", "/")
OOoLocalPathToURL = Replace(OOoLocalPathToURL, ":", "|")
OOoLocalPathToURL = Replace(OOoLocalPathToURL, " ", "%20")
OOoLocalPathToURL = "file:///" + OOoLocalPathToURL
End Function
Function OOoMakeProperty(n As String, value As Variant) As Variant
Dim objStruct As Variant

Set objStruct = objServicemanager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

objStruct.Name = n
objStruct.Value = value

Set OOoMakeProperty = objStruct
End Function

Sub OOoPDF (docFilePath As String, pdfFilePath As String)
Dim args() As Variant

Set objServicemanager = CreateObject("com.sun.star.ServiceManager")
Set objReflection = objServicemanager.createInstance("com.sun.star.reflection.CoreReflection")
Set objDesktop = objServicemanager.createInstance("com.sun.star.frame.Desktop")

Redim args(0 To 0)
Set args(0) = OOoMakeProperty("Hidden", True)

Set objDocument = objDesktop.loadComponentFromURL(OOoLocalPathToURL(docFilePath), "_blank", 0, args)

Redim args(0 To 1)
Set args(0) = OOoMakeProperty("URL", OOoLocalPathToURL(pdfFilePath))
Set args(1) = OOoMakeProperty("FilterName", "writer_pdf_Export")

If Trim(Dir$(pdfFilePath)) <> "" Then
Kill pdfFilePath
End If

Call objDocument.storeToURL(OOoLocalPathToURL(pdfFilePath), args)

Call objDocument.Close(True)

Set objDocument = Nothing
Set objDesktop = Nothing
Set objReflection = Nothing
Set objServicemanager = Nothing
End Sub


Ti basta richiamare la OOoPDF con il documento di origine e il pdf da salvare, es:

Call OOoPDF("C:\Documents and Settings\Administrator\Documenti\lettera.doc", "C:\Lettera.pdf")

Ciao

Massimo Nadalin | Devangarde


Stampa PDF - ARI -
    re : Stampa PDF - ARI -
        re... : Stampa PDF - LucaP -
    re : Stampa PDF - cyberflaz -
    You are here re : Stampa PDF - cyberflaz -