sclass PDFToImages is AutoCloseable { // DPI to use for images settable int dpi = 150; // the loaded document + the page renderer PDDocument document; PDFRenderer pdfRenderer; *(File pdfFile) { document = loadPDF(pdfFile); } void init { pdfRenderer if null = new PDFRenderer(document); } int nPages aka pageCount() { ret document.getNumberOfPages(); } // pages are counted from 0 BufferedImage getPageImage(int page) ctex { init(); ret pdfRenderer.renderImageWithDPI(page, dpi, ImageType.RGB); } L pageImages() { ret virtualList getPageImage(nPages()); } close { dispose document; } }