我認(rèn)為標(biāo)題很清楚。我在printerName 的行有一個(gè)java.lang.ClassCastException,我不知道如何直接指定輸出pdf 的路徑。到目前為止,這是我的代碼:DateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); String date = sdf.format(new Date()); File file = null; MessageFormat header = null; MessageFormat footer = new MessageFormat("Page {0,number,integer}"); if(choix.equals("Lc")){ header = new MessageFormat("Liste des produits vendus le : " + date); file = new File("Z:/Enregistrements/FeuillesActiviteJour/ListeProduitsVendus_"+sdf.format(new Date())+".pdf"); } else{ header = new MessageFormat("Liste des Encaissements effectués le : " + date); file = new File("Z:/Enregistrements/FeuillesActiviteJour/ListeEncaissements_"+sdf.format(new Date())+".pdf"); } Destination destination = new Destination(file.toURI()); PrintService service = null; PrintService[] services = PrinterJob.lookupPrintServices();for (PrintService service1 : services) { if (service1.getName().equalsIgnoreCase("Microsoft Print to PDF")) { service = service1; }} PrintRequestAttributeSet set = new HashPrintRequestAttributeSet(); set.add(OrientationRequested.LANDSCAPE); set.add(destination);try { table.print(JTable.PrintMode.FIT_WIDTH, header, footer, false, set, false, service);} catch (PrinterException ex) { Logger.getLogger(TraitementFeuilleActivite.class.getName()).log(Level.SEVERE, null, ex);} catch (HeadlessException ex) { Logger.getLogger(TraitementFeuilleActivite.class.getName()).log(Level.SEVERE, null, ex);}}
1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
PrinterName
無法添加到您的HashPrintRequestAttributeSet
. 您應(yīng)該將其添加到HashPrintServiceAttributeSet
.
HashPrintRequestAttributeSet
只能包含PrintRequestAttribute類型的對(duì)象或其子類。這就是為什么 Java 嘗試將PrintName
(類型為PrintServiceAttribute的)對(duì)象強(qiáng)制轉(zhuǎn)換為PrintRequestAttribute
無法完成的對(duì)象,因?yàn)樗皇菑脑搶?duì)象繼承的。-> ClassCastException
添加回答
舉報(bào)
0/150
提交
取消