Domanda

Stiamo usando ColdFusion MX7.

Il tag CFDOCUMENT iText utilizza per la creazione di PDF in modo da tutta la libreria iText è incluso nella distribuzione CF standard.

Il problema che sto avendo è che voglio usare una versione di iText che è più recente di quella inclusa nel CF7. Ho bisogno di mantenere CFDOCUMENT funzionamento, in modo semplicemente cambiando il file jar non è un'opzione.

Quello che ho fatto finora è quello di caricare la fonte iText in Eclipse e refactoring di un nome diverso. Che funziona bene ed è stato fare così per circa un anno.

Tuttavia, vorrei aggiornato alla nuova release iText, e saltare attraverso i cerchi di refactoring di nuovo è un po 'scoraggiante.

C'è un modo più semplice per caricare i barattoli e non li hanno in conflitto con la vecchia versione?

È stato utile?

Soluzione

Una possibilità è quella di utilizzare il JavaLoader.cfc per caricare una versione più recente del vaso. Dal momento che utilizza un programma di caricamento classe esterna può essere utilizzata senza disturbare la versione esistente.

http://www.transfer-orm.com/?action=javaloader .index

http://javaloader.riaforge.org/

Tuttavia, sarebbe ancora bisogno di riscrivere il createObject ( "Java", "path.to.class") le dichiarazioni di utilizzare javaLoader.create ( "path.to.class"), invece. Ma nel lungo periodo, che potrebbe essere migliore di refactoring, perché sarebbe più facile per aggiornare il vaso iText in futuro.

Altri suggerimenti

iText v5.0.0 appena rilasciato e uno dei più significativi cambiamenti è che il nome del pacchetto è stato cambiato da "com.lowagie" a "com.itextpdf" che permette di coesistere.

È sufficiente scaricare il nuovo file iText.jar e rinominare a "iTextpdf.jar" e posizionarlo nella cartella corretta LIB per CFMX.

Quando si esegue le chiamate CreateObject, è sufficiente utilizzare il nuovo percorso nome del pacchetto.

JavaLoader è una grande utility, ma se non si carica in ambito server (il caricatore iniziale con percorsi per il vaso iText) e assicurarsi che sia caricato solo una volta, si può incorrere in problemi di perdita di memoria grave.

Usando l'ultimo refactoring di iText significa che non c'è bisogno di preoccuparsi.

se quello che vuoi è la funzionalità di CF8 cfdocument, allora ci potrebbe essere un modo più semplice. ricordare che Railo e openbd entrambi hanno funzionalità cfdocument che è alla pari con CF8 ed entrambi sono i motori liberi. quello che si potrebbe fare è scaricare e installare uno di questi motori sullo stesso server o uno diverso se lo si desidera. quindi scrivere un webservice all'interno Railo o openbd che avvolge la funzionalità cfdocument e restituisce il pdf a voi.

non è la soluzione più bella, ma nessuno dei due è refactoring itext o hackerare la versione itext che è venuto con cfr.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top