[英]Read pdf file with php-imagick on Travis
我需要在php-imagick擴展上閱讀Travis上的pdf文件。
我了解到我需要調整imagick policy.xml文件以允許imagick讀取pdf文件。 所以我添加了一個自定義policy.xml。
env:
global:
- MAGICK_CONFIGURE_PATH=$HOME/.config/ImageMagick/
...
before_script:
# Allow imagemagick to read PDF files
- echo $MAGICK_CONFIGURE_PATH
- mkdir $MAGICK_CONFIGURE_PATH
- echo '<policymap>' > $MAGICK_CONFIGURE_PATH/policy.xml
- echo '<policy domain="coder" rights="read" pattern="PDF" />' >> $MAGICK_CONFIGURE_PATH/policy.xml
- echo '</policymap>' >> $MAGICK_CONFIGURE_PATH/policy.xml
- sudo rm /etc/ImageMagick-6/policy.xml
但仍然是[Failed to read the file]
構建失敗
文件在那里,在本地工作,我懷疑imagick仍然無法閱讀PDF。 新政策似乎也適用:
$convert -list policy
Path: /home/travis/.config/ImageMagick/policy.xml
Policy: Coder
rights: Read
pattern: PDF
Policy: Coder
rights: Read
pattern: PDF
Path: [built-in]
Policy: Undefined
rights: None
我怎樣才能解決這個問題?
構建失敗的原因是: https : //travis-ci.org/ivoba/silverstripe-simple-pdf-preview/jobs/563919021
您是否在標准Debian環境中嘗試過它? 在我的情況下,Imagick能夠無需進一步處理PDF - 請確保源PDF是非Adobe限制版本,例如PDF1.4。 否則它可能不起作用:
$im = new \Imagick();
$im->setResolution(300, 300);
$im->readImage($path_of_pdf_file);
$im->writeImages($folder_to_place_each_page . '/' . $name, false)
過了一會兒我才回答我自己的問題:
問題是imagemagick需要ghostscript來處理pdf,而ghostscript需要安裝在Debian中。
除了編輯policy.xml文件之外,將安裝命令添加到.travis.yml也可以。
sudo apt-get install -y ghostscript
完整的travis文件是: https : //github.com/ivoba/silverstripe-simple-pdf-preview/blob/master/.travis.yml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.