2
A
回答
4
我已经修改了SWT浏览器片段到选择的代码,这对我的工作就像一个魅力..
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.browser.*;
public class BrowserPrintTest {
public static void main(String [] args) {
Display display = new Display();
final Shell shell = new Shell(display);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
shell.setLayout(gridLayout);
ToolBar toolbar = new ToolBar(shell, SWT.NONE);
ToolItem itemPrint = new ToolItem(toolbar, SWT.PUSH);
itemPrint.setText("Print");
GridData data = new GridData();
data.horizontalSpan = 3;
toolbar.setLayoutData(data);
Label labelAddress = new Label(shell, SWT.NONE);
labelAddress.setText("Address");
final Text location = new Text(shell, SWT.BORDER);
data = new GridData();
data.horizontalAlignment = GridData.FILL;
data.horizontalSpan = 2;
data.grabExcessHorizontalSpace = true;
location.setLayoutData(data);
final Browser browser;
try {
browser = new Browser(shell, SWT.NONE);
} catch (SWTError e) {
System.out.println("Could not instantiate Browser: " + e.getMessage());
display.dispose();
return;
}
data = new GridData();
data.horizontalAlignment = GridData.FILL;
data.verticalAlignment = GridData.FILL;
data.horizontalSpan = 3;
data.grabExcessHorizontalSpace = true;
data.grabExcessVerticalSpace = true;
browser.setLayoutData(data);
final Label status = new Label(shell, SWT.NONE);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 2;
status.setLayoutData(data);
final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE);
data = new GridData();
data.horizontalAlignment = GridData.END;
progressBar.setLayoutData(data);
/* event handling */
Listener listener = new Listener() {
public void handleEvent(Event event) {
ToolItem item = (ToolItem)event.widget;
String string = item.getText();
if (string.equals("Print")) browser.execute("javascript:window.print();");
}
};
browser.addProgressListener(new ProgressListener() {
public void changed(ProgressEvent event) {
if (event.total == 0) return;
int ratio = event.current * 100/event.total;
progressBar.setSelection(ratio);
}
public void completed(ProgressEvent event) {
progressBar.setSelection(0);
}
});
browser.addStatusTextListener(new StatusTextListener() {
public void changed(StatusTextEvent event) {
status.setText(event.text);
}
});
browser.addLocationListener(new LocationListener() {
public void changed(LocationEvent event) {
if (event.top) location.setText(event.location);
}
public void changing(LocationEvent event) {
}
});
itemPrint.addListener(SWT.Selection, listener);
location.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event e) {
browser.setUrl(location.getText());
}
});
shell.open();
browser.setUrl("http://eclipse.org");
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
是您的浏览器尺寸合适?如果您没有看到长页面的滚动条,那么您的浏览器组件区域会被修剪,并且打印后您可能只会看到可见区域。然后..
相关问题
- 1. 模拟SWT打印机
- 2. 在Eclipse插件中使用WebKit for SWT Browser
- 3. 保留SWT Widget对象的集合
- 4. 通过Jquery/JS/Browser特定的API捕获打印事件
- 5. SWT:打印浏览器的插件内容
- 6. 使用ace打印ICEfaces:打印机
- 7. 使用@media打印ExtJS图表打印
- 8. 使用pdf打印机打印文档
- 9. 打印使用打印文档
- 10. 印地文字体不显示在bRowser
- 11. 使用'\ n'打印
- 12. 打印使用angularjs
- 13. 打印使用jQuery
- 14. 打印使用jQuery
- 15. 打印使用jQuery
- 16. jQuery.lazyload使用打印
- 17. 在Qt widget iso控制台打印结果
- 18. 使用PHP打印到外部收据打印机使用PHP
- 19. 使用SenchaTouch使用Phonegap打印到外部收据打印机
- 20. 使用php直接打印到网络打印机使用php
- 21. 使用c#/ ASP.NET MVC2打印
- 22. 如何在angular2/browser上使用猫鼬
- 23. 使用SWT/Jface的SWT表切换
- 24. 使用jquery打印插件打印div不起作用
- 25. 使用蓝牙打印机在Android中打印不起作用
- 26. PHP预打印使用动态用户值打印的证书
- 27. Eclipse - 使用Google云打印从应用打印报告
- 28. 使用蓝牙打印机从Android应用打印数据
- 29. 如何使用不带打印机的默认打印机(VB Net)打印PDF
- 30. 使用Jasper Reports 6.x打印到热敏打印机磁带打印机