Macro per creare un file pdf con testo predefinito

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Buonasera,
premetto che sono quasi totalmente inesperto in codice di programmazione, avrei la necessità di creare un file pdf con parte di testo predefinito e parte di testo in cui vengono sostituiti dei valori ricavati dal foglio di calcolo.
Vado più nel dettaglio. Devo calcolare alcune percentuali di sconto a partire da fatture di diversi clienti; pertanto per ognuna di esse devo creare un pdf con lo sconto applicato. Ho quindi creato un foglio di calcolo con le formulette che mi servono, in modo da produrre i risultati che devo poi inserire nel file di testo (presente in un file Writer), con i nuovi valori e la nuova intestazione cliente, e da qui convertirlo in pdf. Ora, fare copia e incolla dalle celle e poi sostituire le porzioni di testo interessate sul file di Writer, oltre a essere troppo ripetitivo può facilmente indurre a errori. Mi chiedevo pertanto se esiste il modo di creare il file pdf direttamente dal foglio di calcolo, con parte di testo predefinita e parte di testo con i valori sostituiti presi dalle celle interessate.
Grazie anticipatamente a chi vorrà aiutarmi.
LibreOffice 26.2.5.2 su Linux Mint 22.3
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per creare un file pdf con testo predefinito

Messaggio da patel »

io scriverei il testo direttamente nel foglio1, senza usare writer, richiamando i dati calcolati dal foglio2, si tratta di dimensionare la larghezza delle colonne in modo opportuno e poi disabilitare in stampa la griglia delle celle-
Se hai difficoltà allega un file di esempio
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Ciao grazie per la risposta. Sì ci avevo pensato, ma come creo la macro?
LibreOffice 26.2.5.2 su Linux Mint 22.3
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Macro per creare un file pdf con testo predefinito

Messaggio da Gaetanopr »

Per poter scrivere una macro ci vogliono i file di esempio come già ti aveva detto patel.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Scusate per file di esempio cosa intendete esattamente?
LibreOffice 26.2.5.2 su Linux Mint 22.3
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per creare un file pdf con testo predefinito

Messaggio da patel »

Si potrebbe anche fare a meno di una macro se si stampa su una pdfprinter
Per esempio si intende il tuo file ods senza dati sensibili (ammesso che ci siano)
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Il problema è che il pdf che si deve generare deve rispettare una certa formattazione, fra cui sfondo pagina, carattere, colori.. Mi serve poter immettere i dati ricavati dalle celle di volta in volta nel file di testo il quale non deve perdere la formattazione ma solo cambiare alcune parti di testo.. Se volete vi allego il file ma credo sia superfluo, nel senso che si può partire da un qualsiasi testo odt come una lettera intestata..
Mario Rossi
via xxx
p.iva xxxxx...


Egregio signor Rossi, di seguito il preventivo elaborato per lei.
il suo ultimo ordine le è costato X, con lo sconto applicato pagherebbe Y...

.....................
In rosso, a mo' di esempio, sono le parti che varierebbero ogni volta.
LibreOffice 26.2.5.2 su Linux Mint 22.3
Avatar utente
lucky63
Volontario molto attivo
Volontario molto attivo
Messaggi: 3105
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro per creare un file pdf con testo predefinito

Messaggio da lucky63 »

Registrando il tuo file calc come fosse una base di dati puoi poi collegarne facilmente le intestazioni di colonna desiderate nella tua "lettera/Modulo" tipo di Writer come voci di campo .... dai uno sguardo ai tre allegati che trovi a questo link ... viewtopic.php?f=8&t=580#p16355 ...
Alla fine ti basta mandare in stampa su una pdfprinter ...
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Quello che mi serve ha qualcosa di simile a quel procedimento ma non credo che possa andare. Infatti non ho un database di clienti già pronto (né mi serve costruirlo prima), dovrò elaborare di volta in volta il documento man mano che si presenta un nuovo cliente e inviare il pdf prodotto. Anche volendo creare un database con tutti i clienti che devo processare e i relativi valori X e Y, perderei più tempo rispetto al semplice copia/incolla manuale. Mi serve proprio un modo che dal foglio di calcolo mi automatizzi il processo di copiare e incollare alcune celle in determinati campi del documento (se poi non crea il pdf in modo automatico non importa, posso farlo manualmente da Writer). Forse ciò che chiedo non è tecnicamente realizzabile..
LibreOffice 26.2.5.2 su Linux Mint 22.3
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per creare un file pdf con testo predefinito

Messaggio da patel »

è inutile discutere se non ci fai vedere di cosa si tratta, perdiamo solamente tempo.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Scusa patel, lungi da me innescare una sterile polemica o far perdere del prezioso tempo a voi gentili volontari, ma cosa dovrei far vedere il file odt? Il foglio calc? Perché sinceramente non capisco che differenza possa fare allegare lo stesso testo che ho riportato sinteticamente nella citazione sopra (non penso sia rilevante vedere la filigrana o il logo di sfondo, che per motivi di privacy non potrei nemmeno diffondere)..

Nel foglio di calcolo ho semplicemente impostato una cella che mi calcola una percentuale: "B=A-(A*20/100)", dove A è un importo preso da un documento riferito a un cliente e B è lo sconto da applicare nel preventivo. Il valore della cella B lo devo copiare e inserire/sostituire in una parte di testo (come nell'esempio X e Y sopra) del file odt, insieme al nome del cliente, e una volta compilato il file di testo convertirlo in pdf. Ovviamente questa operazione va ripetuta per tutti i nuovi clienti (di cui non ho una lista di partenza, ce l'avessi avrei seguito l'esempio di lucky63 almeno per le intestazioni) adattando di volta in volta lo stesso file di testo. Anche qui mi sembra superfluo allegare un file calc con solo B=A-(A*20/100).. :roll:
Più dettagliato di così non so come spiegare.

Spero che questo post sia stato utile a migliorare la comprensione del concetto, in caso contrario vi ringrazio ugualmente per l'attenzione dedicata.
LibreOffice 26.2.5.2 su Linux Mint 22.3
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per creare un file pdf con testo predefinito

Messaggio da patel »

patel ha scritto:io scriverei il testo direttamente nel foglio1, senza usare writer, richiamando i dati calcolati dal foglio2, si tratta di dimensionare la larghezza delle colonne in modo opportuno e poi disabilitare in stampa la griglia delle celle-
Se hai difficoltà allega un file di esempio
hai letto questa ? è questo il file che vorrei
nick ha scritto: non penso sia rilevante vedere la filigrana o il logo di sfondo, che per motivi di privacy non potrei nemmeno diffondere)..
infatti ho chiesto un file di esempio
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
lucky63
Volontario molto attivo
Volontario molto attivo
Messaggi: 3105
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro per creare un file pdf con testo predefinito

Messaggio da lucky63 »

nick ha scritto:operazione va ripetuta per tutti i nuovi clienti (di cui non ho una lista di partenza ...
nick ha scritto:mi sembra superfluo allegare un file calc con solo B=A-(A*20/100)
Puoi impostare direttamente nel tuo file writer dei "CampiCompilabiliVariabili". Vedi esempio:
Test - Modulo con campo calcolato.png
- Facendo doppio click sulle voci di campo riportate in BLUE cambi i rispettivi valori.
- La voce di cognome ROSSI riportata nel testo viene modificata automaticamente.
- Facendo doppio click sulla voce di costo puoi cambiarne il valore.
Quanto pagherebbe viene calcolato automaticamente (sconto 20%).
Se vuoi modificare formula fai doppio click sul campo e modifica valore della formula.
Alla fine esporti in pdf
Allegati
Test - Modulo con campo calcolato.odt
(14.89 KiB) Scaricato 165 volte
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per creare un file pdf con testo predefinito

Messaggio da patel »

Ottimo lucky, non sapevo di questa possibilità :bravo: :bravo:
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Grazie mille lucky, hai centrato il problema e direi che a livello di logica me lo hai anche risolto! :super:
Poter fare tutto direttamente dal file di testo evita il passaggio dal foglio di calc, nemmeno io ero a conoscenza che si potessero impostare formule in writer.. Perdona la mia ignoranza, ma non ho capito la sintassi della formula (XXX da dove viene preso?). C'è qualche guida per le formule in writer dove posso dare un'occhiata?
Appena ho modo modifico il mio file e farò delle prove per testare il risparmio di tempo.
LibreOffice 26.2.5.2 su Linux Mint 22.3
Avatar utente
lucky63
Volontario molto attivo
Volontario molto attivo
Messaggi: 3105
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro per creare un file pdf con testo predefinito

Messaggio da lucky63 »

.
nick ha scritto:non ho capito la sintassi della formula (XXX da dove viene preso?). C'è qualche guida per le formule in writer dove posso dare un'occhiata?
XXX è il “NomeDelCampo” corrispondente al dato variabile acquisibile dall'utente e che nel tuo esempio avevi indicato in rosso con la lettera X.

YYY è il “NomeDelCampo” corrispondente al dato variabile che nel tuo esempio avevi indicato in rosso con la lettera Y.

Al posto di XXX o YYY sarebbe stato preferibile assegnare un nome Mnemonico come ad esempio COSTO al posto di XXX e CostoScontato al posto di YYYY ma ho lasciato XXX e YYY come riferimenti più diretti al tuo esempio dove indicavi le voci variabili come X e Y.

Cliccando sul campo XXX (quello che nell'esempio di cui sopra appare già valorizzato con il valore 30) puoi cambiare il valore e XXX assumerà quel nuovo valore.

Nel campo variabile YYYY è inserita la corrispondenza della formula da te indicata come: A-(A*20/100)
dove al posto della lettera A è indicato il “NomeDelCampoVariabile” XXX da cui acquisire il valore da utilizzare.

Notare che nell'esempio il campo YYYY è stato impostato come “Variabile” con la possibilità quindi di richiamarlo anch'esso in ulteriore possibile contesto di calcolo nel documento. Se ciò non servisse il campo YYY poteva non essere impostato come “Variabile” ma anche solo come campo “Formula”.

Per inserire un “comando di campo variabile” occorre posizionarsi nel punto desiderato del documento.
Da Menu > Inserisi > Comando di campo > Altro (oppure CRTL + F2) > Variabili > … impostare il campo come da preferenza ….

Ai comando di campo inseriti nel documento può essere poi impostata una formattazione di preferenza in linea con lo stile del documento o più particolareggiata per farli meglio evidenziare.

I comandi di campo utilizzabili sono molti.
Come documentazione trovi qualcosa di utile nell'help di Open/LibreOffice o approfondendo altri esempi postati nel forum o con una ricerca on-line.
Fortunatamente comunque il loro utilizzo è in generale abbastanza intuitivo ...
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

Ciao lucky stavo provando a mettere a frutto la tua preziosa spiegazione modificando il file di testo su cui devo lavorare, ma sorge già un primo problema. Mi sono accorto infatti che la formula funziona solo se la percentuale viene calcolata dopo, nello stesso rigo. Mi spiego meglio:

Sta pagando X, con lo sconto pagherebbe Y ---> la formula viene correttamente applicata
Con lo sconto pagherebbe Y, mentre ora sta pagando X ---> la formula non viene applicata.

Purtroppo non potendo modificare il testo devo lasciare la struttura così com'è e far funzionare il secondo rigo. È possibile?
LibreOffice 26.2.5.2 su Linux Mint 22.3
nick
Messaggi: 41
Iscritto il: martedì 10 gennaio 2012, 15:52

Re: Macro per creare un file pdf con testo predefinito

Messaggio da nick »

È un'ingegnosa quanto semplice soluzione. Il mio sfondo non è bianco (e figuriamoci) ma ovviamente basterà applicare la stessa logica uniformando al colore di sfondo.
Al più breve provo a vedere se con questo sistema riesco ad inserire anche le altre formule, in modo da sostituire completamente il foglio di calcolo, in caso di intoppi aggiorno il thread.
Grazie ancora

p.s. ho notato che con OpenOffice Writer basta un solo click per modificare i campi, mentre con LibreOffice bisogna fare il doppio. Non si può uniformare anch'esso con un solo click?
LibreOffice 26.2.5.2 su Linux Mint 22.3
Rispondi