我使用zest框架创建了一个网络视图,它使用SWT显示/ shell来显示UI。我想将UI导出为image / pdf。 怎么做?有什么想法吗?
答案 0 :(得分:3)
您可以使用SWT GC.copyArea()方法将Control的内容复制到Image,然后将Image保存到文件。例如,如果您有一个Zest GraphViewer, viewer ,则以下代码会将其内容复制到名为 out.png 的PNG文件中。
GC gc = new GC(viewer.getControl());
Rectangle bounds = viewer.getControl().getBounds();
Image image = new Image(viewer.getControl().getDisplay(), bounds);
try {
gc.copyArea(image, 0, 0);
ImageLoader imageLoader = new ImageLoader();
imageLoader.data = new ImageData[] { image.getImageData() };
imageLoader.save("c:\\out.png", SWT.IMAGE_PNG);
} finally {
image.dispose();
gc.dispose();
}