Formattazione RTF nei campi testo

Diversi formati grafici all’interno dello stesso campo testo

Uno dei limiti maggiori della creazione dinamica di documenti utilizzando procedure automatiche di impaginazione risiede nel fatto che le informazioni e i dati che provengono da database e che  devono popolare campi appositamente predisposti possono avere solamente un unico aspetto (formattazione) per tutti i contenuti del campo.

Quando ci si trova a dover impaginare contenuti che devono avere diverse formattazioni all’interno dello stesso paragrafo, la formattazione automatica trova i suoi limiti.

Acrobat Javascript ancora una volta consente di trovare una soluzione ai limiti (apparenti) dell’impaginazione automatica.

Tra le proprietà dei campi testo di Acrobat ne esiste una che consente di attribuire formattazioni “ricche” al contenuto del campo, spuntando le opzioni “Consenti RTF” e mostrando la barra delle proprietà di formattazione (da Acrobat ctrl + E), è possibile utilizzare il campo testo come un word processor e formattare selettivamente porzioni di testo con colori, sottolineature, grassetto, corsivo, allineamento, ecc.

Il limite di tutto ciò è che questa funzionalità è solamente gestibile con l’interfaccia grafica e non è possibile esportare il contenuto formattato in modo da poterlo riutilizzare, da memorizzarlo in un database, ecc.
Con Javascript è però costruire programmaticamente contenuti formattando in modo diverso (con stili predefiniti) contenuti dinamici parziali, provenienti da database o digitati a mano che poi verranno inseriti nel campo in cui è stata impostata l’opzione “Consenti RTF”.
Javascript consente di utilizzare l’oggetto span per creare selezioni di testo con proprietà di formattazione definite.

Qui di seguito un esempio funzionante in formato pdf in cui modificando i testi nei due campi editabili (di colore giallo) si ottiene una formattazione parzialmente associata al testo del campo RTF.

Scarica l’esempio testo formattato RTF.pdf

Il codice richiamato dall’evento Formato dei campi di input è il seguente:

function rtf()
{
testo1=this.getField("testo1").value;
testo2=this.getField("testo2").value;
aWords = [ testo1, testo2 ];
var spans = new Array();
spans[0] = { text: aWords[0]+"/", fontStyle: "normal",alignment: "left",fontWeight: 200, textColor: ["RGB", 0, 0, 0 ], underline: false };
spans[1] = { text: aWords[1], fontStyle: "italic",fontWeight: 700, textColor: ["RGB", 0.3, 0.3, 0.3 ],underline: false };
var f = this.getField("RTF");
f.richValue = spans;
}

4 risposte a “Formattazione RTF nei campi testo”

  1. Buonasera. L’articolo è molto interessante.
    Ho necessità di arricchire (italic, bold, ecc.) il testo di un campo modulo, ma la barra di formattazione (Ctrl + E) risulta inattiva (sia in Acrobat 9 che X). Può darmi qualche suggerimento?
    Grazie.

    1. Per poter attivare la barra delle proprietà (CTRL+E) è necessario che il campo testo sia stato abilitato alla formattazione RTF (dalle proprietà del campo) con Acrobat al momento della creazione del modulo PDF.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *