java发送传真问题。

Python013

java发送传真问题。,第1张

如果是单靠java的api 的话,是不可能完成的,也可以 试试JNI调用C了但是你得给 操作系统做软件接口

这是一个简单的列子 。

filePath:是发送传真的文件路径

phoneNum: 是传真号码,多个传真号以,隔开传真号码的格式为 “区号”+“-”+ 传真号码

实际传真时,传真号的格式为 区号+" "+传真号码 如果发送本地传真要去掉本地的区号

private void sendfax(String filePath, String phoneNum){

Properties pro = new Properties()

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/fax4j.properties")

try {

pro.load(inputStream)

} catch (IOException e) {

e.printStackTrace()

}

FaxClient faxClient = FaxClientFactory.createFaxClient("vbs",pro)

FaxJob faxJob = faxClient.createFaxJob()

if(phoneNum != null&&!"".equals(phoneNum)){

if(phoneNum.indexOf(",") >= 0){

String[] faxstr = phoneNum.split(",")

for(int i = 0 i <faxstr.lengthi++){

if(!"".equals(faxstr[i])){

String qhPhone = ""

String phonenum = ""

if(faxstr[i].indexOf("-")>=0){

qhPhone = faxstr[i].substring(0,faxstr[i].indexOf("-"))

}

if(MessageConstant.REGIONNUM.equals(qhPhone)){

phonenum = faxstr[i].substring(faxstr[i].indexOf("-")+1)

}else{

phonenum = faxstr[i].replace("-", " ")

}

phonenum = "0,"+phonenum //这里的0是由于电话拨号要拨0再拨传真机号

faxJob.setFile(new File(filePath))

faxJob.setPriority(FaxJobPriority.HIGH_PRIORITY)

faxJob.setTargetAddress(phonenum)

faxJob.setTargetName("")

faxJob.setSenderEmail("")

faxJob.setSenderName("")

faxJob.setSenderFaxNumber("发送号")

faxClient.submitFaxJob(faxJob)

System.out.println("Fax job submitted,ID:"+faxJob.getID())

}

}

}else{

String qhPhone = ""//区号

String phonenum = ""

if(phoneNum.indexOf("-")>=0){

qhPhone = phoneNum.substring(0,phoneNum.indexOf("-"))

}

if(MessageConstant.REGIONNUM.equals(qhPhone)){

phonenum = phoneNum.substring(phoneNum.indexOf("-")+1)

}else{

phonenum = phoneNum.replace("-", " ")

}

faxJob.setFile(new File(filePath))

faxJob.setPriority(FaxJobPriority.HIGH_PRIORITY)

faxJob.setTargetAddress("0,"+phonenum)

faxJob.setTargetName("")

faxJob.setSenderEmail("")

faxJob.setSenderName("发送者")

faxJob.setSenderFaxNumber("发送号")

faxClient.submitFaxJob(faxJob)

System.out.println("Fax job submitted,ID:"+faxJob.getID())

}

}

}

这个要调用传真协议了

一般有的猫的驱动上会有传真驱动。

写本地方法调用那个驱动才可以,应该挺复杂的。

毕竟传真和平时使用的网络不一样,要用电话线拨号,而且要用传真自己的协议。

//传真

if($('#fax').val() != ""){

var pattern = /^((0\d{2,3}-)?\d{7,8})$/

if(!pattern.test($('#fax').val())){

alert("请确认传真正确格式!")

$('#fax').focus()

return false

}

}

//格式:0111-1111111