歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu中實現tif格式轉換為pdf或者其他各種格式的方法

Ubuntu中實現tif格式轉換為pdf或者其他各種格式的方法

日期:2017/2/28 16:02:43   编辑: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

以上配置完後測試

調用這個函數

  1. private function tif_to_pdf($file_tif,$file_pdf){
  2. $errors = array();
  3. $cmd_ps2pdf = "/usr/bin/ps2pdfwr";
  4. // $file_tif = escapeshellarg($file_tif);//escapeshellarg函數用於過濾shell參數
  5. // $file_pdf = escapeshellarg($file_pdf);
  6. if (!file_exists($file_tif)) $errors[] = "Original TIFF file: ".$file_tif." does not exist";
  7. if (!file_exists($cmd_ps2pdf)) $errors[] = "Ghostscript PostScript to PDF converter not found at: ".$cmd_ps2pdf;
  8. if (!extension_loaded("imagick")) $errors[] = "Imagick extension not installed or not loaded";
  9. if (!count($errors)) {
  10. // 確認文件的基本路徑
  11. $base = $file_pdf;
  12. if(($ext = strrchr($file_pdf, '.')) !== false) $base = substr($file_pdf, 0, -strlen($ext));
  13. // Determine the temporary .ps filepath
  14. $file_ps = $base.".ps";
  15. // 打開原始的.tiff文件
  16. $document = new Imagick($file_tif);
  17. // Use Imagick to write multiple pages to 1 .ps file
  18. if (!$document->writeImages($file_ps, true)) {
  19. $errors[] = "Unable to use Imagick to write multiple pages to 1 .ps file: ".$file_ps;
  20. } else {
  21. $document->clear();
  22. // Use ghostscript to convert .ps -> .pdf
  23. exec($cmd_ps2pdf." -sPAPERSIZE=a4 ".$file_ps." ".$file_pdf, $o, $r);
  24. if ($r) {
  25. $errors[] = "Unable to use ghostscript to convert .ps(".$file_ps.") -> .pdf(".$file_pdf."). Check rights. ";
  26. }
  27. }
  28. }
  29. // return array with errors, or true with success.
  30. if (!count($errors)) {
  31. return true;
  32. } else {
  33. return $errors;
  34. }
  35. }
Copyright © Linux教程網 All Rights Reserved