Comment gérer l'export au format PDF Hybride ?

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/General/006 and the translation is 78% complete.
    Outdated translations are marked like this.


    Other languages:

    Description

    Un PDF Hybride est un PDF consultable comme n'importe quel PDF, mais qui inclut en outre le document source au format ODF, permettant de le modifier notamment via LibreOffice. L'interface permet de déterminer si l'export va créer un document hybride via la commande de menu Fichier ▸ Exporter au format PDF (cf. Tutoriel).

    La procédure suivante illustre comment procéder en Basic. L'export PDF utilise un tableau de propriétés (propFich dans l'exempe) indiquant le filtre à utiliser (calc_pdf_Export dans l'exemple), et les options choisies. Ces dernières sont elles aussi définies dans un tableau de propriétés (filterProps dans l'exemple). En l'occurrence l'option qui nous intéresse est IsAddStream pouvant prendre la valeur True ou False selon qu'on veut créer un hybride ou non.

    Code

    En LibreOffice Basic:

    Option Explicit
    
    Sub ExportPDFinHybridFormat
        '''Macro pour gérer l'export au format PDF Hybride'''
    
        Dim filterData(1) As New com.sun.star.beans.PropertyValue
        Dim filterProps(1) As New com.sun.star.beans.PropertyValue
        Dim fileAddress As String
    
        'créer des "prop-vals" dans filterData, qui seront introduits dans filterProps
        filterData(0).Name = "Selection"
        filterData(0).Value = ThisComponent.CurrentController.ActiveSheet
        filterData(1).Name = "IsAddStream"
        filterData(1).Value = True
    
        'créer des "prop-vals" dans filterProps, qui seront introduits dans storeToURL
        filterProps(0).Name = "FilterName"
        filterProps(0).Value = "calc_pdf_Export"
        filterProps(1).Name = "FilterData"
        filterProps(1).Value = filterData()
    
        fileAddress = convertToURL("/home/<user>/Documents/test.pdf")
        ThisComponent.storeToURL(fileAddress, filterProps())
    
    End Sub ' ExportPDFinHybridFormat

    ODS fichier pour essayer le macro

    Notes