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+unsubscr...@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