Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Stampare documento PDF

  1. #1
    Utente di HTML.it L'avatar di Alex80b
    Registrato dal
    Feb 2004
    Messaggi
    154

    Stampare documento PDF

    Ciao,
    sto provando a stampare un documento PDF direttamente con del codice Java.
    Questo è il codice:
    codice:
    //Codice per la stampa del PDF
    	try {
    		File file = new File(filename);
    		FileInputStream fis = new FileInputStream(file);
    		FileChannel fc = fis.getChannel();
    		MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
    		PDFFile pdfFile = new PDFFile(mbb);
    		PDFPrintPage printPage = new PDFPrintPage(pdfFile);    
    		PrinterJob printerJob = PrinterJob.getPrinterJob();  
    		PageFormat pageFormat = PrinterJob.getPrinterJob().defaultPage();     
    		float pageWidth = MediaSize.ISO.A4.getX(MediaSize.INCH) * 72;
    		float pageHeight = MediaSize.ISO.A4.getY(MediaSize.INCH) * 72;
    		float margin = (1 / 2.54f) * 72; //1cm
    		Paper paper = new Paper();
    		paper.setSize(pageWidth, pageHeight);
    		paper.setImageableArea(margin, margin, pageWidth - 2 * margin,
    		pageHeight - 2 * margin);
    		pageFormat.setPaper(paper);
    		pageFormat = printerJob.validatePage(pageFormat);
    		printerJob.setJobName(file.getName());  
    		Book book = new Book();  
    		book.append(printPage, pageFormat, pdfFile.getNumPages());  
    		printerJob.setPageable(book);  
    		printerJob.print(); 
    	}
    	catch (Exception e) {
    		e.printStackTrace();
    		out.print(e);
    	}
    Il risultato è che il PDF viene stampato, ma purtroppo non nelle dimensioni corrette, ma utilizza solo 3/4 del foglio A4 (il PDF se lo stampo da Acrobat Reader viene stampato correttarmente).
    Mi date una mano a capire da cosa possa dipendere?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Se devi stampare un file già esistente basta usare questo metodo.

    Ti serve almeno Java 1.6
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di Alex80b
    Registrato dal
    Feb 2004
    Messaggi
    154
    Originariamente inviato da Alex'87
    Se devi stampare un file già esistente basta usare questo metodo.

    Ti serve almeno Java 1.6
    Ciao Alex,
    grazie della risposta. Solo ora ho potuto provare il metodo da te indicato.
    Quando lo provo ricevo il messaggio "No application is associated with the specified file for this operation".
    Non è che questo metodo cerca di utilizzare un programma tipo Acrobat Reader per la stampa?

    Il codice che ho inserito è questo:
    codice:
    Desktop = Desktop.getDesktop();
    File = new File("path/test.pdf");
    desktop.print(file);

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da Alex80b
    Non è che questo metodo cerca di utilizzare un programma tipo Acrobat Reader per la stampa?
    Appunto
    Prints a file with the native desktop printing facility, using the associated application's print command.
    Hai provato altre impostazioni? Secondo me sarà lì il problema che non ci siano le dimensioni giuste (come pageWidth ecc.)

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Utente di HTML.it L'avatar di Alex80b
    Registrato dal
    Feb 2004
    Messaggi
    154
    si ho provato a cambiarle in più modi, ma senza risultati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.