Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


Bonjour,

Du temps où j'écrivais des macros, j'en avais faite une en m'inspirant d'une macro trouvée sur internet et du livre de Bernard Marcilly et Laurent Godart.
Je viens de la tester, elle fonctionne encore.
Comme elle était restée à l'état d'essai, le nom du fichier d'export et la dpi sont inscrits en dur dans la macro et sont donc à modifier à la main.

Cordialement
Agnès S.

REM  *****  BASIC  *****

Sub Export2png
REM Filter dependent filter properties
Dim aFilterData (8) As New com.sun.star.beans.PropertyValue
Dim sFileUrl As String
Dim oDoc AS Object
Dim oDrawPage As Object

oDoc = thisComponent
oDrawPage = oDoc.getDrawPages().getByIndex(0)

' NOM DU FICHIER D'EXPORT
' pour windows : file:///C:/temp/image.png
' pour linux : "file:///home/moi/image.png
sFileUrl = "file:///home/agnes/image.png"


' PARAMETRES D'EXPORTATION
' 72 dpi
' 'conversion => mm => inches => pixels (72 dpi)
aFilterData(0).Name = "PixelWidth"
aFilterData(0).Value =  oDrawPage.Width*(72/2540)
aFilterData(1).Name = "PixelHeight"
aFilterData(1).Value =  oDrawPage.Height*(72/2540)

' compression
aFilterData(2).Name  ="Compression"
aFilterData(2).Value = 0 'de 0 à 9
' entrelacement
aFilterData(3).Name  ="Interlaced"
aFilterData(4).Value = 0
' transparence
aFilterData(5).Name = "Translucent"
aFilterData(6).Value = false
' resolution, for use when loading in another image application
' ???
aFilterData(7).Name = "Resolution"
aFilterData(7).Value = 600

' pour bmp ?
'aFilterData(8).Name ="LogicalWidth"
'aFilterData(8).Value = 1704
'aFilterData(9).Name ="LogicalHeight"
'aFilterData(9).Value = 2272

'  pour jpg ?
'aFilterData(10).Name ="Quality"
'aFilterData(10).Value = 100

'inutile pour png ?
'aFilterData(11).Name = "ColorMode"
'aFilterData(11).Value = 0
'aFilterData(12).Name = "ExportMode"
'aFilterData(12).Value = 1

' PAGE OU SELECTION
' si sélection, ce doit être un groupe
xDoc = ThisComponent
xView = xDoc.currentController
xSelection = xView.selection
If isEmpty( xSelection ) Then
        xObj = xView.currentPage
        Else
        xObj = xSelection
        End If
ExportPng( xObj, sFileUrl, aFilterData() )
End Sub

Sub ExportPng( xObject, sFileUrl As String, aFilterData )
Dim xExporter
xExporter = createUnoService( "com.sun.star.drawing.GraphicExportFilter" )
xExporter.SetSourceDocument( xObject )
Dim aArgs (2) As New com.sun.star.beans.PropertyValue
Dim aURL As New com.sun.star.util.URL
aURL.complete = sFileUrl
aArgs(0).Name = "MediaType"
aArgs(0).Value = "image/png"
aArgs(1).Name = "URL"
aArgs(1).Value = aURL
aArgs(2).Name = "FilterData"
aArgs(2).Value = aFilterData
xExporter.filter( aArgs() )
End Sub

Le 29/11/2016 23:14, Pierre ROUZEAU a écrit :
Bonjour,
Je fais pas mal d'exportation au format PNG depuis draw mais c'est assez
long:
*Draw ne se souvient pas des derniers paramètres utilisés et on doit
resaisir à chaque fois:
- L'extension par défaut de l'exportation est gif et Je n'ai pas trouvé
comment la changer
- Il faut décocher la transparence pour que le fichier exporté soit lisible
- Quand on change la définition, la taille de la feuille est modifiée,
ce qui fait que la taille de l'image ne change pas, il faut resaisir la
largeur de la feuille pour que le changement soit de définition soit
effectivement pris en compte (pour moi c'est un bug)
- Éventuellement, je changerais bien le taux de compression, mais Je ne
le fais jamais, ça fait une commande de plus et de toutes façons, le
taux de compression natif LO n'est pas très bon

Je ferais bien une macro, ce qui me permettrais de faire des
exportations automatiques en plusieurs définitions, mais l'enregistreur
de macros n'apparait pas dans le menu macro de draw (je l'ai bien
sélectionné dans les options avancées) - il s'affiche dans writer et calc -
Quelqu'un aurait-il une piste pour la syntaxe d'exportation draw dans
une macro ?

salutations



---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus



--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.