|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
[JAVA] Stampare HTML?????
Il problema è "semplice"... sapete dirmi come si fa a mandare in stampa un documento HTML in java. In particolar modo, supponendo che io abbia una stringa contenente il codice HTML, a partire da qui come posso stampare la pagina generata dal codice HTML in questione???
Vi ringrazio in anticipo!! Aiutatemi! |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Perchè nessuno risponde???
Datemi una mano vi pregooooooo!!!!!!!
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
|
java digerisce solo in parte il codice html...potresti aprire il proswer con la pagina selezionata come una sorta di preview...e da qui l'utente lancerebbe il comando di stampa...
ciao Andrea |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
No, a me servirebbe qualcosa che direttamente lo stampi, l'utente non deve vedere nulla... Io ho implementato questo... ma mi stampa 9999 pagine vuote??? DATEMI UNA MANO SONO NEI CASINI!!!!
Codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.lang.*;
import java.math.BigDecimal;
import java.net.*;
import java.lang.reflect.*;
import java.awt.print.*;
public class Stampare {
public static void main(String argom[]) {
try{
printableEditorPane jEditorPane = new printableEditorPane();
jEditorPane.setContentType("text/html");
jEditorPane.read(new BufferedReader(new FileReader("esempio.html")), "");
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(jEditorPane);
if (job.printDialog()) /* Displays the standard system print dialog*/{
job.print();
}
}
catch (Exception ex){
System.out.println(ex);
}
return;
}
public static class printableEditorPane extends JEditorPane implements
Printable, Serializable
{
public int print (Graphics g, PageFormat pf, int pageIndex) throws PrinterException{
Graphics2D g2 = (Graphics2D)g;
g2.setColor (Color.black);
RepaintManager.currentManager(this).setDoubleBufferingEnabled(false);
Dimension d = this.getSize();
double panelWidth = d.width;
double panelHeight = d.height;
double pageWidth = pf.getImageableWidth();
double pageHeight = pf.getImageableHeight();
double scale = pageWidth / panelWidth;
int totalNumPages = (int)Math.ceil(scale * panelHeight /
pageHeight);
// Check for empty pages
if (pageIndex >= totalNumPages) return Printable.NO_SUCH_PAGE;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.translate(0f, -pageIndex * pageHeight);
g2.scale(scale, scale);
this.paint(g2);
return Printable.PAGE_EXISTS;
}
}
}
AIUTOOOOOOOOOOOOOOOOOOO!!!!!! Ultima modifica di alemuscolino : 14-11-2008 alle 15:48. |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
|
per la cronaca dai un occhio al PrinterJob per capire meglio quale strada intraprendere...guardando un po' in rete consigliano di convertire la pagina in pdf o in una immagine tramite programmi esterni per poi darli in pasto a java da stampare...
|
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Allora a me serve stampare qualcosa di più pulito di un semplice testo nn formattato. Andrebbe bene anche pdf!!! C'è un esempio di codice dal quale a partire da una stringa mi fa stampare un qualcosa di decente????
|
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Ragazzi ma è così difficile st probema????
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Non so quanto sia utile essere impazienti.
Io stavo facendo delle ricerche per te, ma ancora non ho trovato nulla, se ci riesco te lo dico. A quanto pare non è proprio una cavolata. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ti consiglio di dare un occhio alla libreria JasperReports, magari c'è quello che fa per te.
Però non è che la scarichi ed entro domani hai già la funzionalità integrata bella e pronta, ti tocca studiarla un attimo prima. Se poi hai la fortuna che qualcuno che ha già fatto una cosa simile passi di qua e legga, dandoti delle dritte, tanto meglio.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Non c'è nulla di pronto quindi....
In sintesi io vorrei mandare in stampa automaticamente un documento html da java, anche da riga di comando, ma basa che sia in via automatica. qualsiasi csa va bene!!! Ditemi se magari è più facile eseguire una conversione pdf o cose simili... mi basterebbe generare qualcosa di pulito e formattato e stamparlo... Vi ringrazio infinitamente!!!! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Qualche giorno fa avevo trovato su Internet una pagina che diceva che con un semplice comando si manda in stampa "una certa cosa" passata come parametro facendo comparire la classica finestra di stampa.. il problema è che non lo ritrovo.
|
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Il codice che ho scritto apre quella finestra... guarda un po dove bisogna operare per gli html... magari in due riusciamo a svelare l'arcano!
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Intanto perché non editi il tuo post e metti il tuo codice fra i tag [code] che ci sono apposta?
|
|
|
|
|
|
#14 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
Il programma di prima non stampa nulla... dice che ci sono 9999 pagine....
Codice:
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); DocPrintJob job = services[0].createPrintJob(); il codice completo è: Codice:
import java.io.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.awt.print.*;
public class TestURLPrint {
public FileInputStream psStream = null;
public TestURLPrint(String htmlFileName) throws IOException {
try {
psStream = new FileInputStream(htmlFileName);
} catch (FileNotFoundException ffne) {
}
if (psStream == null) {
return;
}
DocFlavor psInFormat = new DocFlavor("application/octet-stream","java.io.InputStream");
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(1));
aset.add(OrientationRequested.PORTRAIT);
aset.add(new JobName("Impression",null));
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
DocPrintJob job = services[0].createPrintJob();
try {
job.print(myDoc, aset);
try {
Thread.sleep(3000);
} catch ( Exception ex ) {
System.err.println("Error sleeping: " + ex );
}
System.out.println("HERE!!!!!!!!");
} catch(PrintException pe) {
System.out.print("ERROR!!!!---> " + pe);
}
}
public static void main(String args[]) {
try {
TestURLPrint tup = new TestURLPrint("gg.html");
} catch (IOException ioe) {
System.out.println("IO ERR " + ioe);
}
}
}
AIUTATEMI!!!! grazie |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Se risolvi così bene, altrimenti quoto il consiglio di Ally, e cioè di trovare e usare una libreria per Java che converta da Html a PDF, e quindi di mandare in stampa il PDF.
Io ne ho viste alcune commerciali, non so se ne esistano di gratuite.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Apr 2007
Messaggi: 54
|
credo che il problema adesso riguardi la semplice programmazione e nient'altro... guardate qui:
Codice:
import java.io.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.awt.print.*;
public class TestURLPrint {
public FileInputStream psStream = null;
public TestURLPrint(String htmlFileName) throws IOException {
try {
psStream = new FileInputStream(htmlFileName);
} catch (FileNotFoundException ffne) {
}
if (psStream == null) {
return;
}
try {
DocFlavor psInFormat = new DocFlavor("application/octet-stream","java.io.InputStream");
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(1));
aset.add(OrientationRequested.PORTRAIT);
aset.add(new JobName("Impression",null));
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
String ser=services[0].toString();
System.out.println(ser);
//DocPrintJob job = services[1].createPrintJob();
PrintService selectedPrinter = ServiceUI.printDialog(null, 50, 50, services, services[0], null, aset);
DocPrintJob job = selectedPrinter.createPrintJob();
try {
Thread.sleep(3000);
} catch ( Exception ex ) {
System.err.println("Error sleeping: " + ex );
}
System.out.println("HERE!!!!!!!!");
} catch(Exception exe) {
System.out.print("ERROR!!!!---> " + exe);
}
}
public static void main(String args[]) {
try {
TestURLPrint tup = new TestURLPrint("gg.html");
} catch (IOException ioe) {
System.out.println("IO ERR " + ioe);
}
}
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:57.




















