使用exec调用外部程序出错

griefforyou 2011-11-04 03:16:50
我今天遇到一个很诡异的问题,不知道如何解决了。

我要做一个在线PDF阅读功能,用到了swftools中的pdf2swf.exe,由于pdf文件比较大,我将pdf文件每30页生成一个swf文件,然后通过flash阅读器来查看,将pdf转为swf的命令行代码如下:

D:\SWFTools\pdf2swf.exe d:\swftools\xxx.pdf -p 31-60 -o d:\swftools\xxx_31-60.swf -f -T 9 -t -s poly2bitmap


其功能是将 xxx.pdf的第31-60页生成 xxx_31-60.swf。

绝大部分情况都是正常的,今天遇到一个文件转换出错了,是转换一个文件的第31到60页,在转换过程中会弹出窗口
---------------------------
pdf2swf.exe - 应用程序错误
---------------------------
"0x00633616" 指令引用的 "0x025db000" 内存。该内存不能为 "read"。


要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
---------------------------
确定 取消
---------------------------


点击确定后,php在得到的结果如下:

NOTICE  processing PDF page 31 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 32 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 33 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 34 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 35 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 36 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 37 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 38 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 39 (1303x793:0:0) (move:0:0)
NOTICE processing PDF page 40 (1303x793:0:0) (move:0:0)


中途出错了,而且每次中断的位置不一定。

然而我直接在命令行(cmd)中运行却一切正常。

更诡异的事情还在后面,我又尝试改变一下转换页的范围,我发现在php中转换 31-61页 或 31-59页居然通过了,唯独是 31-60页会出错,我当场晕死。。。

有哪位朋友知道这是怎么回事,如何解决吗?
...全文
202 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
蹲坑看月亮 2012-06-27
  • 打赏
  • 举报
回复
求解~~
sd6815892 2012-06-27
  • 打赏
  • 举报
回复
我也碰到了同样的问题,是因为你有一页有很复杂的图,
和参数-s poly2bitmap有关系这个是将一般的图转成位图,文字不转
换成-s bitmap就没问题了,但是文字看不太清楚了
griefforyou 2011-11-07
  • 打赏
  • 举报
回复
关键这个不光在我的电脑上出现,在服务器上也出现
baoxiaohua 2011-11-06
  • 打赏
  • 举报
回复
"0x00633616" 指令引用的 "0x025db000" 内存。该内存不能为 "read"。

最怕看到这个了!有时候重装系统都解决不了
aipai_leeyo 2011-11-05
  • 打赏
  • 举报
回复
哎,还没用过 swftools
binarie 2011-11-04
  • 打赏
  • 举报
回复
说法不一样嘛。windows里面习惯叫非法操作。
ohmygirl 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 binarie 的回复:]

可能跟调用参数有关吧。

非法操作跟linux的段错误意思差不多,都是访问了不该访问的内存地址。
[/Quote]

段错误跟是否linux没有关系吧。有内存访问的地方就可能有段错误。

在命令行中执行转换31-60页也会出错么?
binarie 2011-11-04
  • 打赏
  • 举报
回复
可能跟调用参数有关吧。

非法操作跟linux的段错误意思差不多,都是访问了不该访问的内存地址。
griefforyou 2011-11-04
  • 打赏
  • 举报
回复
关键是用php调用的时候,而且是特定的文件,特定的参数才报错
ohmygirl 2011-11-04
  • 打赏
  • 举报
回复
又是这个问题。
windows中软件时不时就这个错误。悲哀啊。

21,886

社区成员

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

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