Где взять потокобезопасную компиляцию Ghostscript?
Новая версия Ghostscript (9.07) имеет поддержку потоков (может быть поточно-ориентированной), но в ней говорится, что код должен быть скомпилирован со специальным флагом, чтобы включить это.
Как мне это сделать? Или где взять уже собранную поточно-ориентированную версию?
Я попытался загрузить исходный код, открытый в VS, но его не удалось собрать. Так что, возможно, кто-то уже сделал это и может поделиться DLL.
3 ответа
Вы заинтересованы в многопоточной версии Ghostscript или в нескольких потоках рендеринга?
Несколько потоков рендеринга используются только в том случае, если вы создаете вывод с высоким разрешением, так как код должен сначала интерпретировать программу PostScript (или файл PDF) и создать список отображения для работы потоков рендеринга. Если вы не визуализируете с достаточно высоким разрешением, это будет на самом деле медленнее, чем при использовании режима страницы (вся страница отображается в памяти)
Вы можете создать несколько потоков рендеринга в предварительно собранной версии Ghostscript, используя ключ -dNumRenderingThreads.
Если вам нужна поточно-ориентированная версия Ghostscript, вам нужно будет самостоятельно скомпилировать Ghostscript. Какую версию Visual Studio вы используете? Я использую Visual Studio 2005 и 2008, и поставленное решение работает для меня (после соответствующей конвертации).
Я тоже искал решение этой проблемы и в конце концов решил ее в Linux. Может быть, это поможет кому-то, кто приходит сюда в поисках решения. Откройте терминал в каталоге источников и введите эту команду:
./configure --enable-threadsafe
После этого вы можете сделать make
или же make so
для либ. Вот ссылка на документацию по созданию ghostscript из источников: https://www.ghostscript.com/doc/9.23/Make.htm.
Взгляните на управляемую Ghostscript.NET оболочку Ghostscript, которая позволяет вам запускать несколько экземпляров библиотеки Ghostscript одновременно, если у вас есть необходимость обрабатывать несколько файлов PDF одновременно.