Не удается получить PB 10.5 для сохранения в формате PDF в Windows 7 - PullRequest
2 голосов
/ 25 февраля 2011

У меня есть приложение, встроенное в 10.5, которое смогло успешно создавать PDF-файлы с помощью SaveAs в Windows XP.Когда я перешел на Windows 7 (32-разрядную версию), произошел сбой при возврате -1 и файла нулевой длины.

Я перепробовал все, что смог выяснить.Я пробовал многочисленные версии Ghostscript (8.54, 8.71, 9.01), удалил драйвер и заново его добавил.Я скопировал ghostscript EXE-файлы и DLL-файлы в каталог своего приложения.

Системные переменные включают в себя GS_DLL = C: \ Program Files \ gs \ gs9.01 \ bin \ gsdll32.dll и PATH с C: \ Program Files \ gs \ gs9.01 \ bin \;в нем (попытался перечислить его первым и последним в пути).

Когда я добавляю принтер «Sybase DataWindow PS», я указываю «C: \ Program Files \ gs \ gs9.01 \ lib \» какПапка.Я попытался поделиться и не поделиться принтером.

Я проверил все, что упомянуто в Сохранение окна данных в формате PDF в PB 10.5 , и это все равно не удалось.

Я нахожусь востроумие ... есть еще идеи?

-

- добавлена ​​дополнительная информация 2 марта 2011 года

Следует отметить, что это PB10.5, а неуверен, что это важно.У меня также настроена безопасность Windows, так что я получаю все надоедливые окна сообщений управления учетными записями пользователей.

Вот как я добавил принтер - я считаю, что все правильно

Добавить использование принтераСуществующий порт, ФАЙЛ: (Печать в файл) Для драйвера - выберите диск, выберите «c: \ Program Files \ gs \ gs9.01 \ lib \ ghostpdf.inf» - (замените текущий драйвер) Именуйте его: Sybase DataWindow PS(подтвердил орфографию)

Когда я печатаю тестовую страницу, она создает файл PDF размером 177 КБ, но когда я открываю его, я получаю сообщение об ошибке: «Adobe Reader не может открыть файл« test.pdf », потому что это либоне поддерживается тип файла или потому что файл был поврежден (например, он был отправлен как вложение электронной почты и не был правильно декодирован).

Та же ошибка, когда я пытаюсь распечатать что-то из блокнота на нем.

Когда я печатаю из приложения PB с помощью dw_1.saveAs ("c: \ test \ test.pdf", PDF!), Он возвращает -1 и создает PDF размером 0.

Я применил самое последнее обновление Adobe (похоже, получаю его ежедневно!).

Я подтвердил, что у меня есть раздел реестра HKLM \ SOFTWARE \ GPL Ghostscript \ 9.01 \ со значениями: GS_DLL (REG_SZ) Установите в C: \ Program Files \ gs \ gs9.01 \ bin \ gsdll32.dll
GS_LIB (REG_SZ) Устанавливается в C: \ Program Files \ gs \ gs9.01 \ lib; C: \ Program Files \ gs \ fonts

DLL существует в этом каталоге, и упомянутые два каталогаЧтобы GS_LIB существовал и имел содержимое.

Спасибо!

D

Ответы [ 4 ]

2 голосов
/ 01 марта 2011

Я чувствую твою боль.Я прошел через все это год назад.

Способ, которым он работает, заключается в том, что PowerBuilder отправляет свой вывод в драйвер принтера.Драйвер принтера выводит файл PostScript (.ps).Ghostscript берет этот файл и выводит файл PDF.Если вы получаете 0-байтовый PDF, возможно, что-то не так с вашей настройкой Ghostscript.

Что нужно проверить:

  • Установлен ли принтер для печати на порт с именем «FILE:»?
  • Есть ли записи реестра, которые указывают на Ghostscript?(Вот как это находит PB.)
  • Правильно ли написано «Sybase DataWindow PS»?
  • Использует ли Sybase DataWindow PS драйвер для принтера PostScript?

Записи реестра (я думаю) должны выглядеть примерно так: HKLM \ SOFTWARE \ GPL Ghostscript \8.63 GS_DLL должен указывать на gsdll32.dll (возможно, в вашей папке bin ghostscript) GS_LIB - это список путей (lib, font, resource)

1 голос
/ 21 сентября 2012

Мы используем Powerbuilder 11.5, и ghostscript отлично работает на Windows XP.
Когда мы переместили PB 11.5 в 64-разрядную версию Windows 7, попробовали все и, наконец, позвонили в службу технической поддержки Sybase. Это работает даже из PowerScript. Обратите внимание, что PB 11.5 не поддерживается для Windows 7, но технология была любезна. PB 12.5 поддерживается в Windows 7.

В 64-битной Windows 7 есть открытый CR 710061 (отчет об ошибке), что 64-битный Ghostscript не работает с PB 12 или 12.5. Эта ошибка была открыта с конца мая и еще не была исправлена ​​ни в одной версии. Так как PB 11.5 больше не поддерживается, он не будет исправлен в этой версии, когда это решено.

Я только что скачал последнюю версию Ghostscript, 9.06 64 бит, и, следуя описанному ниже обходному пути, теперь он работает для меня. Я проверил это с PB 12.5, но должно быть то же самое для PB 11.5.

CR 710061 - SavesAs PDF не работает с ghostscript 9 в 64-битной Windows 7

PowerBuilder 12.1 и 12.5 Windows 7 64-битная Windows 2008 64-битная GhostScript 9.x 64-разрядная

При попытке сохранить строки в формате PDF с помощью ghostscript 9 не удалось 64 битная винда. Может быть несколько проблем, включая проблемы безопасности.

В 64-битной версии GhostScript приложение называется gswin64c.exe. вместо gswin32c.exe. PowerBuilder ищет gswin32c.exe, а не gswin64c.exe

В качестве обходного пути на 64-битной Windows 7 я также смог заставить его работать с 64-битной версией драйвера gs905 через:

  1. Установите принтер «Sybase DataWindow PS» следующим образом: Добавить новый принтер как печать в файл и использовать опцию «иметь диск»; затем перейдите в папку ghostscript \ lib и выберите файл ghostpdf.inf. Принтер должен называться «Sybase DataWindow PS».
  2. В папке ghostscript \ bin я сделал копию gswin64c.exe и назову ее gswin32c.exe.

Для 32-битных операционных систем 32-битные версии ghostscript должны работать, как описано в руководствах. Ссылка ниже.

http://infocenter.sybase.com/help/topic/com.sybase.dc37774_1150/html/apptech/BABGDBHJ.htm

1 голос
/ 09 февраля 2012

Мой ответ может быть настолько простым, насколько это возможно. Я делал много попыток, чтобы заставить это работать со всеми последними версиями Ghostscript. Решение, которое наконец заработало, состояло в том, чтобы просто использовать GhostScript 8.70, а не любую другую версию, и использовать файл ghostpdf.inf из этой версии. По той или иной причине я не могу объяснить, почему, похоже, это работает ...

1 голос
/ 02 марта 2011

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

  • Выйдя из своей корпоративной учетной записи и в учетную запись администратора машины, чтобы убедиться, что у меня есть все необходимые права
  • Попытка сохранения в формате PDF сПриложение PB (вы никогда не догадаетесь , какое ... ну, хорошо, на самом деле это ), которое должно создать соответствующий драйвер принтера, но не
  • Прочтите много из руководства по технике применения
  • Скачали и установили драйверы принтера Adobe Postscript , чтобы убедиться, что правильные библиотеки DLL были доступны
  • Вернулись и переименовалиУниверсальный драйвер принтера PS для «Sybase DataWindow PS» (скопирован прямо из руководства «Техника применения»), потому что я не был достаточно умен, чтобы назвать его правильно во время установки драйвера
  • Снова успешно протестировано

Если бы все это не помогло, я, вероятно, был бы вынужден использовать Process Monitor , чтобы попытаться выяснить, где не было соединенийИнг сделал.(PB использует драйвер принтера для создания файла PostScript, .ps, который обрабатывает GhostScript.)

Вероятно, невозможно определить, имеет ли то, что я только что испытал, какое-либо влияние на вашу ситуацию, но, возможно, это поможет. Группы новостей Sybase полны людей, рассказывающих свои истории другим, у которых есть проблемы;эта интеграция, вероятно, самая проблематичная для PB.

Удачи,

Терри.


Ответ на приложение от 2 марта 2011 года

Хлоп.Итак, я не совсем уверен, что должен делать ghostpdf.inf (я предполагаю, что он хочет создать PDF-файл напрямую), но это не то, что рекомендуется.Вам нужен драйвер принтера, который будет генерировать файл PostScript, например, «HP Color LaserJet PS», рекомендованный в руководствах, указывающий на порт File: и переименованный в «Sybase DataWindow PS».Переименование принтера, созданного установкой драйвера принтера Adobe, также было бы достаточно.

...