Не удается получить PB 10.5 для сохранения в формате PDF в Windows 7

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

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

Системные переменные включают 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


person Coppersmith    schedule 24.02.2011    source источник
comment
Вы используете программу установки GS? Вы используете подписанный драйвер принтера? Можно ли печатать в «Sybase DataWindow PS» из «Блокнота»? Вы обновили компьютер с помощью установки GS или вы установили чистую?   -  person Hugh Brackett    schedule 25.02.2011
comment
Хью, я использовал установщик GS из UWISC (pages.cs.wisc .edu/~ghost/doc/GPL/gpl901.htm).   -  person Coppersmith    schedule 02.03.2011
comment
(извините, слишком рано нажал Enter)... Я использовал установщик UWISC. Когда я печатаю из Блокнота, он создает PDF-файл нулевой длины. На этом компьютере была свежая установка Win7, и я установил GS свежую, но с тех пор я удалил GS и установил несколько других версий, пытаясь заставить его работать. Каждый раз я использовал установщики. Спасибо!   -  person Coppersmith    schedule 02.03.2011
comment
Когда вы распечатывали тестовую страницу во время установки принтера, он, вероятно, создал файл в формате ps, поэтому Adobe не смогла его прочитать — Ghostscript не запустился и не преобразовал его в pdf.   -  person Slapout    schedule 03.03.2011
comment
Итак, что мне нужно сделать, чтобы убедиться, что GS конвертирует его (или, по крайней мере, проверить, пытается ли он это сделать)?   -  person Coppersmith    schedule 04.03.2011
comment
Есть командная строка, которую вы можете использовать, чтобы передать ghostscript файл ps и вывести его в формате pdf, но я не уверен, что это такое. Sybase тестировала только определенные версии gs с pb, вы можете убедиться, что используете одну из них.   -  person Slapout    schedule 05.03.2011


Ответы (4)


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

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

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

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

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

person Slapout    schedule 01.03.2011
comment
Принтер настроен как ФАЙЛ (я опубликую более длинный комментарий с подробностями - это поле для комментариев довольно ограничено). Я подтвердил правильность написания имени принтера. Я думаю, что он использует драйвер PostScript ... может быть, это неправильно. Я проверил записи HKLM, и они существуют и кажутся действительными ... хотя нет ресурсов - только C:\Program Files\gs\gs9.01\lib;C:\Program Files\gs\fonts. Спасибо! - person Coppersmith; 02.03.2011

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

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

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

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

Удачи,

Терри.


Ответ на Приложение от 2 марта 2011 г.

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

person Terry    schedule 01.03.2011
comment
Терри - какой мне нужен? Программа установки драйвера Adobe Universal PostScript для Windows, версия 1.0.6 — английский язык, 7,4 МБ, 23 мая 2002 г. ? Кажется старым. - person Coppersmith; 02.03.2011
comment
Да, это так, но опять же, PostScript не обновлялся более 20 лет. Это тот, который я использовал. - person Terry; 03.03.2011
comment
Я использовал один из драйверов принтера HP LaserJet PS, поставляемых с Windows. - person Slapout; 03.03.2011
comment
Я удалил принтер и снова добавил его с помощью HP LaserJet PS, но безуспешно. - person Coppersmith; 04.03.2011
comment
Возможно, пришло время протестировать на чистой машине; если что-то из того, что вы предприняли, оказалось контрпродуктивным, все хорошие советы мира не решат ее. - person Terry; 04.03.2011
comment
@Terry: Да, я сделаю это дальше. Ругательство на него тоже не дало результатов. - person Coppersmith; 08.03.2011

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

person Bart Pots    schedule 09.02.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-разрядной Windows произошел сбой. Может быть несколько проблем, включая проблемы с безопасностью.

В 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

person Frustrated    schedule 20.09.2012