Ariel ,
Very instructive, copied to my learning stuff, thansk
i pointed Eric to a other technic, opening the doc in "preview" mode in
a frame based on a new created window in a filepicker dialog.
Principle parts of the code
Sub PreviewWindowLoadOOFile(sUrl as String)
oPreviewWindow = InstallNewPreviewWindow(oFPickerDialog.Window, 0)
oFrame = createUnoService("com.sun.star.frame.Frame")
oFrame.initialize(oPreviewWindow)
Dim aProps(0) As New com.sun.star.beans.PropertyValue
aProps(0).Name = "Preview"
aProps(0).Value = true
oPreviewDoc = oFrame.loadComponentFromURL(sUrl, "", 0, aProps())
end sub
function InstallNewPreviewWindow(oWin as Object, lWinAttrs as Long) as
Object
' Create a window descriptor and set up its properties
Dim aDescriptor As New com.sun.star.awt.WindowDescriptor
aDescriptor.Type = com.sun.star.awt.WindowClass.SIMPLE
aDescriptor.Parent = oWin
aDescriptor.Bounds = oWin.Windows(lLastWindowAtStart).PosSize
aDescriptor.WindowAttributes = com.sun.star.awt.WindowAttribute.SHOW
or lWinAttrs
oToolkit = createUnoService("com.sun.star.awt.Toolkit")
InstallNewPreviewWindow = oToolkit.createWindow(aDescriptor)
end function
Greetz
Fernand
REM ***** BASIC *****
Option Explicit
Sub Main
GlobalScope.BasicLibraries.loadLibrary("Tools")
Dim oDoc as Object
oDoc = ThisComponent
If HasUnoInterfaces(oDoc, "com.sun.star.view.XRenderable") Then
Dim sBaseURL as String
sBaseURL = DirectoryNameOutOfPath(oDoc.getURL(), "/")
Dim oSFA as Object
oSFA = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
Dim oGraphicProvider as Object
oGraphicProvider =
CreateUnoService("com.sun.star.graphic.GraphicProvider")
Dim oController as Object
Dim oUnitConverter as Object
oController = oDoc.getCurrentController()
oUnitConverter = oController.getFrame().getComponentWindow()
Dim oSelection as Object
' it could be the whole document
oSelection = oDoc
' or the selection
'Dim oTextCursor as Object
'oTextCursor =
oDoc.getText().createTextCursorByRange(oDoc.getText().getStart())
'oTextCursor.goToRange(oDoc.getText().getEnd(), True)
'oController.select(oTextCursor)
'oSelection = oController.getSelection()
Dim oDevice as Object
Dim aRenderOptions(5) as New com.sun.star.beans.PropertyValue
aRenderOptions(0).Name = "RenderDevice"
aRenderOptions(0).Value = oDevice
aRenderOptions(1).Name = "ExportNotesPages"
aRenderOptions(1).Value = False
aRenderOptions(2).Name = "IsFirstPage"
aRenderOptions(2).Value = True
aRenderOptions(3).Name = "IsLastPage"
aRenderOptions(3).Value = False
aRenderOptions(4).Name = "IsSkipEmptyPages"
aRenderOptions(4).Value = True
aRenderOptions(5).Name = "PageRange"
aRenderOptions(5).Value = ""
Dim nPageCount as Integer
nPageCount = oDoc.getRendererCount( oSelection, aRenderOptions )
If nPageCount> 0 Then
Dim oToolkit as Object
oToolkit = CreateUnoService("com.sun.star.awt.Toolkit")
Dim oRenderer as Object
Dim oPageSize as Object
Dim i%
Dim sURL$
While nPageCount> 0
nPageCount = nPageCount - 1
oRenderer = oDoc.getRenderer(nPageCount, oSelection,
aRenderOptions)
For i = 0 To UBound(oRenderer)
If oRenderer(i).Name = "PageSize" Then
oPageSize = oRenderer(i).Value
Exit For
End If
Next
Dim oDeviceSize as Object
oDeviceSize = oUnitConverter.convertSizeToPixel(oPageSize,
com.sun.star.util.MeasureUnit.MM_100TH)
oDevice = oToolkit.createScreenCompatibleDevice(
oDeviceSize.Width, oDeviceSize.Height)
aRenderOptions(0).Value = oDevice
oDoc.render( nPageCount, oSelection, aRenderOptions)
Dim oBitmap as Object
oBitmap = oDevice.createBitmap( 0, 0,
oDevice.Info.Width,oDevice.Info.Height)
sURL = sBaseURL + "/" + CStr(nPageCount) + ".png"
If oSFA.exists(sURL) Then oSFA.kill(sURL)
StoreBitmapToURL(oGraphicProvider, oBitmap, sURL)
Wend
End If
End If
End Sub
Sub StoreBitmapToURL(oGraphicProvider, oBitmap, sURL)
Dim oMediaProperties(0) as New com.sun.star.beans.PropertyValue
oMediaProperties(0).Name = "Bitmap"
oMediaProperties(0).Value = oBitmap
Dim oGraphic as Object
oGraphic = oGraphicProvider.queryGraphic(oMediaProperties)
If NOT IsNull(oGraphic) Then
Dim oMediaPropertiesOut(2) as New com.sun.star.beans.PropertyValue
oMediaPropertiesOut(0).Name = "URL"
oMediaPropertiesOut(0).Value = sURL
oMediaPropertiesOut(1).Name = "MimeType"
oMediaPropertiesOut(1).Value = "image/png"
oGraphicProvider.storeGraphic(oGraphic, oMediaPropertiesOut)
End If
End Sub