不能从Matlab调用PDFtk,但可以从终端调用

时间:2014-01-24 06:43:28

标签: macos bash matlab terminal pdftk

出于某种原因,当我尝试从Matlab(pdftk *.pdf cat output combFile.pdf)调用PDFtk时,我收到/bin/bash: pdftk: command not found错误,但我可以在同一目录中的终端中运行相同的命令,没有任何问题。我重新启动了我的系统,但这似乎没有帮助。我正在运行Mac OSX 10.9.1Matlab 2013b。我不想使用PDFtk的绝对路径,因为它需要跨平台兼容。

编辑:这可能会有所帮助。当我在Matlab中回显$ PATH时,我得到/usr/bin:/bin:/usr/sbin:/sbin。当我在终端进行此操作时,我得到/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin。然后我做了which pdftk并返回/usr/local/bin/pdftk无论如何要将/usr/local/bin/路径添加到Matlab?

2 个答案:

答案 0 :(得分:1)

我相信导出PATH的想法可能对单个系统更好(注意:我还没有测试过),但是我需要将我的脚本用在几台不受我控制的Mac和Linux机器上。这就是我最终使用的(是的,我知道这会在Windows上中断,但没关系)

if(ismac)
    system('/usr/local/bin/pdftk myfig[0-9][0-9].pdf cat output myfigCombined.pdf');
else
    system('/usr/bin/pdftk myfig[0-9][0-9].pdf cat output myfigCombined.pdf');
end

最初,我使用if(isunix)作为第二个命令,但可能是因为Mac的unix架构正在执行两个命令。

编辑:我能够在Linux上测试它,它运行得很好。我想这可能是Windows的语法,但是我无法访问安装了PDFtk和Matlab的Windows机器,所以没有保证(另外,我也不确定我的路径引号是否正确......):< / p>
elseif (ispc)
    system('"C:\Program Files (x86)\PDFtk Server\bin\pdftk" myfig[0-9][0-9].pdf cat output myfigCombined.pdf');

答案 1 :(得分:0)

似乎您的$ PATH环境变量未导出到Matlab。读 http://www.mathworks.com/matlabcentral/newsreader/view_thread/255609 我建议添加一个

export PATH=$PATH:<Path-to-your-PDFtk-binary>
你的.bash_profile

中的