Newsgroup: it.comp.java
Titolo: HTML 2 PDF: conversione possibile? A che prezzo?

Ho necessità di tradurre del codice HTML in PDF.
Ovvero generare dei documenti PDF in JAVA a partire da codice HTML prelevato
da DB e/o costruito al volo; il codice HTML in questione in realtà è molto
semplice, implica al più tabelle e liste ma non ingloba - per esempio -
fogli di stile.
Fare tutto a mano usando - ad esempio - iText è un'impresa, ma del resto
anche l'utilizzo di strumento potenti e versatili come JasperReport viene
vanificato dalla presenza direttamente in database del codice HTML.
Ho trovato alcuni applicativi in rete che servono allo scopo: quei pochi
gratuiti non mi sembravano all'altezza, gli altri sono a pagamento. Non ho
approfondito molto, comunque, magari qualcuno di voi conosce quello giusto
(gratuito o a basso prezzo).
In alternativa pensavo di partire da una traduzione in buon XHTML e tramite
un foglio XSL e una conversione XSLT passare al formato XSL-FO e tramite
programmi gratuiti generare PDF o altro.
Che via mi consigliereste?
Grazie ;)

 Che via mi consigliereste?
di non farlo :)
comunque, boh, html2tex + pdflatex potrebbe essere un'idea, ma richiede lo
stesso di lanciare programmi esterni.
-- 
By ZeD

 
Creare una stampante virtuale che ti genera un pdf invece della stampa, 
potrebbe fare al caso tuo?

Oops, dimenticavo lo scenario:
  - contesto di una WEB application che gira sotto Tomcat;
  - necessità di generare effettivamente un documento PDF con tutte le
peculiarità di quest'ultimo, in particolare la possibilità di andare a capo
con le celle di una tabella in maniera "pulita", senza spezzarle tra due
pagine;
  - non necessariamente l'HTML visualizzato ed il PDF risultante appariranno
uguali, tipicamente andranno resi in modo lievemente differente.

 stesso di lanciare programmi esterni.
Mmh, programmi esterni penso non facciano al caso mio.
Cmq grazie ;)

 potrebbe fare al caso tuo?
In questo caso dovrei stampare direttamente dal browser su tale stampante
(visto che l'HTML è a DB ed è il browser a renderizzarlo correttamente):
visto lo scenario (JSP) si potrebbe fare prescindendo dal client?

kala ha scritto:

Ho capito.
Abbiamo una applicazione del genere nella intranet dove lavoro io.
Viene visualizzata una table in html e poi cliccando su un link viene 
generato automaticamente un pdf che il server restituisce.
Provero' a capire che meccanismo c'e' dietro.


Cosi', a bruciapelo:
- "HTML Parser" per parsare la pagina HTML e estrarre le informazioni utili
- Apache FOP: Per creare il PDF
Sarebbe tutto piu' facile se avessi le informazioni in formato XML e due 
XSL che generano HTML uno e XSL-FO l'altro (Il quale a sua volta 
generera' il PDF).

 Provero' a capire che meccanismo c'e' dietro.
Esattamente.
Grazie, troppo gentile. :) :)
In realtà sono abituato, per altre applicazioni intranet del tutto similari,
a partire da testi e immagini e costruire da una parte l'HTML, dall'altro
PDF, Excel e tutto il resto: ma qui l'HTML è scritto in DB e così mi obbliga
ad un qualche tipo di conversione...

 generera' il PDF).
Sě, l'dea mi sembra buona.
Conta perň che l'HTML in DB viene inserito dall'utente (che, comunque, si
puň assumere "addestrato"): č possibile secondo te scegliere una sintassi di
partenza semplice per poi procedere in questo modo? Si tratterebbe di
utilizzare liste (UL), formattazione banale (B, I, U) e cosucce cosě...

kala ha scritto:

http://cocoon.apache.org/

> 
http://cocoon.apache.org/
Sembra estremamente interessante, l'avevo solo sentito nominare ma non ho
mai approfondito.
Ma in pratica - pedonami, a quest'ora ho solo buttato un'occhiata veloce -
devo svilupparci sopra l'intera applicazione o lo posso usare all'interno di
una mia preesistente (questa sarebbe con Struts 1)?
Grazie ;)

 utilizzare liste (UL), formattazione banale (B, I, U) e cosucce così...
Hmmm ... Si, si puo' fare, pero' se l'utente ha liberta' assoluta sul 
codice inserito, la vedo dura: Metti caso che si dimentichi di chiudere 
un tag, o che sbagli la sequenza UL/LI ... In questo caso la tua 
applicazione deve essere veramente robusta :) !
In alternativa puoi fare un check del codice inserito, controllare cioe' 
se e' XML "well-formed" o al limite XML-valid (Usando un DTD).

kala ha scritto:

Sto approfondendo anche io in questi giorni, ma credo che tu possa 
tranquillamente usarlo con una tua applicazione preesistente.
Nel progetto che sto seguendo viene usato come servlet in tomcat ..



No, no, l'utente ha solo la libertà che gli do io: altrimenti bastonate!! :D
I campi che inserisce l'utente devono essere in HTML, magari con tag
"personalizzati", in modo che quando li unisco vadano a generare un XHTML
ben formato: mi sembra una buona partenza, no?
Mi daresti qualche dritta poi per procedere in questa direzione?
Intanto grazie ;)

 Nel progetto che sto seguendo viene usato come servlet in tomcat ..
Ah, per cui anche come "modulo" aggiuntivo... Interessante.
Andrò a documentarmi anch'io, se vorrai aggiornarmi qui o in altro thread mi
farai un gran favore, cmq grazie per le risposte.

Se può esserti utile, sappi che la nuova version di JR (2.0.5), in
uscita a giorni, supporterà testo formattato in HTML e RTF in un
textfield
Ciao
Stefano


 Mi daresti qualche dritta poi per procedere in questa direzione?
Mah, prima di tutto dovresti impratichirti con XSL, cosi' da sapere come 
trasformare il tuo XHTML in XSL-FO per poi generare il PDF, e magari 
pure per trasformare il tuo XHTML "scarno" in HTML ben impaginato.
http://xmlgraphics.apache.org/fop/quickstartguide.html
Una volta che hai i tuoi due .xls, la trasformazione la farei eseguire 
all'interno di un servlet-filter. Qualche spunto lo trovi qui:
http://xmlgraphics.apache.org/fop/0.95/servlets.html
Buon lavoro !

Ben gentile! :)
Grazie, ciao ;)

 textfield
Beh, male non fa, direi! :)
Questo dovrebbe risolvere in maniera abbastanza indolore il mio problema.
E' probabile a 'sto punto che risolva in questa maniera, ma alla fine penso
che approfondirò anche il discorso dell'XML-FO che m'intrippava parecchio..
Grazie, ciao