Ivan Ridao Freitas created PDFBOX-3359:
------------------------------------------
Summary: Drawing to Graphics2D
Key: PDFBOX-3359
URL: https://issues.apache.org/jira/browse/PDFBOX-3359
Project: PDFBox
Issue Type: Bug
Affects Versions: 2.0.1
Reporter: Ivan Ridao Freitas
First, there is a little bug on PDFRenderer.renderPageToGraphics(int pageIndex,
Graphics2D graphics, float scale) when using scale != 1 the call to clearRect()
fill 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:
{code:title=PanelTest.java|borderStyle=solid}
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);
}
});
}
}
{code}
Ivan
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]