I'm using apache pdfbox in my javaFx application where im reading a pdf document now i want to display a org.apache.pdfbox.pdmodel.PDDocument
inside a pane in my FXML
. So far i tried with org.apache.pdfbox.PDFReader
but it is using it's own Jframe
. I want to show it inside a pane.
Here what i have done so far
public class CustomPDFReader extends PDFReader {
public CustomPDFReader(BillModel bm) {
super();
showAllPages(bm.getAllPages());
setVisible(true);
}
private void showAllPages(List<PDPage> pagesList) {
try {
Field documentPanel = getClass().getSuperclass().getDeclaredField("documentPanel");
documentPanel.setAccessible(true);
JPanel panel = (JPanel) documentPanel.get(this);
GridLayout layout = new GridLayout(0, 1);
panel.setLayout(layout);
for(PDPage page : pagesList) {
PageWrapper wrapper = new PageWrapper(this);
wrapper.displayPage(page);
panel.add(wrapper.getPanel());
}
pack();
} catch(Exception e) {
e.printStackTrace();
}
}
}