GhostScript-попытка уменьшить размер файла PDF-ошибка

Я пытаюсь уменьшить размер файла PDF с помощью GhostScript. В общем, это работает:

gswin32c -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf

Я думаю, что он избавляется от закладок, аннотаций и т. д.

на некоторых PDF-файлах я получаю пустой PDF-файл. Я получаю следующий вывод:

GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /rangecheck in --run--
Operand stack:
   15   0   15   --nostringval--   15
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval-
-   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   fa
lse   1   %stopped_push   1926   1   3   %oparray_pop   1925   1   3   %oparray_
pop   1909   1   3   %oparray_pop   --nostringval--   --nostringval--   --nostri
ngval--   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1166/1684(ro)(G)--   --dict:1/20(G)--   --dict:82/200(L)--   --dict:82
/200(L)--   --dict:108/127(ro)(G)--   --dict:291/300(ro)(G)--   --dict:22/30(L)-
-
Current allocation mode is local
GPL Ghostscript 9.04: Unrecoverable error, exit code 1

сообщение об ошибке не особо полезная. Есть предложения по устранению этой проблемы?

16
задан StackOverflowNewbie
30.03.2023 6:58 Количество просмотров материала 3363
Распечатать страницу

3 ответа

запуск с помощью устройства, отличного от pdfwrite, можно запустить Ghostscript без аргументов (используйте версию Windows gswin32), а затем перетащить на него файл. Откроется окно для отображения результата.

Если это работает, то вы, вероятно, нашли ошибку в pdfwrite. Если это не так, то либо это ошибка Ghostscript или ваш PDF является недействительным в некотором роде. Тот факт, что Acrobat открывает его не мешает ему быть недействительным, Acorbat открывает много сломанный PDF архив....

сообщение об ошибке is полезно, для тех, кто говорит PostScript; -) для тех, кто этого не делает, это означает 'что-то пошло не так', но если вы не понимаете PostScript, это самая полезная ошибка, которую вы можете ожидать. В этом случае он сообщает вам, что операнд был вне допустимого диапазона для оператора.

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

ваш лучший выбор, чтобы открыть отчет об ошибке вhttp://bugs.ghostscript.com, Вам будет нужно прикрепить обижая архив PDF и дать командную строку для того чтобы показать проблему. Если он показывает с дисплей устройства (т. е. окно, которое открывается при запуске gswin32c.exe без каких-либо аргументов для перетаскивания файлов), пожалуйста, укажите эту командную строку, а не pdfwrite. Предполагается, что если устройство pdfwrite, то его проблема в записи, которая это наверное нет.

попутно pdfwrite не просто избавляется от аннотаций и закладок, он полностью интерпретирует PDF-файл в графические примитивы, а затем создает новый PDF-файл, который содержит эти графические примитивы. В результате нет никакой гарантии, что содержание созданного PDF fie каким-либо образом похоже на содержание оригинала. Они должны соответствовать по внешнему виду, но объекты могут быть преобразованы в различные типы.

3
отвечен KenS 2023-03-31 14:46

кроме того, что Кенз упомянул, имейте в виду, что xfa аннотации (PDF формы, созданные с Adobe LifeCycle) не поддерживаются в Ghostscript, поэтому файл, содержащий только эти элементы, вероятно, приведет к пустой файл при обработке gswin32c.

0
отвечен yms 2023-03-31 17:03

использование :

gswin64c -dQUIET -dBATCH -dNOPAUSE -dSAFER -dMaxSubsetPct=100 -dPDFSETTINGS=/книги -sDEVICE=pdfwrite -sOutputFile=выходной_файл.pdf-файл.pdf

вы можете заменить экран или принтер для книги выше-это изменяет разрешение изображений (72/150/300 dpi)

удачи ;-)

0
отвечен crispin 2023-03-31 19:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх