[
https://issues.apache.org/jira/browse/PDFBOX-4581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16874996#comment-16874996
]
Tilman Hausherr commented on PDFBOX-4581:
-----------------------------------------
Yes PDFDebugger renders into a BufferedImage.
{quote}
In my application I currently use a different PDF renderer.
{quote}
Which one?
Transparency groups are very difficult and it took us many years to get them
mostly right (PDFBOX-3000).
I could catch the exception just so that you can see how it looks.
In the meantime, I was asked to provide a stand alone case. Could you please
run this test code on your machine and tell if the error occurs?
{code}
public class CompositeTest
{
private static JPanel getTestPanel()
{
JPanel panel = new JPanel()
{
@Override
protected void paintComponent(Graphics g)
{
g.setColor(Color.white);
g.fillRect(0, 0, getWidth(), getHeight());
BufferedImage bim = new BufferedImage(getWidth() / 2,
getHeight() / 2, BufferedImage.TYPE_INT_ARGB);
drawFlag(bim);
Graphics2D g2d = (Graphics2D) g;
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC));
g2d.drawImage(bim, null, getWidth() / 4, getHeight() / 4);
}
private void drawFlag(BufferedImage bim)
{
Graphics2D g = (Graphics2D) bim.getGraphics();
g.setColor(Color.black);
g.fillRect(0, 0, bim.getWidth(), bim.getHeight() / 3 + 2);
g.setColor(Color.red);
g.fillRect(0, bim.getHeight() / 3, bim.getWidth(),
bim.getHeight() / 3 + 2);
g.setColor(new Color(0xFFD700));
g.fillRect(0, bim.getHeight() / 3 * 2, bim.getWidth(),
bim.getHeight() / 3 + 2);
g.dispose();
}
};
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, 600);
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}
My initial code was drawing a cross in some arbitrary color, but then I
realized that it might be some evil symbol that I haven't heard about. So now
it draws a German flag. This can easily be changed into e.g. a French flag or
an Italian flag.
> Exception XRSurfaceData.getRaster not implemented yet on Swing, Linux
> ---------------------------------------------------------------------
>
> Key: PDFBOX-4581
> URL: https://issues.apache.org/jira/browse/PDFBOX-4581
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.15
> Environment: Ubuntu 18.04.2 LTS
> Reporter: Jan Buschtöns
> Priority: Major
> Attachments: notYetImplemented_PDFBox_FORMGEN-2185-master.zip
>
>
> When trying to render certain PDFs on a swing Graphics object, I get the
> following Exception on Linux:
> {code:java}
> Exception in thread "AWT-EventQueue-0" java.lang.InternalError: not
> implemented yet
> at java.desktop/sun.java2d.xr.XRSurfaceData.getRaster(XRSurfaceData.java:91)
> at java.desktop/sun.java2d.loops.Blit$AnyBlit.Blit(Blit.java:163)
> at java.desktop/sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:972)
> at java.desktop/sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:583)
> at java.desktop/sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:67)
> at java.desktop/sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1027)
> at java.desktop/sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186)
> at java.desktop/sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3415)
> at java.desktop/sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3545)
> at
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1570)
> at
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:66)
> at
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869)
> at
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505)
> at
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479)
> at
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152)
> at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:265)
> at
> org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:401)
> at
> org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:370)
> at
> org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:355)
> at
> org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:342)
> at de.abm.bug.App$PDFView.paint(App.java:29)
> at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
> at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
> at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
> at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
> at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:590)
> at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
> at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5262)
> at
> java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:246)
> at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
> at java.desktop/javax.swing.JComponent.paint(JComponent.java:1060)
> at
> java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
> at
> java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
> at
> java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
> at java.desktop/java.awt.Container.paint(Container.java:2002)
> at java.desktop/java.awt.Window.paint(Window.java:3940)
> at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:876)
> at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
> at
> java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
> at
> java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
> at
> java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
> at
> java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
> at
> java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
> at
> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
> at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
> {code}
> This does not happen on Windows 10.
> The same exception came up in the comments to PDFBOX-2905.
> Seems to be the same problem as in
> [JDK-6689349.|https://bugs.openjdk.java.net/browse/JDK-6689349]
> I reproduced this with PDFBox 2.0.13, 2.0.15 and 3.0.0-SNAPSHOT. And also
> with an oracle jdk.1.8.0_201, open jdk 1.8.0_212 and open jdk 11.0.1.
> I've attached an example maven project using the same PDF as in PDFBOX-2905.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]