Back to top

Autore Topic: JDocument e PDF  (Letto 5655 volte)

mau_develop

  • Visitatore
JDocument e PDF
« il: 24 Set 2010, 19:42:33 »
qualcuno sviluppando ha mai dovuto generare una view pdf usando la Document di joomla?

... ma ha dei problemi? ...ci sono metodi nelle api che non trovo (setName) ... non riesco a definirgli il mime application/pdf e il render lo fa della index.php ritornando l'esatto sorgente html in un file non apribile con un lettore pdf in quanto dice che è text

Prima di usare qualcosa di esterno volevo sentire qualche consiglio

M.

EDIT: mmmhh credo di aver capito il problema o i problemi,... devo mettere un trigger rifare il content e usare dispatcher per avere la mia pagina.
« Ultima modifica: 25 Set 2010, 10:54:43 da mau_develop »

mau_develop

  • Visitatore
Re:JDocument e PDF
« Risposta #1 il: 27 Set 2010, 11:20:44 »
boh... vado avanti un po' da solo visto che ci sono novità.

Allora, questo vale per chiunque usi TCPDF.
La prima cosa da fare è scaricare la nuova versione di tcpdf dal sito del developer e sostituire la cartella unzippata a quella presente in libraries.
Già le cose cambiano di molto, ...manca poco, ora ho l'output del codice sorgente della pagina printato a video... devo buttarlo in un file... poi scrivo magari due righe poichè ho trovato un sacco di documentazione penosa, ognuno fa un po' come gli pare arrivando ad avere un file con svariati artifici...

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:JDocument e PDF
« Risposta #2 il: 27 Set 2010, 13:02:53 »
quando arrivi alla soluzione perfavore postala qua, perchè anch'io fra poco mi cimenterò nel simpatico mondo delle stampe...

altrimenti vi beccherete un altro mio thread :D
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:JDocument e PDF
« Risposta #3 il: 27 Set 2010, 15:43:36 »
ce l'ho quasi fatta, riesco a creare il file che finisce in una directory... speravo di riuscire a visualizzare il prompt "salva" di modo che finiva in scrivania...mo' vediamo anche qs...

M.

mau_develop

  • Visitatore
Re:JDocument e PDF
« Risposta #4 il: 27 Set 2010, 17:24:08 »
Ed eccolo :)

Allora, precisiamo che non è la soluzione in assoluto, è la mia soluzione.
Se me la criticate (costruttivamente) mi indicate errori etc ... non mi fate che un favore :)

Prima di tutto scaricate l'ultima versione di tcpdf da tcpdf.org e sostituite in toto la cartella tcpdf (*ATTENZIONE sono in fase di test... non so se questa cosa va ad influire sulla generazione pdf di joomla... non credo) tenetevi cmq la vecchia cartella.. si sa mai :)

nella view di una scheda ho implementato un bottone della toolbar che chiama la funzione pdf() del mio controller.

La funzione pdf del mio controller attraverso un metodo del model recupera tutti i dati della scheda che vengono assegnati ad una view.pdf, non assegno alcun template.

nella view importo e istanzio la classe:
      jimport('tcpdf.tcpdf');
      $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

dopodichè tutto ciò che serve per "configurare l'output" lo trovate già quasi pronto negli esempi di tcpdf.org.

basilare è l'output alla fine che può essere in vari modi:
I: send the file inline to the browser.
D: send to the browser and force a file download with the name given by name.
F: save to a local file with the name given by name.
S: return the document as a string.
...è l'ultimo parametro di:
$pdf->Output('example_002.pdf', 'D')  <- D ad esempio era il mio ultimo cruccio :)

comunque un bellissimo tutorial sull'uso di qs classe lo trovate quì:
http://www.akamarketing.com/blog/109-php-to-pdf-conversion-with-tcpdf.html

Considerazioni:
facendo come ho fatto, ricorrendo cioè ad una view senza template ( ma anche se avessi messo un template) avrei dopo il prompt che mi chiede di salvare, una pagina bianca;
pensavo quindi di lasciare il model e fargli fare il lavoro sporco e usare il controller per la redirezione alla scheda se la funz del model (produrre il pdf) ha successo.

Come dicevo... funzionare funziona... a voi le considerazioni.

M.
« Ultima modifica: 27 Set 2010, 17:25:40 da mau_develop »

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:JDocument e PDF
« Risposta #5 il: 27 Set 2010, 17:44:25 »
ma per ovviare alla pagina bianca, non potresti creare un template, senza nulla, ma con uno script in js che ti fa la redirezione dove vuoi te dopo X secondi?

così ti viene il prompt e mentre l'utente sceglie torna dove vuoi te.
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:JDocument e PDF
« Risposta #6 il: 27 Set 2010, 18:15:09 »
:) nella view o nel template non hai il metodo per il redirect... comunque sia..
meglio la soluzione della view.php senza template perchè non fa la pagina bianca come credevo, non avevdo un nuovo template lascia la view della scheda. creando invece anche un template avresti la visualizzazione di quello.

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:JDocument e PDF
« Risposta #7 il: 27 Set 2010, 20:37:49 »
infatti io dicevo non di utilizzare il metodo lato server, ma tramite javascript.
io l'ho fatto per tornare indietro dopo aver lanciato una stampa e devo dire che il risultato è comodo.

cmq se a te ti funziona meglio così :D
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:JDocument e PDF
« Risposta #8 il: 28 Set 2010, 22:50:52 »
ciao maurizio,
 la ho usata qualche volta, ma i risultati non sono eccezionali...

quando specifichi nell'url format=pdf joomla cerca la view xxx.pdf.php, carica il template e ne effettua il rendering html, lo passa alla libreria che effettua la trasformazione in pdf, con tutti i suoi limiti. in questo caso non viene caricato il 'contorno' della view (ovvero ciò che è al di fuori dell'output del componente).

il mime ed il content-disposition:attachment sono impostati da joomla, quindi non vi è bisogno di indicarli.

se ricordo bene il nome del file viene impostato a quanto indicato con il metodo setTitle() applicato all'istanza restituita da JFactory::getDocument().

mi sa che a questo ci eri già arrivato... qualcosa di più specifico?

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif