Newsgroup: it.comp.java
Titolo: <no subject>

Ho un problemone che mi sembra stano NESSUNO al mondo abbia MAI affrontato:
devo convertire alcune pagine (non sempre le stesse ovviamente ma scelta
dagli utenti) da formato HTML a formato PDF tramite javascript;
sto letteralmente impazzendo a scartabellare Newsgroup, Mailinglists,
Documentazione varia di Adobe ed altro ma NESSUNO sembra aver MAI
affrontato il problema.
Un ipotetico utente dovrebbe poter selezionare le pagine da salvare e
tasformarle in un unico file PDF da riutilizzare in futuro, ovviamente
senza installarsi altro che Acrobat Reader.
Ho gia' provato a scaricare iText, PDF Writer di Adobe, PJ,retepdf ma tutti
propongono una bella traduzione txt to pdf....x me inutile
AIUTO!
Qualcuno riesce ad aiutarmi ??
qualcuno ha gia' creato uno script HTML2PDF sfruttando una dei pacchetti
sopralencati ??
Riccardo
Riccardo Mantero
Andersen Consulting
Largo Donegani 2, Milano (ITA)
Accenture is the new name for Andersen Consulting as of January 1, 2001.
Our web address is 
http://www.accenture.com
This message is intended solely for the designated recipient, may contain
privileged or confidential information and may be subject to
confidentiality agreement(s).  Access to this email by anyone else is
unauthorized. If you are not the intended recipient, any disclosure,
copying, distribution or any action taken or omitted to be taken in
reliance on it, is prohibited and may be unlawful.  If you have received
this message in error, please notify the sender immediately by reply e-mail
and destroy the original communication.
-- 
Posted from 
LOCMR1001.ac.com
 [212.161.27.70] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Largo Donegani 2, Milano (ITA)
a proposito... noto la ditta di cui fai parte... non sei il primo di
AC con cui ho a che fare... bene o male tutti mi avete confermato che
i milioni vanno a chi meno se lo merita :)
(scusate l'OT)
Kali

Ho un problemone che mi sembra stano NESSUNO al mondo abbia MAI affrontato:
SEI OFF TOPIC!
qui si parla di java, non javascript!
Kali

non ho voglia di ribattere, le risposte sono alla thread sopra...credo che
usero' mailgate solo per le notizie sui crack dei videogiochi visto che
almeno li gli utenti sono gentili e non spacconi.....
Riccardo Mantero
Andersen Consulting
Largo Donegani 2, Milano (ITA)


 writes:
rm> Ho un  problemone che mi sembra  stano NESSUNO al  mondo abbia MAI
rm> affrontato:
In informatica è la prima volta  infatti che si passa dal formato A al
formato  B.  Andersen  ('nuff  said)  ha già  fatto  la  richiesta  di
brevetto...
rm> devo convertire alcune pagine  (non sempre le stesse ovviamente ma
rm> scelta  dagli  utenti)  da  formato  HTML a  formato  PDF  tramite
rm> javascript;
Java non è JavaScript e 
#define OFFTOPIC
JavaScript è  troppo debole  come linguaggio per  fare un'elaborazione
del genere e non mi pare esista la document.read() - mentre esiste la 
document.write(), RTFM
#undef OFFTOPIC
Client side  o ti fai  un'applicazioncina che banalmente  individua il
file da convertire (salvato a mano dall'utente) e richiama la pipe che
ti hanno indicato oppure inserisci nella pagina un link al PDF che fai
generare server side.
Esiste poi un'ulteriore possibilità, una  fare tutto in Java, ma per i
dettagli dell'idea che ho in  mente devi rivolgerti al mio capo quando
torna dalle ferie :)
\begin{echelon}
genetic cryptographic Waco, Texas Nazi Cocaine South Africa Clinton
Ft. Bragg Saddam Hussein Rule Psix North Korea nuclear cracking
Marxist Legion of Doom
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+







Qualcuno potrebbe dare un occhiata a questo 
codice?


E' un applet ma non vuole funzionare (col Java Plugin funziona ma è troppo 
ingombrante da scaricare). Qualcuno potrebbe darci un occhiata e dirmi cos'è che 
l'explorer non comprende? O se ci sono altri errori?


Graph.class:


import java.awt.*;


import 
java.applet.Applet;


import java.io.*;


 


public class 
Graph 

extends
 
Applet


{ public void init()


{ fn = getParameter("
filename
");


}


 


public void 
paint(Graphics g)


{ Rectangle d = bounds();


g.drawRect(1,1,d.width-1,d.height-1);


g.setColor(Color.white);


g.fillRect(1,1,d.width-1,d.height-1);


Lineare l = new Lineare(fn);


PuntoQ[] punti = l.getPoint(new Punto(d.width, 
d.height));


int[] xP = new int[punti.length];


int[] yP = new int[punti.length];


int[] VolY = new int[punti.length];


for(int cont = 0; cont < punti.length; cont++)


{ xP[cont] = punti[cont].getX();


yP[cont] = punti[cont].getY();


VolY[cont] = punti[cont].getYVol();


}


g.setColor(Color.green);


g.drawPolyline(xP, yP, punti.length);


g.setColor(Color.gray);


int space = (int)punti[punti.length-1].getX();


Giorno[] gg = l.getGiorni();


int v = space/gg.length;


Font f = new Font("Arial", Font.BOLD, 10);


g.setFont(f);


for(int cont = 0; cont < gg.length; cont++)


{ int xd = cont*v;


g.drawString(gg[cont].toString(), 
xd-18+d.width/20,(int)(d.height*0.9)+9);


g.drawLine(xd+d.width/20,d.height/100,xd+d.width/20,(int)(d.height*0.9));


}


double[] YQ = l.getSQuot(15);


int[] YP = new int[15];


for(int c = 0; c < 15; c++)


{ YP[c] = l.getY(new Punto(d.width, d.height), 
YQ[c]);


g.drawString(YQ[c]+"", xP[xP.length-1]+20, 
YP[c]+5);


g.drawLine(d.width/100, YP[c], xP[xP.length-1]+14,YP[c]); 



}


g.setColor(Color.blue);


for(int cont = 0; cont < punti.length; cont++)


{ g.drawLine(xP[cont], YP[0], xP[cont], 
YP[0]-VolY[cont]);


} 


}


String fn;


}


Grafico.class:


import java.io.*;


import java.util.*;


import java.net.URL;


class Grafico


{ public Grafico(Vector quot)


{ qs = quot; 


}


 


public Grafico(String filename)


{ try


{ URL url = new 
URL("
http://localhost/grafici/
"+filename);


StringTokenizer t;


String date;


Giorno day;


try 


{ BufferedReader in = new BufferedReader(new 
InputStreamReader(url.openStream()));


Vector v = getLine(in);


qs = new Vector();


for(int cont = 0; cont < v.size(); cont++)


{ if(!v.get(cont).equals(""))


{ t = new StringTokenizer((String)v.get(cont)," 
");


if(!(date = t.nextToken()).equalsIgnoreCase("data")) 



{ day = new 
Giorno(Integer.parseInt(date.substring(3,5)),


Integer.parseInt(date.substring(0,2)),Integer.parseInt(date.substring(6,10)));


qs.add(new Quotazione(new 
Double(t.nextToken()).doubleValue(),


new Double(t.nextToken()).doubleValue(),new 
Double(t.nextToken()).doubleValue(),


new 
Double(t.nextToken()).doubleValue(),Integer.parseInt(t.nextToken()), day)); 



}


}


} 


qs.trimToSize();


}


catch(IOException e) {}


}


catch(Exception e)


{}


}


 


public double[] getQuotArray()


{ double[] ch = new double[qs.size()];


for(int n = 0; n<ch.length; n++)


{ ch[n] = ((Quotazione)qs.get(n)).getChius();


}


return ch;


} 


 


public int[] getVolArray()


{ int[] vol = new int[qs.size()];


//int[] vol = new int[10];


for(int n = 0; n<vol.length; n++)


{ vol[n] = ((Quotazione)qs.get(n)).getVol();


//vol[n] = 10;


}


return vol;


}


public double getMax()


{ double[] ch = getQuotArray();


double res = 0;


double[] tmp = (double[])ch.clone();


java.util.Arrays.sort(tmp);


return tmp[tmp.length];


}


 


public double getMin()


{ double[] ch = getQuotArray();


double res = 0;


double[] tmp = (double[])ch.clone();


java.util.Arrays.sort(tmp);


return tmp[0];


}


 


public Vector getLine(BufferedReader in)


{ String s;


Vector v = new Vector();


try


{ while ((s=in.readLine()) != null)


{ v.add(s);


}


}


catch(IOException e)


{}


v.trimToSize();


return v;


}


Vector qs;


}


 


Lineare.class:


import java.util.*;


import java.lang.Math.*;


import java.io.*;


import java.text.*;


public class Lineare extends Grafico


{ public Lineare(Vector quot)


{ super(quot);


}


 


public Lineare(String filename)


{ super(filename);


}


 


public double getMax()


{ double res = 0;


double[] tmp = getQuotArray();


java.util.Arrays.sort(tmp);


return tmp[tmp.length-1];


}


 


public PuntoQ[] getPoint(Punto dim)


{ double[] ch = getQuotArray();


int[] vol = getVolArray();


PuntoQ[] res = new PuntoQ[ch.length];


double dimx = dim.getX()*0.85/ch.length;


for(int n = 0; n<ch.length; n++)


{ res[n] = new 
PuntoQ((int)Math.round((n+1)*dimx+dim.getX()/20), getY(dim,ch[n]), getVolY(dim, 
vol[n]));


}


return res;


}


 


public int getY(Punto dim, double q)


{ int y = dim.getY();


int rap = 
(int)Math.round(dim.getY()/getMax()*1.2);


int res = dim.getY()-(int)Math.round(q*rap);


return res+(int)(y/2.6);


}


public int getVolY(Punto dim, int v)


{ int[] order = getVolArray();


java.util.Arrays.sort(order);


int max = order[order.length-1];


int space = dim.getY()/5;


double rap = ((double)space)/((double)max);


return (int)Math.round(v*rap);


}


public double getQuotFromY(Punto dim, int y)


{ int rap = 
(int)Math.round(dim.getY()/getMax()*1.2);


int q = (dim.getY()-y)/rap;


return q;


}


public Giorno[] getGiorni()


{ int h = 7*((int)(qs.size()/10/7))+1;


int r = qs.size()/h;


Giorno[] gg = new Giorno[r];


for(int c = 0; c<r; c++)


{ gg[c] = ((Quotazione)qs.get(c*h)).getDay();


}


return gg;


}


 


public double[] getSQuot(int num)


{ double dif = getMax()-getMin();


double space = dif/(num-6);


double[] res = new double[num];


for(int c = 0; c < num; c++)


{ res[c] = Appross(getMin()+(c-3)*space, "0.##");


}


return res;


}


public double Appross(double s, String decf)


{ DecimalFormat df = new DecimalFormat(decf);


String a = df.format(s);


String res = "";


for(int cont = 0; cont < a.length(); cont++)


{ if (a.charAt(cont) == ',') { res = a.substring(0, 
cont)+"."+a.substring(cont+1, a.length()); }


}


return new Double(res).doubleValue();


}


}