Sviluppo delle estensioni

    From The Document Foundation Wiki
    This page is a translated version of the page Development/Extension Development and the translation is 100% complete.
    Other languages:

    Introduzione

    Le estensioni consentono di estendere le funzionalità di LibreOffice senza modificare il codice sorgente di LibreOffice stesso.LibreOffice ha tre tipi di estensioni.

    • Se sapete programmare, potete utilizzare diverse linguaggi per sviluppare estensioni di LibreOffice usando il using the UNO component API. I linguaggi di programmazione supportati sono Basic, Python, JavaScript, Java, BeanShell e C++. Il codice ed i dati sono raggruppati come file .oxt e possono essere condivisi su LibreOffice Extensions repository.
    Le estensioni sono il modo preferito dagli amministratori di sistema per modificare le impostazioni predefinite. Una guida per lo sviluppo di estensioni di configurazione è disponibile in formato PDF o ODT. Un esempio di OXT configuration extension accompagna la guida.
    • Esistono anche estensioni speciali di Calc note come Add-Ins che aggiungono funzioni di foglio di calcolo a Calc. Come componenti UNO puoi fornire nuove implementazioni di funzionalità esistenti o componenti specializzati come Calc Add-Ins, Add-Ons, DataPilots, Chart Add-Ins o componenti linguistici: Spellchecker, Hyphenator o Thesaurus (vedete openoffice.org/wiki/Add-In Add-Ins documentazione).

    Vedete gli esempi nella sezione "Esempi" di seguito.

    Informazioni sui modelli

    Potreste aver notato che in alcuni esempi i modelli vengono inseriti in una cartella denominata "modelli", mentre in alcuni altri esempi i modelli vengono inseriti in una cartella denominata "modello". Non siate confusi dai nomi. Entrambi funzioneranno, a condizione che specifichiate il nome corretto che avete usato nel file Paths.xcu. Notate che nel file Paths.xcu, "%origin%" come in <node oor:name="%origin%/modello" oor:op="fuse"/> si riferisce alla posizione dell'estensione dopo che è stata installata. Per esempio:

    file:///<path-to-your-libreoffice-installation-or-config>/user/uno_packages/cache/uno_packages/lu168780135zflp.tmp_/<extenion_filename>.oxt

    Pertanto, il "modello" come in <node oor:name="%origin%/modello" oor:op="fuse"/> dovrebbe essere il percorso relativo alla radice del vostra estensione non zippata. Ciò significa che se inserite i modelli effettivi in ​​una cartella denominata "miei_modelli" quando si organizza la struttura dell'estensione, allora in Paths.xcu dovrebbe essere: <node oor:name="%origin%/miei_modelli" oor:op= "fuse"/>.

    Inoltre, notate che il "Modello" come in <node oor:name="Modello" oor:op="fuse" oor:mandatory="true"> mostrato in Paths.xcu indica che questa impostazione del percorso è per la categoria "Modello", che è definita in unotools/source/config/pathoptions.cxx:170 (insieme a Addin, Correzione automatica, Glossario, Dizionario, Galleria ecc.).


    Risorse

    Nel tentativo di non duplicare le informazioni, potete fare riferimento alla documentazione di OpenOffice, vedete per esempio la versione di questa pagina in the OpenOffice wiki. Sono ancora ampiamente compatibili, ma è necessario eseguire un controllo aggiuntivo poiché LibreOffice sta procedendo rapidamente (vedete Note sulla compatibilità di seguito).

    Per una completa descrizione delle estensioni e il formato del file .oxt, vedete the Developer's guide.

    Le risorse attuali sono attualmente in fase di consolidamento nelle pagine della guida di LibreOffice.

    Prima di poter iniziare, è necessario installare l'SDK.

    Tutorial ed esempi

    Per iniziare, potete dare un'occhiata ai tutorial o al codice sorgente delle estensioni di esempio qui sotto. Il codice sorgente di LibreOffice ha anche una raccolta di esempi di SDK. Un altro modo per trovare esempi è decomprimere il file .oxt di un'estensione esistente e guardarne il contenuto.

    Basic

    Java

    • Starter Extension Estensione iniziale da utilizzare come base per le proprie estensioni
    • Estensione barra laterale Simile all'estensione iniziale, ma per creare una serie di barre laterali personalizzate
    • NOA-libre è un wrapper Java leggero orientato agli oggetti attorno all'API di LibreOffice UNO, che fornisce un'astrazione di livello superiore di molte interfacce UNO.
    • UNOHelper offre funzioni di supporto per lavorare con l'API UNO. Raccoglie le funzioni comunemente utilizzate dall'API UNO per un utilizzo più semplice.
    • LibreOffice Template System (LOTS) è una grande estensione Java con funzionalità avanzate di template, form e testo automatico.


    plugin di Eclipse

    TDF offre il plugin Eclipse LOEclipse che aiuta a sviluppare estensioni/componenti di LibreOffice in Java. Potete trovarlo su Marketplace di Eclipse.

    Python

    • unodit automatizza alcune delle attività ripetitive con le finestre di dialogo per aiutarvi a scrivere la vostra< estensione per LibreOffice in Python
    • il LibreOffice Love Letter Writer

    Vedete anche le pagine su Sviluppo di estensioni in Python, Guida alle macro in Python e Progettare e sviluppare applicazioni in Python.

    C++

    Esempi non codificati

    • Il repository github di Andreas Mantke extensionbook contiene una raccolta di esempi non codificati che spiegano come impacchettare un set di colori, modelli, testo automatico e gallerie in un'estensione.
    • Il repository github di Kevin Suo lo_l10n_templates è un esempio di come creare un set di modelli come estensione di LibreOffice e renderlo localizzato.

    Note di compatibilità

    Gli sviluppatori di LibreOffice sono prudenti quando si tratta di modifiche all'API pubblica (UNO) e quindi la maggior parte delle estensioni scritte per OpenOffice.org o Apache OpenOffice funzioneranno ancora con LibreOffice. Se si verificano modifiche, vengono annotate in ReleaseNotes (modifiche API in 4.2, 4.1 e 4.0).

    • La dipendenza OpenOffice.org-minimal-version afferma che un'estensione funziona nelle versioni di OpenOffice.org specificate così come nelle versioni di LibreOffice che corrispondono almeno alla versione di riferimento di OpenOffice.org specificata. Tutte le versioni di LibreOffice fino alla 4.2.3 riportano la corrispondenza alla versione di riferimento di OpenOffice.org 3.4, mentre le versioni di LibreOffice dalla 4.2.4 riportano la corrispondenza alla versione di riferimento di OpenOffice.org 4.1. Usando questa dipendenza, l'estensione dichiara che utilizza solo le funzionalità trovate nella versione di riferimento di OpenOffice.org specificata (e che di conseguenza funziona su tutti i prodotti, non solo per OpenOffice.org stesso).
    • Se un'estensione utilizza funzionalità specifiche di LibreOffice, a partire da LibreOffice 3.5 può specificare una nuova dipendenza LibreOffice-minimal-version con lo spazio dei nomi http://libreoffice.org/extensions/ descrizione/2011</codice>. Il suo attributo value richiesto (senza namespace) specifica la versione di LibreOffice minimamente supportata; non dovrebbe contenere un numero di versione micro e non dovrebbe essere inferiore a 3.5.
      L'attributo name generalmente richiesto (con spazio dei nomi http://openoffice.org/extensions/description/2006) dovrebbe essere “LibreOffice versione” (dove versione è il valore della versione specificato).
      È possibile trovare esempi in core/tree/desktop/test/deployment/dependencies: loversion35.oxt o loversion36 .oxt.
    • Se un'estensione è destinata a una versione specifica di LibreOffice, a partire da LibreOffice 7.0 può specificare una nuova dipendenza LibreOffice-maximal-version con lo spazio dei nomi http://libreoffice.org/extensions /description/2011 oltre alla dipendenza LibreOffice-minimal-version. Questo dovrebbe essere necessario molto raramente.