PDF Renderer с PrintDialog

Это возможно?

Я получаю каталог и имя файла существующего PDF-документа. C:\temp\FileName.pdf

  1. Используйте PDF Renderer для просмотра документа или печати документа. У меня есть PDF Renderer, включенный в мой проект Eclipse, но я не знаю, как его использовать.

  2. Затем используйте PrintDialog, чтобы распечатать документ PDF. Я думаю, что PDF Renderer должен что-то делать, чтобы PDF-документ можно было распечатать.

Я хочу иметь 2 кнопки на моей форме

  • Просмотр PDF -> открывает PDF-документ только для чтения
  • Печать PDF -> готовит PDF-документ к печати, затем вызывает PrintDialog, чтобы выбрать локальный принтер, а затем печатает

Мне не очень повезло найти образец кода PDFRenderer, который показывает, как открыть документ PDF в режиме просмотра. Я не видел кода, как отправить результат PDF Renderer в PrintDialog для печати.


person jkteater    schedule 06.11.2012    source источник


Ответы (1)


Вы, безусловно, можете реализовать рендеринг PDF в своем приложении. Вопрос в том, действительно ли это нужно или нет. Поскольку вы не указываете, какую библиотеку хотите включить, я не могу помочь вам с PDFRenderer.
Однако для запуска внешнего средства просмотра PDF и того, как реализовать кнопку печати, эти классы API полезны:

По крайней мере, это поможет (частично) решить вашу проблему.

person f4lco    schedule 06.11.2012
comment
Библиотеки: com.sun.pdfview.PDFFile, com.sun.pdfview.PDFPage, com.sun.pdfview.PDFRenderer. - person jkteater; 07.11.2012
comment
Опять же, правильная обработка PDF-файлов в вашем приложении может быть сложной задачей. Вопрос Использование sun PDF Renderer для отображения PDF-файлов со встроенными шрифтами сообщает, что есть проблемы со встроенными шрифтами. Я читал о непредсказуемом поведении рендеринга в другом месте. PDFBox упоминается как альтернатива. Если вы хотите использовать средство визуализации PDF от Sun, вам следует ознакомиться со встраиванием Swing в ваше приложение SWT, поскольку оно использует API Java2D. - person f4lco; 08.11.2012