php exec调用java的jar包执行jocab,word转pdf报错,正常执行java程序没问题,很奇怪,求大神帮忙

IT-JAVA小刘 2017-07-24 09:09:02
php exec调用java的jar包执行jocab,word转pdf报错,正常执行java程序没问题,很奇怪,求大神帮忙

这个是php的代码
try {
//proc_open ("java -jar D:\\docxToPdf1.jar D:/mmc/5.docx D:/mmc/11111111.pdf", $a, $b);

exec("cmd /c java -jar D:\\docxToPdf1.jar D:/mmc/5.docx D:/mmc/11111111.pdf" . ' 2>&1', $out, $status);

var_dump($out);
echo $status;
} catch (Exception $e) {
var_dump($e);
}


这个是java的代码 这块的代码达成jar包了
static final int wdFormatPDF = 17;// PDF 格式
public static void wordToPDF(String sfileName,String toFileName){

System.out.println("start Word...");
long start = System.currentTimeMillis();
ActiveXComponent app = null;
Dispatch doc = null;
try {
app = new ActiveXComponent("Word.Application");
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
// doc = Dispatch.call(docs, "Open" , sourceFile).toDispatch();
doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] {
sfileName, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
System.out.println("open word..." + sfileName);
System.out.println("convert word to PDF..." + toFileName);
File tofile = new File(toFileName);
if (tofile.exists()) {
tofile.delete();
}
// Dispatch.call(doc, "SaveAs", destFile, 17);
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
toFileName, new Variant(17) }, new int[1]);
long end = System.currentTimeMillis();
System.out.println("convert finish..use time:" + (end - start) + "ms.");
} catch (Exception e) {
e.printStackTrace();
System.out.println("========Error:word convert error:" + e.getMessage());
} finally {
Dispatch.call(doc,"Close",false);
System.out.println("close word");
if (app != null)
app.invoke("Quit", new Variant[] {});
}
//如果没有这句话,winword.exe进程将不会关闭
ComThread.Release();
}
...全文
168 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧