2012-07-26 1 views
1

При использовании этой команды на PDF-файлов больше, чем около 600KBImageMagick конвертировать ошибку:/rangecheck в RESOLVER с PDF-файлов больше, чем 600KB

<? passthru("convert -verbose -scale '200x200+0+0>' ".$pdf."[0] $image"); ?> 

Я получаю выход ошибки:

ERROR: /rangecheck in resolveR 
Operand stack: 
    PageCount 4763294 47 46 
Execution stack: 
    %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- 
Dictionary stack: 
    --dict:1129/1686(ro)(G)-- --dict:0/20(G)-- --dict:107/200(L)-- --dict:107/200(L)-- --dict:104/127(ro)(G)-- --dict:241/347(ro)(G)-- --dict:16/24(L)-- 
Current allocation mode is local 

Кто-нибудь есть обходной путь для этих больших файлов? Мне нужно вытащить эскиз страницы 1 с размером до 4 МБ.

Per Kurt ниже Я также попытался доступа GS непосредственно:

<? 
    $image = "3.jpg"; 
    $pdf = '3/ABS_Survey_for_Load_Lines_CIB_100.pdf'; 
    if (!file_exists($image)) { 
     echo passthru("gs \ 
-sOutputFile=$image \ 
-sDEVICE=jpeg \ 
-g200x200 \ 
-dPDFFitPage \ 
$pdf"); 
    } 
?> 

Это дает ту же ошибку:

ESP Ghostscript 815.02 (2006-04-19) 
Copyright (C) 2004 artofcode LLC, Benicia, CA. All rights reserved. 
This software comes with NO WARRANTY: see the file PUBLIC for details. 
ERROR: /rangecheck in resolveR 
Operand stack: 
    PageCount 4763294 47 46 
Execution stack: 
    %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- 
Dictionary stack: 
    --dict:1122/1686(ro)(G)-- --dict:0/20(G)-- --dict:107/200(L)-- --dict:107/200(L)-- --dict:104/127(ro)(G)-- --dict:241/347(ro)(G)-- --dict:16/24(L)-- 
Current allocation mode is local 

ответ

1

Плохие новости! Я играл с онлайн-конвертером, используя проблему PDF, и это дало ошибку «плохой pdf». Все PDF-файлы откроются вам в Acrobat, но ... я взял некоторые из проблемных и повторно сохранил их, используя мои Acrobat 9, и вот и создайте созданные миниатюры без проблем ...

Так что проблема должна была делать с любым программным обеспечением верфи, используемым для создания PDF-файлов.

+1

Чтобы открыть программное обеспечение PDF Creator и PDF Producer, запустите: 'pdfinfo my.pdf'. Вы также можете использовать (последнюю версию) Ghostscript для исправления ваших файлов с дефектами: 'gs -o out.pdf -sDEVICE = pdfwrite in.pdf' –

1

ImageMagick в convert не открывается и процесс PDF сам файлов. Вместо этого он использует в качестве делегата для входов PDF Ghostscript.

Ошибка, которую вы показываете, является типичным сообщением об ошибке Ghostscript.

Для отладки это, вы должны попробовать сначала запустить Ghostscript непосредственно, чтобы увидеть, если это действительно вина в программе Ghostscript:

gs \ 
    -dBATCH \ 
    -dNOPAUSE \ 
    -sOutputFile=200x200px-output.jpeg \ 
    -sDEVICE=jpeg \ 
    -g200x200 \ 
    -dPDFFitPage \ 
    2000-kilobyte-input.pdf 

Кроме того, обратите внимание на версию Ghostscript у вас есть: gs -v. (Вы должны использовать последнюю версию, например 9.05)


Update:

С вашей версии Ghostscript (ESPGS 8.15.2) ...

  • ... более 6 лет (в то время, когда PDF-1.6 и Acrobat 7 были самыми новыми версиями для PDF),
  • ... но так как вы, скорее всего, обрабатываете даже самые современные форматы PDF (PDF-1.7 и Acrobat X теперь текущие),

... вам также рекомендуется обновить ваш Ghostscript (который должен потреблять такие новые файлы) и в текущей версии.

+0

Спасибо за ответ. Я застрял на данный момент с ESP Ghostscript 8.15.2. Я получал «Неизвестный переключатель -o3.jpg - игнорирование», но на основе man-страницы я изменил -o на -sOutputFile =, в какой момент я вернулся к получению «ERROR:/rangecheck в resolveR» – jerrygarciuh

+1

@jerrygarciuh: ОК, ESP Ghostscript 8.15.2 довольно старый. (И он не понимает новый синтаксис '-o output.jpeg'. Я соответственно обновлю свой ответ. –

+0

Спасибо за ваше время и помощь! – jerrygarciuh