Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.1
-
None
Description
First, there is a little bug on PDFRenderer.renderPageToGraphics(int pageIndex, Graphics2D graphics, float scale) when using scale != 1 the call to clearRect() fills the original size with white background, but it should fill the scaled size.
Second, I implemented a JPanel which is painted using that function and on every paint this message goes to the console:
"DEBUG ScratchFileBuffer:516 - ScratchFileBuffer not closed!". Here is the code to test it, run it and resize the JFrame:
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.io.File; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; public class PanelTest { private static JPanel getTestPanel() { PDDocument doc = null; try { doc = PDDocument.load(new File("anyfile.pdf")); } catch (IOException e) { e.printStackTrace(); } final PDFRenderer renderer = new PDFRenderer(doc); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { try { renderer.renderPageToGraphics(0, (Graphics2D) g, 0.5f); } catch (IOException e) { e.printStackTrace(); } } }; return panel; } public static void main(String[] args) throws Exception { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(getTestPanel()); frame.pack(); frame.setSize(600, 400); Dimension paneSize = frame.getSize(); Dimension screenSize = frame.getToolkit().getScreenSize(); frame.setLocation((screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2); frame.setTitle("Test"); frame.setVisible(true); } }); } }
Ivan
Attachments
Issue Links
- duplicates
-
PDFBOX-3388 PDFTextStripper - ScratchFileBuffer not closed!
- Closed
- is duplicated by
-
PDFBOX-4634 org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
- Closed
- is related to
-
PDFBOX-3381 PDF rendering regression
- Closed
-
PDFBOX-4396 Memory leak due to soft reference caching
- Closed
- relates to
-
PDFBOX-2999 Optimize COSStream scratch file usage
- Closed