Có cách nào để có một mã mở một tệp PDF trong ứng dụng Java theo cách độc lập trên nền tảng không? Tôi có nghĩa là bằng cách sử dụng một tập tin thực thi trong Windows có thể làm điều đó. Có cách nào khác để có một mã độc lập nền tảng để mở các tập tin PDF trên bay?Mở tệp PDF ngay lập tức từ ứng dụng Java
Trả lời
Tôi muốn thử Desktop.open(File)
, trong đó:
ra mắt ứng dụng liên quan để mở tập tin.
Vì vậy, mã này nên làm như lừa:
if (Desktop.isDesktopSupported()) {
try {
File myFile = new File("/path/to/file.pdf");
Desktop.getDesktop().open(myFile);
} catch (IOException ex) {
// no application registered for PDFs
}
}
+1 Bạn sẽ làm gì nếu bạn muốn tệp pdf được mở trong ứng dụng của riêng bạn để bạn có thể tương tác với nó theo cách của riêng bạn? Cảm ơn. – chepukha
@chepukha: Trong trường hợp đó, mã này không liên quan đến bạn, vì thành phần đọc PDF của bạn nên có các phương pháp riêng để tải tệp. –
vâng, tôi hiểu điều đó. Tôi có nên đưa ra một câu hỏi khác cho điều đó không? – chepukha
Bạn có thể sử dụng Runtime để thực hiện và kịch bản và cũng có một số người xem Java PDF trên mạng (ví dụ Icepdf, JPedal, PDFRenderer).
Cảm ơn các đề xuất ...;) –
Cảm ơn bạn lần nữa, giống như ICEpdf phù hợp với mô hình cấp phép tôi cần. – Kingsolmn
Sử dụng này để mở file pdf sử dụng java
File file = new File(filepath);
if (file.toString().endsWith(".pdf"))
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + file);
else {
Desktop desktop = Desktop.getDesktop();
desktop.open(file);
}
Mã này được sử dụng để mở pdf của bạn và các tập tin khác.
Giải pháp này hoạt động tốt trên Windows, nhưng không phải là nền tảng độc lập mà là những gì OP hỏi. – THelper
Sử dụng mã này để mở một tập tin cụ thể:
String cmds[] = new String[] {"cmd", "/c", "C:\\Users\\PC\\Desktop\\EA01.pdf"};
try {
Runtime.getRuntime().exec(cmds);
}
giải pháp Michael Meyer đã không hoàn toàn công việc cho tôi. Cụ thể, một đường dẫn có dấu cách không thành công với IllegalArgumentException thay vì một IOException.
Đây là những gì làm việc cho tôi:
if (Desktop.isDesktopSupported()) {
try {
File theUMFile = new File(usersManualPath);
Desktop.getDesktop().open(theUMFile);
}
catch (FileNotFoundException fnf){
okDialog(msg_fnf);
theConcours.GetLogger().log(Level.SEVERE, null, fnf);
theConcours.GetLogger().info(msg_fnf);
}
catch (IllegalArgumentException fnf) {
okDialog(msg_fnf);
theConcours.GetLogger().log(Level.SEVERE, null, fnf);
theConcours.GetLogger().info(msg_fnf);
}
catch (IOException ex) {
okDialog(msg_cno);
theConcours.GetLogger().log(Level.SEVERE, null, ex);
theConcours.GetLogger().info(msg_cno);
}
}
- 1. fs.createWriteStream không ngay lập tức tạo tệp?
- 2. Tái triển khai các ứng dụng Java EE ngay lập tức
- 3. Đảm bảo các tệp được đóng lại ngay lập tức
- 4. cửa sổ ngay lập tức
- 5. Thin :: Server # daemonize thoát ngay lập tức
- 6. repaint() trong Java không "vẽ lại" ngay lập tức?
- 7. Java ternary (ngay lập tức nếu) đánh giá
- 8. PHP - Sẽ fwrite() lưu tệp ngay lập tức?
- 9. Ngay lập tức đóng băng AVCaptureSession
- 10. Nhận giá trị ngay lập tức từ UIALertView
- 11. Đánh giá ngay lập tức LaTeX
- 12. gỡ lỗi đa luồng từ cửa sổ ngay lập tức
- 13. Gỡ lỗi mẫu ngay lập tức
- 14. Tải Lắp ráp PowerPC Ngay lập tức
- 15. C# Thread.Sleep thức dậy ngay lập tức
- 16. Bộ chọn CSS con ngay lập tức
- 17. DataGridCheckBoxColumn ràng buộc ngay lập tức
- 18. Cửa sổ 'Ngay lập tức' cho IntelliJ
- 19. PHP tiếng vang ngay lập tức
- 20. pthread_cond_timedwait trả lại ngay lập tức
- 21. M-x xảy ra ngay lập tức
- 22. In kết quả ngay lập tức (php)
- 23. Xóa tệp PDF được tạo động ngay lập tức sau khi nó được hiển thị cho người dùng
- 24. Áp dụng thay đổi lựa chọn DataGridViewComboBoxCell ngay lập tức
- 25. Ứng dụng gặp lỗi ngay lập tức sau khi bắt đầu
- 26. Giả lập iPhone treo ngay lập tức khi khởi chạy
- 27. Cửa sổ ngay lập tức ở chế độ thiết kế
- 28. POST ngay lập tức sau khi chọn một tập tin
- 29. Làm sạch cửa sổ ngay lập tức trong Visual Studio
- 30. Matplotlib python show() trả về ngay lập tức
Ý anh là gì bằng cách "mở"? Bạn có nghĩa là trong "khởi động Adobe Reader để hiển thị một tài liệu PDF cụ thể"? – Kris
Xin lỗi, tôi đoán tôi đã không xác định cụ thể "mở". Yup, như những gì bạn nghĩ đến. ;) –