caj转pdf功能实现
caj转pdf功能实现,主要用到的是php接口和python核心转换语言。
还是老规矩废话不多说,caj转pdf的docker镜像包放在了文末,共500M左右。
内部搭建了php+apache+python环境,直接部署到docker然后分发个端口即可。
分别为php接口,cajpdf核心文件,uploadfile生成目录,其中核心文件包括:
他的底层由cajviewer提供,c++转换。
<?php
$cajfilename = $_GET['caj'];
$time = time();
$file = downloadFile($cajfilename,'/var/www/html/uploadfile/'.$time);
$file_py = __DIR__.'/cajpdf/caj2pdf';
$file_position = explode('/',$file);
$filename = explode('.',end($file_position))[0].'.pdf';
array_pop($file_position);
$file_position_str = implode('/',$file_position).'/'.$filename;
$output = shell_exec('python3 '.$file_py.' convert '.$file.' -o '.$file_position_str);
echo $file_position_str;
function downloadFile($url,$savePath=''){
$fileName = basename($url);
$file = file_get_contents($url);
file_put_contents($savePath.'/'.$fileName,$file);
return $savePath.'/'.$fileName;
}
function getUrlFileExt($url){
$ary = parse_url($url);
$file = basename($ary['path']);
$ext = explode('.',$file);
return $ext[1];
}
?>
在浏览器输入地址请求该docker的php接口,传递caj地址到接口中,接口会下载到uploadfile,然后调用python脚本使用c++做解析,生成的文件会和之前下载的caj文件保存到同一目录中,并有返回值
其中python依赖环境有三个,分别为如下:
pdf绘制用的是mupdf-tools
python版本为3.6.9
默认为docker部署,如果需要其他文件的私信我。。。
docker镜像地址: