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

From The Document Foundation Wiki
Jump to: navigation, search
This page is a translated version of the page Macros/General/006 and the translation is 100% complete.

Other languages:
English • ‎français

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