Открытие PDF работает только в NetBeans - PullRequest
0 голосов
/ 12 декабря 2011

Я написал программу, которая создает PDF документы.После создания PDF-файлы должны быть открыты, чтобы их можно было распечатать.

У меня есть следующий код, но он работает только при запуске из netbeans.Кто-нибудь может дать мне несколько советов?

 public void openPDF()
    {
        try {
            System.out.println("Opening PDF");
            File file = new File(pdfPath+pdfName);
            String absolutePDFpath = file.getAbsolutePath().replace(""+(char)92,""+(char)92+(char)9);
            System.out.println("Path = "+absolutePDFpath);
            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + absolutePDFpath);
        } 
        catch (IOException ex) 
        {
            JOptionPane.showMessageDialog(null, "Er is een fout opgetreden tijdens het openen van het PDF"
                    + " document\nFoutcode: 0xFF05");
            Logger.getLogger(PrintJob.class.getName()).log(Level.SEVERE, null, ex);
        }

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

См. Desktop.open(File), чтобы узнать, как открыть PDF-файл на разных платформах. Как то так ..

File file = new File(pdfPath+pdfName);
Desktop.getDesktop().open(file);

Если приложение. необходимо поддерживать Java 1.5 или более раннюю версию (до того, как Desktop был доступен), придерживайтесь exec(), но реализуйте все рекомендации , когда Runtime.exec () не будет .

Есть ряд вещей, которые для использования Process требуется от программиста для надежной работы. Этот код делает нет из них.

0 голосов
/ 12 декабря 2011

Возможно, ваш код не работает, потому что вы не указываете переменные окружения.Это должно быть что-то вроде этого:

Runtime.getRuntime().exec("command to execute", env[]);
...