怎麼用java呼叫用codesoft設計的條形碼文件
用ireport設定的jasper有相應的程式碼來呼叫,如 JasperPrint print = JasperFillManager.fillReport()。但用ireport製作條形碼不夠精細。但用codesoft來設計的時候,我們怎麼去呼叫生成的LAB文件,並列印出來。希望大蝦指點一下。
經過好多天的努力自己終於將這個問題解決了。現在程式碼共享如下,僅供參考因為本人還不精通。
package com.prodPrint;
import java.io.File;
import java.util.HashMap;
import org.eclipse.swt.SWT;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleControlSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.ole.win32.Variant;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import com.lppx2.OleDispatch;
public class ActiveXPrinter extends Composite{
private OleFrame myFrame = new OleFrame(this, SWT.NONE);
// Microsoft Internet Explorer ProgID: Shell.Explorer.2
// Codesoft ProgID : Lppx2.Application
private String progId = "Lppx2.Application";
private OleControlSite controlSite;
private OleAutomation automation;;
private OleDispatch appActiveDoc;
private OleDispatch appDocs;
File currentFile;
public ActiveXPrinter(Composite parent, int style) {
super(parent, style);
myFrame = new OleFrame(this, SWT.NONE);
controlSite = new OleControlSite(myFrame, SWT.NONE, progId);
automation = new OleAutomation(controlSite);
}
public void print (String fileName) {
currentFile = new File(fileName);
initialize();
}
private void initialize() {
try{
Variant documents = (new OleDispatch(automation)).Invoke("Documents",new Variant[0]);
appDocs = new OleDispatch(documents.getAutomation());
if (!currentFile.canRead() ) {
System.out.println("Unable to read file : " + currentFile);
} else {
Variant file[] = new Variant[1];
file[0] = new Variant(currentFile.getAbsolutePath());
if (appDocs.Invoke("Open", file) != null) {
System.out.println(currentFile.getAbsolutePath() + " is opened now");
} else {
System.out.println("Unable to open " + currentFile.getAbsolutePath());
}
Variant activeDocumentV = (new OleDispatch(automation)).Invoke(
"ActiveDocument", new Variant[0]);
try {
appActiveDoc = new OleDispatch(activeDocumentV.getAutomation());
} catch (Exception excpt) {
}
Variant[] quantity = new Variant[1];
quantity[0] = new Variant(1);
if (appActiveDoc.Invoke("PrintDocument", quantity) != null)
System.out.println("Print OK");
else {
System.out.println("Unable to print !");
}
}
}catch(Exception excpt) {
System.out.println("You can't print anything until a document is opened !");
excpt.printStackTrace();
return;
}
}
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell(display);
new ActiveXPrinter(shell, 0).print("C:Document1.Lab");
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
------------------------------------------------------------------------------------
package com.prodPrint;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.Variant;
public class OleDispatch {
public OleAutomation oa;
public OleDispatch(OleAutomation oa) {
this.oa = oa;
}
public Variant Invoke(String name, Variant[] arg) {
if (oa != null) {
int[] cmdId = oa.getIDsOfNames(new String[] { name });
if (cmdId != null) {
return oa.invoke(cmdId[0], arg);
} else {
return null;
}
} else {
return null;
}
}
public String Invoke2(String name, Variant arg[]) {
int cmdId[] = oa.getIDsOfNames(new String[] { name });
return Integer.toString(cmdId[0]);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/93029/viewspace-1027376/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 條形碼設計軟體BarTender實用教程——配置文件常見問題解答(一)
- Java 條形碼生成(一維條形碼)Java
- 【教程】將Java條形碼新增到PDF文件的兩種方法Java
- 條形碼設計軟體BarTender實用教程——使用圖層組織物件物件
- 在unix下,怎麼用java呼叫.o檔案呢?Java
- Java圖書管理系統,課程設計必用(原始碼+文件)Java原始碼
- 條形碼設計軟體BarTender實用教程——模板物件常見問題解答物件
- 條形碼設計軟體BarTender實用教程——透明度樣本標籤
- 用java怎麼寫?Java
- onethink的下載文件模型怎麼用模型
- 一個給 Java 程式設計師用的 Api 文件生成工具Java程式設計師API
- 設計模式怎麼用UML圖表示?設計模式
- webservice返回值是一個complextype,怎麼用java呼叫。WebJava
- 文件翻譯器怎麼用?如何翻譯Word文件?
- JAVA中的foreach怎麼用Java
- Java新增條形碼到PDF表格Java
- 用OpenCV和Python識別二維碼和條形碼OpenCVPython
- 適用於設計師和圖形設計的最佳MacMac
- win10 word文件怎麼加背景_win10怎麼用word文件背景Win10
- Java的日期類都是怎麼用的Java
- Java 新增條碼、二維碼到Word文件Java
- 文件翻譯軟體怎麼用?怎麼把Excel文件翻譯成中文版Excel
- 計算機軟著的程式碼文件怎麼做?計算機
- 如何製作實用美觀的設計文件
- Material Design 中的應用欄該怎麼設計?Material Design
- 免程式設計應用怎麼控制App風險?程式設計APP
- 設計測試用例的四條原則
- 如果一個指令碼中有多條用例,用什麼方式判定某條用例 Fail,判定失敗後,怎麼樣才能繼續執行其餘用例?指令碼AI
- synchronized 程式碼塊怎麼用synchronized
- 怎麼用java繪製曲線Java
- UI設計學習的對比原則怎麼運用?UI
- 條形碼ENA-13校驗碼的計算方法
- 用excel2003製作條形碼圖文教程Excel
- Web應用隱形後門的設計與實現Web
- 爬蟲的代理ip怎麼用程式碼爬蟲
- Python3中預設編碼是什麼?怎麼用?Python
- Java怎樣呼叫外設,如呼叫掃描器Java
- 怎麼快速插入 100 條資料,用時最短!