2015-08-20 1 views
0

Я пытаюсь создать PDF-файл с довольно большого PS.Ghostscript: Ошибка стека стека

Продолжительность:

/usr/bin/ps2pdf -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -dPDFSettings=/printer /home/sls/slspdf.tmp.8bcbd0365c30f4d287e416e8.ps 

С результатом:

Error: /usr/bin/ps2pdf returned code 1: Error: /stackunderflow in --pop-- 
Operand stack: 

Execution stack: 
    %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1951 1 3 %oparray_pop 1950 1 3 %oparray_pop 1934 1 3 %oparray_pop 1820 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- 1 1 5 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- 
Dictionary stack: 
    --dict:1186/1684(ro)(G)-- --dict:0/20(G)-- --dict:132/200(L)-- --dict:29/40(L)-- 
Current allocation mode is local 
Last OS error: Not a directory 
Current file position is 797649 
GPL Ghostscript 9.15: Unrecoverable error, exit code 1 

Бросив через прямые гс (без ps2pdf оболочки) не дает много полезной информации либо:

gs -sDEVICE=pdfwrite -o test.pdf - < /home/sls/slspdf.tmp.8bcbd0365c30f4d287e416e8.ps 

Выход:

GPL Ghostscript 9.15 (2014-09-22) 
Copyright (C) 2014 Artifex Software, Inc. All rights reserved. 
This software comes with NO WARRANTY: see the file PUBLIC for details. 
Can't find (or can't open) font file /usr/share/ghostscript/9.15/Resource/Font/NimbusMonL-Bold. 
Can't find (or can't open) font file NimbusMonL-Bold. 
Can't find (or can't open) font file /usr/share/ghostscript/9.15/Resource/Font/NimbusMonL-Bold. 
Can't find (or can't open) font file NimbusMonL-Bold. 
Querying operating system for font files... 
Loading NimbusMonL-Bold font from /usr/share/fonts/default/Type1/n022004l.pfb... 4754536 3291634 8267744 6868788 1 done. 
Loading NimbusMonL-Regu font from /usr/share/fonts/default/Type1/n022003l.pfb... 4797552 3426617 8463168 7042500 2 done. 
Error: /stackunderflow in --pop-- 
Operand stack: 

Execution stack: 
    %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1951 1 3 %oparray_pop 1950 1 3 %oparray_pop 1934 1 3 %oparray_pop 1820 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- 1 1 5 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- 
Dictionary stack: 
    --dict:1180/1684(ro)(G)-- --dict:0/20(G)-- --dict:132/200(L)-- --dict:29/40(L)-- 
Current allocation mode is local 
Last OS error: Not a directory 
GPL Ghostscript 9.15: Unrecoverable error, exit code 1 

Единственное, что, похоже, заставляет меня работать, это физически сделать входной файл меньшим ... что, конечно, не очень приемлемое решение. Однако мы могли бы создать сценарий для создания нескольких «страниц» вывода PDF, а затем добавить их вместе во втором проходе, если это лучший ответ. Любые мысли о первопричине здесь?

Я вижу бит около Last OS error: Not a directory, это только последняя общая ошибка последней ОС или что она выбрана из Ghostscript в частности? Кажется, что это универсально, поскольку обрезка файла заставляет его работать, но я понятия не имею.

ответ

1

Забудьте о последней ошибке ОС.

Ваша проблема в том, что ваша программа PostScript имеет ошибку. PostScript - это язык на основе стека, и он сообщает вам, что вы выполнили оператор «pop», чтобы удалить верхний элемент из стека, и стек был пуст.

Не видя программы PostScript, я не могу сказать больше. Возможно, он был каким-то образом испорчен.

+0

Вы были верны. Спасибо, что, по крайней мере, выяснили, что бит ошибки ОС не нужен. Исходный файл PostScript был плохим. – slumtrimpet