Восстановите borken файл Postscript, который открывается только в Ubuntu

322
Danis Fischer

Я пытаюсь преобразовать файл postscript из ссылки в pdf, который я могу просмотреть на любом компьютере. Когда я пытаюсь преобразовать его, я получаю ошибку о стеке:

Error: /rangecheck in --getinterval-- Operand stack: (\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000...) 9 0 714 9 (\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000...) -714 9 Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1862 1 3 %oparray_pop 1861 1 3 %oparray_pop 1845 1 3 %oparray_pop 1739 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- %loop_continue --nostringval-- --nostringval-- %loop_continue --nostringval-- Dictionary stack: --dict:1145/1684(ro)(G)-- --dict:0/20(G)-- --dict:70/200(L)-- --dict:138/300(L)-- --dict:96/200(L)-- Current allocation mode is local Last OS error: 2 Current file position is 373434 GPL Ghostscript 8.64: Unrecoverable error, exit code 1  

когда я пытаюсь напечатать это, я могу напечатать только половину этого. К счастью, я могу просмотреть его во встроенном средстве просмотра документов Ubuntu (я могу получить доступ ко всем страницам, но не могу распечатать их в файл).

Как я могу исправить этот конкретный файл postscript и преобразовать его в pdf?

0
Ваш Ghostscript действительно старый. Как 6 лет. ilkhd 9 лет назад 0
Что ты предлагаешь? Даже после обновления я получил ту же ошибку. Danis Fischer 9 лет назад 0
Вы пробовали сотни различных онлайн-сервисов? Они могут использовать различное программное обеспечение. ilkhd 9 лет назад 0
Да, я сделал. Все они дают эту конкретную ошибку. Danis Fischer 9 лет назад 0
Хорошо, я немного повозился и обнаружил, что страницы 36 и 49 (?) Не работают. Если вы их отключите, ghostscript сгенерирует вывод, без разбитых страниц. ilkhd 9 лет назад 0
@ilkhd как ты это нашел? Danis Fischer 9 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/22114/discussion-between-ilkhd-and-danis-fischer). ilkhd 9 лет назад 0

1 ответ на вопрос

1
ilkhd

Проблема заключается в том, что файл PS является исполняемой программой и может выполнять неправильные действия, которые нарушают работу виртуальной машины ghostscript. Я обнаружил, судя по позиции, возвращенной призрачным сценарием, какие страницы обидели; это страницы 234 (36) и 250 (52). Затем я открыл файл .ps в текстовом редакторе, поискал «%% Page: 234» и «%% Page: 250», буквально вырезал их (вплоть до следующего оператора %% Page) и покормил. PS файл в Ghostscript (без ошибок). Теперь у меня есть PDF без 2 страниц. Эти страницы могут быть исправлены кем-то, кто хорош в PostScript.

Благодарю. Как я могу их исправить? Danis Fischer 9 лет назад 0
Вам нужен только текстовый редактор (gedit? Mcedit?). Откройте файл ps, найдите %% Page: 234, выделите текст до %% Page: 235 (не считая «%% Page: 235») и удалите. Сохранить. Повторите для страницы 250. ilkhd 9 лет назад 0
Но как я могу исправить поврежденные страницы? (Вы не ответили в чате). Danis Fischer 9 лет назад 0
Извините, нужно пройти регистрацию, чтобы ответить и был занят вчера; страницы могут быть исправлены только экспертом в Postscript, а я нет; все, что я мог сделать, это выбросить сломанные страницы. ilkhd 9 лет назад 0
Спасибо, в любом случае. Кстати: как вы нашли номера поврежденных страниц? Danis Fischer 9 лет назад 0
Очень просто: «Текущее положение файла 373434» указывает на место, где произошла ошибка. Используя шестнадцатеричный редактор, я посмотрел на файл вокруг места и обнаружил, что я нахожусь в середине страницы; срезал, проверь - работает. ilkhd 9 лет назад 0

Похожие вопросы