红联Linux门户
Linux帮助

ubuntu中实现tif格式转换为pdf或者其它各种格式的方法

发布时间:2015-11-13 15:02:27来源:linux网站作者:盘古黄一鸣

在做一个OA系统项目中,开发到传真模块,传真数据是通过aofax收发的,现在要把收到的tif文档显示到浏览器上。最好的办法是把tif文档转换成pdf的格式。


步骤如下:

1、运行以下五条代码

sudo aptitude update

sudo aptitude install make php5-cli php5-gd php5-dev php-pear gs-common ghostscript

sudo aptitude remove php5-imagick

sudo apt-get install libmagick9-dev

sudo pecl install imagick   //如果只安装这个会出问题就把上面四个都安装了


2、在/etc/php5/apache/php.ini中加入extension=imagick.so扩展


3、重启apache,/etc/init.d/apache restart

以上配置完后测试

调用这个函数

private function tif_to_pdf($file_tif,$file_pdf){ 
$errors = array(); 
$cmd_ps2pdf = "/usr/bin/ps2pdfwr"; 
//  $file_tif   = escapeshellarg($file_tif);//escapeshellarg函数用于过滤shell参数 
//  $file_pdf   = escapeshellarg($file_pdf); 
if (!file_exists($file_tif)) $errors[] = "Original TIFF file: ".$file_tif." does not exist"; 
if (!file_exists($cmd_ps2pdf)) $errors[] = "Ghostscript PostScript to PDF converter not found at: ".$cmd_ps2pdf; 
if (!extension_loaded("imagick")) $errors[] = "Imagick extension not installed or not loaded"; 
if (!count($errors)) { 
// 确认文件的基本路径 
$base = $file_pdf; 
if(($ext = strrchr($file_pdf, '.')) !== false) $base = substr($file_pdf, 0, -strlen($ext)); 
// Determine the temporary .ps filepath 
$file_ps = $base.".ps"; 
// 打开原始的.tiff文件 
$document = new Imagick($file_tif); 
// Use Imagick to write multiple pages to 1 .ps file 
if (!$document->writeImages($file_ps, true)) { 
$errors[] = "Unable to use Imagick to write multiple pages to 1 .ps file: ".$file_ps; 
} else { 
$document->clear(); 
// Use ghostscript to convert .ps -> .pdf 
exec($cmd_ps2pdf." -sPAPERSIZE=a4 ".$file_ps." ".$file_pdf, $o, $r); 
if ($r) { 
$errors[] = "Unable to use ghostscript to convert .ps(".$file_ps.") -> .pdf(".$file_pdf."). Check rights. "; 
}  


 
// return array with errors, or true with success. 
if (!count($errors)) { 
return true; 
} else { 
return $errors; 


以上的操作如果出问题,可按以下的办法进行修改;因为我在2012-08-01重装了操作系统,是安装UBUNTU1204的服务器版。

在运行sudo apt-get install libmagick9-dev时有以下出错提示:

E: Package 'libmagick9-dev' has no installation candidate

可以运行sudo apt-get install  graphicsmagick-libmagick-dev-compat来替换上面的语句。

如果pecl没有安装请运行sudo apt-get install php-pear

在运行sudo pecl install imagick 时有以下出错提示:
checking if ImageMagick version is at least 6.2.4... configure: error: no. You need at least Imagemagick version 6.2.4 to use Imagick.
ERROR: `/tmp/pear/temp/imagick/configure --with-imagick=hjw' failed

根据提示是没有安装Imagemagick,所以要先按以下方法安装,版本根据自己的需要选择

http://www.imagemagick.org/script/download.php

运行下面的命令

sudo wget ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.7.8-8.tar.gz
sudo tar -xvf ImageMagick-6.7.8-8.tar.gz
sudo make
sudo make install

再次运行 sudo pecl install imagick 如果出现以下的提示: 
 
/tmp/pear/temp/imagick/php_imagick.h:49:31: fatal error: wand/MagickWand.h: No such file or directory
需要运行
apt-get install libmagickwand-dev
就可以了。


Ubuntu下的ocr文字识别(pdf、tif等):http://www.linuxdiyf.com/linux/1944.html

在Ubuntu 15.10里把网页打印成PDF文档:http://www.linuxdiyf.com/linux/14844.html

Linux用命令行打开doc pdf chm等文件:http://www.linuxdiyf.com/linux/14550.html

Linux下把多个图片合成一个pdf文件:http://www.linuxdiyf.com/linux/11779.html

在Ubuntu下把jpg格式文件转换成pdf格式文件:http://www.linuxdiyf.com/linux/9884.html