2015-07-12 24 views
2

我需要您的帮助,在从bean写入文件之后自动打开生成的PDF文件。我使用iText库来编写PDF文件,在下面的方法中,我能够生成PDF,但我不知道如何为用户动态地打开它。如何从方法生成后打开PDF文件

public static void main(String[] args) throws DocumentException, FileNotFoundException, IOException { 

    Document document = new Document(PageSize.A4, 50, 50, 50, 50); 

    document.open(); 

    BaseFont bf = BaseFont.createFont(
     "c://windows/fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
    Font font = new Font(bf, 25); 
    PdfPTable table = new PdfPTable(1); 
    PdfPCell cell = new PdfPCell(new Phrase("Good Morning", font)); 
    cell.setBorder(Rectangle.NO_BORDER); 
    cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 
    table.addCell(cell); 
    document.add(table); 

    document.close();  

} 

我希望PDF文件在写入后允许用户打印文件后显示给用户,所以我该怎么做?

+0

Desktop.getDesktop()来打印。打开(yourfile)? –

+0

@chuchichaeschtli不,我不希望它被首先保存,我只需要在不保存它的情况下生成它就打开它 – 99maas

+0

@chuchichaeschtli请参阅更新后的文章。另外,有没有办法显示保存或打开PDF文件的对话框? – 99maas

回答

2

您可以在用户机器上安装的默认PDF查看器中打开pdf文件。

使用此。

Desktop.getDesktop().open(new File("path/to/pdf")); 

该文件将在应用程序中打开,无论目标机器上安装了哪一个。 (Adobe Reader,请硝基PDF等)

一旦该文件在默认浏览器打开时,用户将能够通过按CTRL +P

+0

上面的行将打开PDF文件,如果它保存在桌面上。我的要求有点不同,一旦我写PDF并到达document.close();我需要自动打开PDF文件,而不是将其保存在用户机器中,类似于在运行中生成它并将其显示给用户 – 99maas

+0

或者是否有方法显示保存或打开PDF文件的对话框? – 99maas

+0

您需要的是PDF渲染器或PDF查看器。这已经被回答[这里](http://stackoverflow.com/a/4437985/4338417)。 –