我是编程的初学者,我正在使用eclipse kepler(包括WindowBuilder)。我有一个问题,在我的应用程序中,在部署之前,我从数据库(MySQl)打印pdf格式的数据,它运行良好,但部署之后(使用Lauch4j和InnoSetup编译器),它不可能,当我点击打印按钮没有反应!你能帮帮我吗?这是我用来写pdf格式的函数代码
public void imprimerFacture()抛出DocumentException{
Document document = new Document(PageSize.A4);
Date str = new Date();
SimpleDateFormat sdt = new SimpleDateFormat("dd/MM/yyyy");
String strdat = sdt.format(str);
Table tableau = new Table(8,2);
try {
PdfWriter.getInstance(document, new FileOutputStream("src/images/facture.pdf"));
document.open()
Paragraph phrase = new Paragraph(new Chunk("Le "+strdat,FontFactory.getFont(FontFactory.COURIER, 10, Font.BOLD, Color.BLUE)).setBackground(Color.yellow));
phrase.setAlignment(Element.ALIGN_TOP);
phrase.setAlignment(Element.ALIGN_RIGHT);
document.add(phrase);
Paragraph ftitre = new Paragraph("Magasin :...........",FontFactory.getFont(FontFactory.COURIER, 10, Font.BOLD, Color.BLUE));
//ftitre.setUnderline(2f, -5f);
ftitre.setAlignment(Element.ALIGN_TOP);
ftitre.setAlignment(Element.ALIGN_LEFT);
document.add(ftitre);
Paragraph ftitre1 = new Paragraph("Adresse :...........",FontFactory.getFont(FontFactory.COURIER, 10, Font.BOLD, Color.BLUE));
//ftitre.setUnderline(2f, -5f);
ftitre1.setAlignment(Element.ALIGN_TOP);
ftitre1.setAlignment(Element.ALIGN_LEFT);
document.add(ftitre1);
Paragraph ftitre2 = new Paragraph("Téléphone :...........",FontFactory.getFont(FontFactory.COURIER, 10, Font.BOLD, Color.BLUE));
//ftitre.setUnderline(2f, -5f);
ftitre2.setAlignment(Element.ALIGN_TOP);
ftitre2.setAlignment(Element.ALIGN_LEFT);
document.add(ftitre2);
Chunk chunk = new Chunk("Commandes disponibles",FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD, Color.BLUE));
chunk.setUnderline(0.2f,-2f);
//chunk.ALIGN_CENTER
document.add(chunk);
tableau.setAutoFillEmptyCells(true);
} catch (DocumentException de) {de.printStackTrace();}
catch (IOException ioe) {ioe.printStackTrace();}
try {
Statement state = Connection_bd.getInstance().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet res = state.executeQuery("select ReferenceCommande,Designation,Quantite,DateLivraison,Categorie,MontantCommande,Date,IdentifiantClient from Commande");
//ResultSetMetaData meta = res.getMetaData();
tableau.addCell("ReferenceCommande");
tableau.addCell("Designation");
tableau.addCell("Quantite");
tableau.addCell("DateLivraison");
tableau.addCell("Categorie");
tableau.addCell("MontantCommande");
tableau.addCell("Date");
tableau.addCell("IdentifiantClient");
tableau.setWidth(110);
while(res.next()){
tableau.addCell(res.getString("ReferenceCommande"));
tableau.addCell(res.getString("Designation"));
tableau.addCell(res.getString("Quantite"));
tableau.addCell(res.getString("DateLivraison"));
tableau.addCell(res.getString("Categorie"));
tableau.addCell(res.getString("MontantCommande"));
tableau.addCell(res.getString("Date"));
tableau.addCell(res.getString("IdentifiantClient"));
}
document.add(tableau);
//on ferme le tout
res.close();
state.close();
}catch(SQLException e){}
Paragraph ftitre = new Paragraph("Magasinier",FontFactory.getFont(FontFactory.COURIER,10,Font.BOLD,Color.BLUE));
ftitre.setAlignment(Element.ALIGN_RIGHT);
document.add(ftitre);
document.close();
}
我的功能我叫了这个屁股
BTNimprimer_1.AddActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0){
int result=JOptionPane.showConfirmDialog(null,"Voulez-vous réellement imprimer ce(s) commande(s) ?","GE-SHOP1.0 SOFTWARE_MESSAGE",JOptionPane.YES_NO_OPTION);
if(result==JOptionPane.OK_OPTION)
{
String str="select * from commande";
String strin=AfficherChaine(str);
if(strin.equals(""))
{ JOptionPane.showMessageDialog(null,"Cette action ne peut pas aboutir du fait qu'il n'y a rien à imprimer!!!\n Veuillez saisir la(les) nouvelle(es) commande(es) et puis proceder a l'impression !","GE-SHOP1.0 SOFTWARE_MESSAGE",JOptionPane.WARNING_MESSAGE);}
else {try {
//if (listachat.size() > 0){
imprimerFacture();
if(Desktop.isDesktopSupported()){
if(Desktop.getDesktop().isSupported(java.awt.Desktop.Action.OPEN)){
try {
java.awt.Desktop.getDesktop().open(new File("src/images/facture.pdf"));
} catch (IOException ex) {
//Traitement de l'exception
}
catch (IllegalArgumentException e){}
} else {
JOptionPane.showMessageDialog(null, "La fonction n'est pas supportée par votre système d'exploitation","GE-SHOP1.0 SOFTWARE_MESSAGE", JOptionPane.ERROR_MESSAGE);
}
}else{
JOptionPane.showMessageDialog(null, "Desktop pas supportée par votre système d'exploitation", "GE-SHOP1.0 SOFTWARE_MESSAGE", JOptionPane.ERROR_MESSAGE);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
else{if(result==JOptionPane.NO_OPTION)
{JOptionPane.showMessageDialog(null, "L'operation d'impression vient d'etre annulée", "GE-SHOP1.0 SOFTWARE_MESSAGE", JOptionPane.INFORMATION_MESSAGE);}
}
}
});
路径才是问题所在。
PdfWriter.getInstance(document, new FileOutputStream("src/images/facture.pdf"));
最好为读/写数据保留自己的目录,通常在用户家中。您还可以创建一个临时文件(请参阅文件)。
File applicationDir = new File(System.getProperty("user.home")
+ File.sepator + ".GE-Shop");
applicationDir.mkdirs();
File pdfFile = new File(applicationDir, "facture.pdf");
PdfWriter.getInstance(document, new FileOutputStream(pdfFile));
...
Desktop.getDesktop().open(pdfFile);
我必须使用java应用程序打印PDF文件。我尝试过这样的方法: 当我在假打印机上测试时(我使用PDFCreator作为打印机),一切正常,但当我尝试在物理打印机上打印时,什么都没有发生。 然后我用了PDFBox。文件是打印出来的,但文字之间有奇怪的点,在不应该的地方。 那么,也许有人有从java应用程序打印PDF的经验,可以分享这些信息?
问题内容: 我想使用PDFBox打印 由iText创建的 PDF文件 。我已经使用PDDocument类及其方法print()成功尝试了此操作。您可以在此处找到文档: http //pdfbox.apache.org/apidocs/。 (我正在使用此代码:) 方法print()很好用,但是 有一个问题:当我需要打印多个文件时,该方法要求我为每个文档选择打印机。 有什么办法只能设置一次打印机吗?
我已经用所有3种可用的字体试过了;TimesNewRoman、Courier和Helvitica三家公司都出现了相同的例外情况。 但是当您查看apcahe pdfBox源代码中的WIN_ANSI_ENCODING_TABLE时, 我们可以看到定义了下面的非破缺空间。 在pdf规范文档中也引用了以下内容: 空格字符在MacRomanEncoding中也应编码为312,在WinAnsiEncoding
使用飞碟以PDF格式打印图像。 超文本标记语言代码: 当我使用飞碟将HTML转换为PDF时。生成的PDF不会打印图像。 我需要使用任何特定的软件包来打印PDF格式的图像吗。如果你有任何问题,请告诉我。
我有一个连接到CUPS的打印机,它支持双面打印,如何通过java例程将其设置为单面打印或双面打印? 我曾尝试使用它的库使用ASET添加和addViewer首选项没有任何运气。 有人能提供一些建议吗?
我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd