Macros/Impress/004/it

Descrizione
È utile poter copiare in memoria un attributo della forma o dell'oggetto attualmente selezionato. A tal fine, è indicato l'uso di Python, in quanto è semplice trovare e importare delle librerie in grado di copiare una stringa in memoria, cosa che sarebbe non così banale da fare usando le funzioni o le librerie di LibreOffice Basic. (In ogni caso, il libro di Andrew Pitonyak, OOME v3 a pagina 267 contiene un esempio di copia in memoria usando LO Basic.)

Nella macro seguente, l'accesso all'oggetto attualmente selezionato viene eseguito usando  che indica l'elemento zero della matrice di oggetti selezionati. Una forma come com.sun.star. drawing.RectangleShape avrà l'attributo FillColor. Il colore è rappresentato da un intero lungo, che ha la seguente definizione matematica:


 * Color Value $$=R*2^{16} + G*2^8 + B*2^0$$

dove $$R,G,B$$ sono valori a 8-bit (tra 0-255) che rappresentano rosso, verde e blu. Perciò, dev'essere creata una funzione che usando operazioni modulari ed altre operazioni matematiche estragga il più convenzionale formato RGB standard e quindi il codice esadecimale del colore.

Una volta eseguito l'accesso all'attributo FillColor, lo script fa uso del modulo pyperclip per copiare il valore in memoria. Per installare pyperclip, eseguite

Potreste anche dover aggiungere il percorso dei pacchetti, nel caso in cui LibreOffice non trovi l'installazione di pyperclip, ad esempio come:

LO Basic
tbc

Scaricate il file ODP

 * [[Media:Example macro to copy shape hex color to clipboard.odp|Scaricate il file ODP che contiene questa macro]]