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打印到熱敏打印機磁帶打印機