Seite 1 von 1

Als PNG exportieren

Verfasst: So 3. Sep 2023, 09:54
von bittelöschtmichnicht
Wie kann man in LibreOffice Writer Dokumente als PNG-Datei exportieren? Die interne Exportfunktion exportiert nur die erste Seite als PNG-Datei.

Re: Als PNG exportieren

Verfasst: So 3. Sep 2023, 10:15
von bittelöschtmichnicht
alles klar gefunden

https://superuser.com/questions/1741308 ... -as-images
https://superuser.com/questions/1741443 ... riter-page

Extras => Makros bearbeiten => einfügen und auf den grünen Button drücken.

Code: Alles auswählen

Sub StoreEachPageToPNG()
Dim oDoc As Variant, oViewCursor As Variant
Dim iPageCount As Long, iPage As Long 
Dim sOriginalURL As String, sFileURL As String 
Dim pngFilterData(1) As New com.sun.star.beans.PropertyValue
    pngFilterData(0).Name = "PixelWidth"
    pngFilterData(0).Value = 1634 ' or as much as you need
    pngFilterData(1).Name = "PixelHeight"
    pngFilterData(1).Value = 2114 ' take care to maintain proportions
Dim Args(1) As New com.sun.star.beans.PropertyValue
    Args(0).Name = "FilterName"
    Args(0).Value = "writer_png_Export"
    Args(1).Name = "FilterData"
    Args(1).Value = pngFilterData
    
    oDoc = ThisComponent
    iPageCount = oDoc.getCurrentController().PageCount
    oViewCursor = oDoc.getCurrentController().getViewCursor()
    sOriginalURL = oDoc.getURL()
    oViewCursor.jumpToFirstPage()
    For iPage = 1 To iPageCount
        sFileURL = Replace(sOriginalURL, ".odt", " - " & Format(iPage, "000") & ".png")
        oDoc.StoreToURL(sFileURL, Args)
        If Not oViewCursor.jumpToNextPage() Then End
    Next iPage
End Sub