Я не могу понять, как просматривать PDF-страницу с помощью PDFBox и его компонента PDFPagePanel.Как просмотреть PDF-документ с помощью PDFPagePanel PDFBox
Таким образом, кажется, что с помощью PDFBox моих вариантов либо создать список объектов PDPage или объекты PDDocument, я пошел со списком PDPage (в отличие от использования Splitter()
объектов PDDocument)
Следующего кода создает объект PDPage с именем тестовой страницы
File PDF_Path = new File("C:\\PDF.PDF");
PDDocument inputPDF = PDDocument.load(PDF_Path);
List<PDPage> allPages = inputPDF.getDocumentCatalog().getAllPages();
inputPDF.close();
PDPage testPage = (PDPage)allPages.get(0);
Отсюда я хотел бы создать PDFPagePanel
и использовать его метод setPage()
поместить PDPage в компонент. Отсюда я хочу добавить компонент в JFrame. Когда я это делаю, я просто вижу пробелы.
JFrame testFrame = new JFrame();
testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PDFPagePanel pdfPanel = new PDFPagePanel();
pdfPanel.setPage(testPage);
testFrame.add(pdfPanel);
testFrame.setBounds(40, 40, pdfPanel.getWidth(), pdfPanel.getHeight());
testFrame.setVisible(true);
Я нашел одно «решения», которое предложить converting the PDF to an image и отображающий его как буферные изображения, и при этом работает он не кажется, что правильный способ сделать это. Неправильно ли я пытаюсь использовать PDFPoxPanPanel PDFBox как средство для отображения PDF?
Вы пытались так рано закрыть PDDocument (inputPDF.close())? Я закрываю PDDocument, когда это делается, а не при использовании PDPage. –
Да, я тоже это попробовал, спасибо за предложение. Я не совсем уверен, почему я поставил эту линию там, так или иначе, у меня было это внизу, когда я скопировал какой-то код. На данный момент я просто отправил электронное письмо в список рассылки PDFBox и рассмотрю другие доступные варианты. Похоже, что у меня не должно быть проблем с использованием других инструментов, таких как iText или IcePDF, поскольку весь исходный код переносится на публичное репо на GitHub, но я никогда не занимался каким-либо классом, занимающимся лицензированием и открытием исходный код. –