18. oktober 2004 - 22:47
Der er
11 kommentarer og 1 løsning
Print pdf i OS X
Hejsa... Jeg skal have printet en pdf-fil. I Windows XP har jeg fundet frem til at det kan gøres med: Runtime.getRuntime().exec("C:\Program Files\Adobe\Acrobat 4.0\Reader\AcroRd32.exe /p /h my.pdf"); eller Runtime.getRuntime().exec("cmd.exe /C acrord32 /p /h" + my.pdf") Men hvad dælen gør man når man skal udskrive på en Mac???? Håber der er een, som kan hjælpe!!
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
18. oktober 2004 - 22:51
#1
OS X er Unix baseret ikke ? Så måske: String[] cmd = { "/wherever/AcroRd32", "/p", "/h", "my.pdf" }; Runtime.getRuntime().exec(cmd);
18. oktober 2004 - 22:52
#2
Hvis du bruger Java 1.4, så har det en javax.print pakke som skulle kunne printe PDF filer i ren Java !
18. oktober 2004 - 22:57
#3
Hvis den kunne printe direkte fra Java ville det være perfekt. Bruger 1.4.2 Har før kun brugt java.awt.print Er der en simpel måde at gøre det fra javax.print på??
18. oktober 2004 - 23:00
#4
18. oktober 2004 - 23:30
#5
Glimrende artikel! Fandt også lidt hjælp i API'en Har bare et problem med linien aset.add(MediaSize.A4); Hvorfor æder den ikke den?? _________ public class PrintPDF { public PrintPDF() { FileInputStream psStream; try { psStream = new FileInputStream("my.pdf"); } catch (FileNotFoundException ffne) { } if (psStream == null) { return; } DocFlavor psInFormat = DocFlavor.INPUT_STREAM.PDF; Doc myDoc = new SimpleDoc(psStream, psInFormat, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(1)); aset.add(MediaSize.A4); aset.add(Sides.ONE_SIDED); PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset); if (services.length > 0) { DocPrintJob job = services[0].createPrintJob(); try { job.print(myDoc, aset); } catch (PrintException pe) {} } } }
18. oktober 2004 - 23:34
#6
Er det ikke MediaSize.ISO.A4 ?
18. oktober 2004 - 23:43
#7
Har rettet det til MediaSize.ISO.A4 men nu får jeg en ClassCastException på den linie???
18. oktober 2004 - 23:48
#8
Ingen anelse. Hvad sker der hvis du bare udkommenterer linien ?
19. oktober 2004 - 00:27
#9
Har udkommenteret linien og nu får jeg ingen fejl... Men den vil ikke printe... den fanger PrintException Hvorfor pokker gør den det? --------------- public class PrintPDF { public PrintPDF() { FileInputStream psStream = null; try { psStream = new FileInputStream("259.pdf"); } catch (FileNotFoundException ffne) { System.out.println( "fileNotFound"); } if (psStream == null) { return; } DocFlavor psInFormat = DocFlavor.INPUT_STREAM.PDF; Doc myDoc = new SimpleDoc(psStream, psInFormat, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(1)); //aset.add(MediaSize.ISO.A4); aset.add(Sides.ONE_SIDED); PrintService service = PrintServiceLookup.lookupDefaultPrintService(); System.out.println("service" +service.getName()); DocPrintJob job = service.createPrintJob(); try { job.print(myDoc, aset); System.out.println("Der printes"); } catch (PrintException pe) { System.out.println("Der kan ikke printes"); } } }
19. oktober 2004 - 00:48
#10
prøvede getMessage() på PrintException og får beskeden: invalid flavor Men det er vel DocFlavor.INPUT_STREAM.PDF; da det er en fil der åbnes... ikke??
20. oktober 2004 - 12:30
#11
Det var dokumentet, der ikke kunne printes, da det af en eller anden grund ikke passer til udskrifts-layout'et. Prøvede på en anden printer og der virker det! Tusind tak for hjælpen!!! Du kaster bare et svar!
20. oktober 2004 - 12:36
#12
kommer her
Kurser inden for grundlæggende programmering