Ghostscript шрифты с использованием API - PullRequest
2 голосов
/ 30 сентября 2010

У меня есть небольшая проблема с Ghostscript. Я пишу приложение в .NET, которое использует Ghostscript API, gs32dll.dll. Он отлично работает для ряда PDF-файлов, но есть пара, у которых есть этот маленький фильм, может дингбат, и ghostscript выдает ошибку из-за отсутствия этого шрифта. Я знаю, что должен сделать листинг для этого шрифта в файле cidfmap, но, поскольку я не использую фактическую установку ghostscript, у меня нет локальных путей, указывающих на этот файл. Я хочу, чтобы эта программа была установлена ​​на нескольких компьютерах, но я бы предпочел не устанавливать полноценный ghostscript на эти компьютеры. Итак, мне было интересно, можно ли будет поместить копию cidfmap вместе с DLL. Я подумал, что он может посмотреть в первую очередь. Я бы даже был крут, если бы ghostscript пропустил конвертацию этого персонажа. Я открыт для любых идей.

О программе:
Я преподаю математику. У нас есть эти заметки руководства в формате PDF. Каждый раздел в каждой главе имеет два файла PDF, один с ответами, а другой без ответов. Я использую ghostscript для преобразования PDF-файлов в изображения (JPEG). По окончании пользователь сможет использовать перо Smartboard, чтобы выделить область, в которой будет находиться ответ, и ответ будет вырезан из изображения документа ответа и вставлен в то же место в пустом документе. Я планирую передать это другим учителям математики, как только закончу. Я хотел бы сохранить программу самодостаточной, поэтому мне не нужно объяснять им, как устанавливать ghostscript и еще много чего. Я просто хотел бы передать им папку.

Редакция = 900

RevisionDate = 20100914

Продукт = GPL Ghostscript

Авторское право = Авторское право (C) 2010 Artifex Software, Inc. Все права защищены.

GPL Ghostscript 9.00 (2010-09-14)

Copyright (C) 2010 Artifex Software, Inc. Все права защищены.

Это программное обеспечение не предоставляется без гарантии: подробности см. В файле PUBLIC.

Обработка страниц с 1 по 5.

Страница 1

Страница 2

Не удалось найти шрифт CID "ZapfDingbats".

Замена шрифта CID / Adobe-Identity для / ZapfDingbats, см. Doc / Use.htm # CIDFont

Замена.

Заменяющий шрифт CID "Adobe-Identity" также не предоставляется. Выйдет с ошибка.

Ошибка: / undefined в findresource

Стек операндов:

- дикт: 11/20 (L) - G27 1 - суд: 5/5 (L) - - дикт: 5/5 (L) - ZapfDingbat s-Identity-H --dict: 10/12 (ro) (G) - --nostringval-- CIDFontObject --dict: 7/7 (L) - - приговор: 7/7 (L) - Adobe-Identity Стек исполнения: % interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval- - 2% stop_push --nostringval-- --nostringval-- --nostringval-- fa lse 1% stop_push 1910 1 3% oparray_pop 1909 1 3% oparray_ pop 1893 1 3% oparray_pop --nostringval-- --nostringval-- 3 1 5 --nostringval--% for_pos_int_continue --nostringval-- --nostringval-- --nostringval-- --nostringval--% array_continue --nostringval-- false 1% stop_push --nostringval--% loop_continue --nostringval-- --nos tringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval -% array_continue --nostringval-- --nostringval-- --nostringval-- --n ostringval-- --nostringval--% loop_continue Стек словаря: - суд: 1158/1684 (ро) (G) - - суд: 1/20 (G) - - суд: 82/200 (L) - - суд: 82 / 200 (L) - - суд: 108/127 (ро) (G) - - суд: 293/300 (ро) (G) - - суд: 23/30 (L) - - суд: 6/8 (л) - суд: 22/40 (л) - суд: 14/15 (л) -

Текущий режим выделения - локальный

Последняя ошибка ОС: нет такого файла или каталога

GPL Ghostscript 9.00: неисправимая ошибка, код выхода 1

Ответы [ 2 ]

1 голос
/ 01 октября 2010

В командной строке Linux, вызовите

gs -h  

в Windows, вызовите

gswin32c.exe -h

. Это должно показать вам пути поиска, используемые вашим экземпляром Ghostscript.Это может помочь вам определить, где в структуре вашей папки вам нужно разместить ресурс шрифта.

Вы также можете использовать дополнительный параметр CLI для переопределения любых встроенных путей поиска:

gswin32c.exe ^
   -I"d:/absolute/path/to/dir;../relative/path/to/dir;c:/other dir with spaces" ^
   [...]

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

Я уверен, что вы можете каким-то образом добавить такой вызов (-I...) в свое программное обеспечение.

0 голосов
/ 30 сентября 2010

Как насчет разделения вашей программы на клиентскую и серверную части?

Тогда на сервере может быть установлен весь Ghostscript и все виды шрифтов, а клиенту, обращающемуся к этому серверу, Ghostscript не понадобится навсе.

Может также помочь с проблемами лицензирования, в зависимости от вашей ситуации.

В ответ на отредактированный вопрос:

Возможно, вы можете установить Ghostscript локальнов портативную папку в каталоге вашей программы:

Посмотрите на этот комментарий на форуме для вдохновения.Я знаю, что другие тоже преуспели.

...