问题描述:用户按下打印屏幕按钮,然后单击应用程序上的粘贴按钮。该图像将存储在服务器上。
我用谷歌搜索并在 Stack over 上找到答案并使用以下代码
public Image getImageFromClipboard()
{
Clipboard systemClipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
Clipboard tempClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
return tempClipboard;
}
});
// get the contents on the clipboard in a
// Transferable object
Transferable clipboardContents = systemClipboard.getContents(null);
// check if contents are empty, if so, return null
if (clipboardContents == null)
return null;
else
try
{
// make sure content on clipboard is
// falls under a format supported by the
// imageFlavor Flavor
if (clipboardContents.isDataFlavorSupported(DataFlavor.imageFlavor))
{
// convert the Transferable object
// to an Image object
Image image = (Image) clipboardContents.getTransferData(DataFlavor.imageFlavor);
return image;
}
} catch (UnsupportedFlavorException ufe)
{
ufe.printStackTrace();
} catch (IOException ioe)
{
ioe.printStackTrace();
}
/*try {
Robot robot;
robot = new Robot();
final GraphicsConfiguration config
= GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice().getDefaultConfiguration();
final BufferedImage screenshot = robot.createScreenCapture(config.getBounds());
return screenshot;
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
return null;
}
如果应用程序正在我的机器上运行并且我按 Print Screen,则此代码运行良好。图像可用并存储。
我的问题是,当我在单独的服务器上部署此应用程序并在另一台机器上运行应用程序时。当用户按下打印屏幕然后单击应用程序中的按钮时。服务器找不到任何图像,因为它在剪贴板上查找,而在服务器剪贴板上没有可用的图像。图像在客户端桌面剪贴板上可用。
请帮助我使用 JSF/primefaces 从服务器访问客户端剪贴板。或其他替代方式。
我使用的是 primefaces 3.4,服务器是 weblogic 10.3.5。