Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-11-2008, 23:04   #1
alemuscolino
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!
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 11:20   #2
alemuscolino
Bannato
 
Iscritto dal: Apr 2007
Messaggi: 54
Perchè nessuno risponde???

Datemi una mano vi pregooooooo!!!!!!!
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 11:40   #3
ally
Bannato
 
L'Avatar di ally
 
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
ally è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 11:49   #4
alemuscolino
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 14:48.
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 11:50   #5
ally
Bannato
 
L'Avatar di ally
 
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...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 11:52   #6
alemuscolino
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????
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 12:44   #7
alemuscolino
Bannato
 
Iscritto dal: Apr 2007
Messaggi: 54
Ragazzi ma è così difficile st probema????
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 12:51   #8
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
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.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 12:58   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 13:04   #10
alemuscolino
Bannato
 
Iscritto dal: Apr 2007
Messaggi: 54
Non c'è nulla di pronto quindi.... mi sento troppo a mare... ma voi cosa mi consigliate di alternativo per il mio problema.
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!!!!
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 14:34   #11
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
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. La cosa interessa anche a me.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 14:38   #12
alemuscolino
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!
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 14:39   #13
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
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?
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 14:57   #14
alemuscolino
Bannato
 
Iscritto dal: Apr 2007
Messaggi: 54
Il programma di prima non stampa nulla... dice che ci sono 9999 pagine.... Questo programma invia in stampa il documento senza aprire la finestra di selezione stampanti... che a me interessa aprire... in particolar modo ho scoperto che la porzione di codice:

Codice:
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); 
DocPrintJob job = services[0].createPrintJob();
Rappresenta il metodo per richiamare la stampante [0] predefinita...

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); 
	} 
	} 
}
Ma se lo provate purtroppo avvia stampe senza far comparire la finestra di selezione della stampante... e anche se metto come oggetto dell'array [1] (XPS document writer... quella virtuale va) non mi fa selezionare il percorso dove salvare il file immagine di stampa... è un problemone... come si risolve???? Io sto cercando come un addannato... spero di trovare una soluzione decente e pubblicarla almeno chi si troverà in una situazione del genere in futuro potrà fare un copy/paste....

AIUTATEMI!!!! grazie
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 15:16   #15
banryu79
Senior Member
 
L'Avatar di banryu79
 
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2008, 15:37   #16
alemuscolino
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); 
	} 
	} 
}
Perchè non mi compare la printDialog???????
alemuscolino è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Follie Amazon Prime: Zenbook è un...
MicroSD SanDisk in offerta Prime Day: Ul...
Steve Jobs, 15 anni dopo: John Ternus e ...
LaLiga chiede all'Europa di inserire qua...
Microsoft festeggia cinque anni di Windo...
WhatsApp blocca l'accesso sui telefoni n...
AMD non riesce a stare dietro alla doman...
Android Auto: stop alla compatibilità pe...
Più delle montagne russe: Six Fla...
Dopo Sapphire, anche Gigabyte rilascia a...
Motorola in offerta Prime Day: moto g57 ...
Lenovo in offerta Prime Day: IdeaPad S5 ...
Evento Apple del 13 ottobre: fra i nuovi...
FRITZ! in offerta Prime Day: Repeater 27...
GMK TriggerKey: un mod kit per maggiore ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v