如何在使用方法生成PDF文件后打开文件

3

我需要您的帮助,可以在bean写入PDF文件后自动打开生成的PDF文件。 我使用了iText库来编写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文件被写入后能够查看并打印,那么我该如何做呢?


Desktop.getDesktop().open(yourfile)? - Ueli Hofstetter
@chuchichaeschtli 不,首先我不想保存它,我只需要在生成后打开它一次而不保存它。 - 99maas
@chuchichaeschtli 请参考更新的帖子。另外,有没有一种方法可以显示保存或打开PDF文件的对话框? - 99maas
1
所以你在用户计算机上安装了一个应用程序(毕竟你使用了main方法),想要显示一个PDF文件而不保存它,即仅存在于内存中的PDF。据我所知,使用用户计算机上现有的标准PDF查看器是不可能实现的。相反,你可以尝试使用Java PDF查看器组件,例如jPedal。 - mkl
@mkl 感谢您的解释,现在我明白了。 - 99maas
1个回答

4
你可以在用户机器上安装的默认PDF阅读器中打开PDF文件。
使用此功能。
Desktop.getDesktop().open(new File("path/to/pdf"));

文件将在目标机器上安装的应用程序中打开。 (Adobe Reader,Nitro PDF等)
文件一旦在默认查看器中打开,用户可以通过按ctrl + P来打印它。

以上代码将打开 PDF 文件,如果它保存在桌面上。我的需求略有不同,一旦我写入 PDF 并到达 document.close();我需要自动打开 PDF 文件,而无需保存到用户计算机中,就像在生成文件时立即向用户展示它一样。 - 99maas
还有没有一种方法可以显示保存或打开PDF文件的对话框? - 99maas
你需要的是PDF渲染器或PDF查看器。这个问题已经在这里得到了回答:https://dev59.com/UVLTa4cB1Zd3GeqPcaUa#4437985。 - Shrinivas Shukla
事实上,我正在使用 Primefaces,这是我第一次编写 PDF 文件,我不知道如何在浏览器上显示它。 - 99maas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接