我在寻找可以打印Microsoft Office和PDF文件的Java API。我也想提供打印规格,即使在系统上没有打开这些文件的软件。商业图书馆很好。你可以推荐任何?用Java打印Microsoft Office和PDF文件
回答
对于PDF打印这里是免费的!使用PDFBox的最佳解决方案..
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
public class PrintPDF
{
private static final String PASSWORD = "-password";
private static final String SILENT = "-silentPrint";
private static final String PRINTER_NAME = "-printerName";
/**
* private constructor.
*/
private PrintPDF()
{
//static class
}
public static void main(String pdfFilepath,String printerindx) throws Exception
{
String password = "";
String pdfFile = pdfFilepath;
boolean silentPrint = true;
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
if(pdfFile == null)
{
usage();
}
PDDocument document = null;
try
{
document = PDDocument.load(pdfFile);
if(document.isEncrypted())
{
document.decrypt(password);
}
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printerindx != null)
{
PrintService[] printService = PrinterJob.lookupPrintServices();
printJob.setPrintService(printService[Integer.parseInt(printerindx)]);
}
txt=new PDDocument(document);
if(silentPrint)
{
document.silentPrint(printJob);
}
else
{
document.print(printJob);
}
}
finally
{
if(document != null)
{
document.close();
}
}
}
/**
* This will print the usage requirements and exit.
*/
private static void usage()
{
System.err.println("Usage: java org.apache.pdfbox.PrintPDF [OPTIONS] <PDF file>\n" +
" -password <password> Password to decrypt document\n" +
" -silentPrint Print without prompting for printer info\n"
);
System.exit(1);
}
}
但我仍然需要一个MS Office文件的解决方案! – Harinder 2011-06-03 05:12:57
首先将Office文档转换为PDF,然后打印。对于docx,请尝试docx4j;对于xlsx和旧的二进制格式,请尝试POI,或者对于非Java方法,请尝试OpenOffice。 – JasonPlutext 2011-06-03 12:16:50
您可以在Java中使用的支柱显示表标签,您的数据导出为XLS,PDF,CVS格式,然后可以打印。
语法非常简单,只需将您的集合提供给显示表,它将在jsp上显示集合本身的内容,如果您设置“export = true”,则可以轻松地将文件导出为pdf或xls格式。
访问这里:
http://displaytag.sourceforge.net/11/displaytag/tlddoc/display/table.html
看一看OpenOffice的API,还有一些printing examples provided。 OpenOffice可以打开MS Office文档,但给定的API非常有限。
Aspose拥有一套用于Word,Excel,PDF的产品。您可以导出到不同的格式,包括PDF和打印。
尝试的Apache POI微软文档http://poi.apache.org/
对于打印设置请参考这个网址http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html
- 1. 将Microsoft Office文档和PDF文档转换为使用Java的图像文件
- 2. WPF可以直接打印PDF和Office文件吗?
- 3. 用java打印PDF
- 4. 打印PDF文件
- 5. 打印PDF文件
- 6. Java Communication Server打印100万PDF文件
- 7. Java在Mac中打印PDF文件
- 8. ASP.NET打印控件和PDF中的Microsoft和Dundes图表
- 9. 如何打印PDF文件在Java中与打印对话框
- 10. iOS和Airprint - 打印PDF文件
- 11. JS打印pdf文件
- 12. 打印“.pdf”文件 - PrinterJob
- 13. Ascii打印文件为PDF
- 14. 打印SSRSReport到文件(.PDF)
- 15. 打印PDF文件与PDFSharp
- 16. CUPS打印PDF文件
- 17. Interop.Outlook打印到文件(PDF)?
- 18. 覆盖打印pdf文件
- 19. 从Qt打印PDF文件
- 20. 使用pdf打印机打印文档
- 21. C#打印一个现有的pdf文件和打印预览
- 22. 打印PDF和删除文件时,打印完成
- 23. BY_HANDLE_FILE_INFORMATION结构 - Microsoft Office文件
- 24. 无法在Office 2013中从Office SharePoint客户端打开Microsoft Office文件
- 25. 使用C#打印PDF文件和Doc文件
- 26. 获取使用Adobe PDF打印的PDF文件的文件名
- 27. 无法使用MPDF打印PDF文件
- 28. 使用MFC打印PDF文件
- 29. 用于打印PDF文件的SDK
- 30. 如何使用Prolog打印PDF文件
您可以使用我们的产品的Gnostice PDFOne(用于Java),这里是我们的PDF印刷演示 - [如何打印PDF Document in Java](http://www.gnostice.com/nl_article.asp?id=160&t=How_to_Print_a_PDF_Document_in_Java)。 PDFOne附带免版税的商业许可证。 – BZ1 2011-06-02 05:41:26
我不想要任何对话来在前面!我只想通过我的应用程序中的所有规范 – Harinder 2011-06-02 05:46:00
如果您不想使用该对话框,则无需调用PDFPrinter.showPrintDialog()方法。相反,调用PdfPrinter.print(String pageRange,int numOfCopies)方法。它在最后一行中的文章中提到。 – BZ1 2011-06-02 06:01:01