Сохранение окна данных в формате PDF в PB 10.5

У меня есть окно данных сетки с изображением на его фоне (с размерами страницы A4), и я хотел бы экспортировать как данные, так и изображение в виде (одностраничного) файла PDF. Я использовал несколько комбинаций следующих команд, но в лучшем случае я получил PDF-файл нулевого размера.

//dw_1.Modify("Datawindow.Export.PDF.Method = Distill! ")
//dw_1.Modify("DataWindow.Export.PDF.Method = XSLFOP! ")

dw_1.Object.DataWindow.Export.PDF.Method = Distill!
//dw_1.Object.DataWindow.Printer = "\\prntsrvr\pr-6"
dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript="No"
dw_1.SaveAs("c:\dw_one.pdf", PDF!, false)

В руководстве пользователя (на стр. 533) сказано:

… the data is printed to a PostScript file and automatically distilled to PDF using GNU Ghostscript…

Installing Ghostscript

For licensing reasons, Ghostscript is not installed with PowerBuilder. You (and your users) must download and install it before you can use this technique…

Кто-нибудь знает, что это за процедура?

ИЗМЕНИТЬ СПАСИБО ВСЕМ. Достаточно было установить ghostscript. Я только не могу понять, почему процедура успешно выполняется на некоторых компьютерах товарищей (используя метод = XSLFOP!) без использования ghostscript :-/


person George Dontas    schedule 17.03.2010    source источник


Ответы (6)


Настройка Ghostscript и принтера для PowerBuilder

Для установки принтера требуются права администратора. Мы используем эту настройку на XP.

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

  • Сгенерированные PDF-файлы могут быть прочитаны программой чтения с экрана (YMMV, но выходные данные драйвера Sybase вообще не читаются).
  • Драйвер имеет цифровую подпись для установки в системах, требующих подписанных драйверов.

Необходимые файлы

  • gs860w32.exe из http://pages.cs.wisc.edu/~ghost/ (вы можете попробовать более позднюю версию, если хотите. 8.60 у нас работает нормально.)
  • Файлы драйверов в C:\Program Files\Sybase\Shared\PowerBuilder\drivers (путь может отличаться в зависимости от установки)

Призрачный скрипт

Установите gs860w32.exe

  • Установить в C:\Program Files\gs
  • Проверить всех пользователей
  • Установите флажок Установить шрифты Ghostscript

Принтер Sybase DataWindow PS

Имя принтера чувствительно к регистру и должно быть точно таким же, как в кавычках. В «DataWindow» нет места. Самый простой способ сделать это правильно — скопировать из этого документа и вставить его.

  • Откройте панель управления, принтеры и факсы.
  • Выберите Добавить принтер (далее)
  • Выберите «Локальный принтер», снимите флажок «Автоматически определять и устанавливать принтер Plug and Play» (далее)
  • Выберите «Использовать следующий порт», выберите «ФАЙЛ»: (далее)
  • В левом списке выберите «HP» для производителя
  • В правом списке прокрутите вниз и выберите «HP 8150 Series PS» (далее)
  • Имя принтера "Sybase DataWindow PS"
  • Использовать как принтер по умолчанию, выберите Нет (далее)
  • Оставить не делиться выбранным (далее)
  • Распечатайте тестовую страницу, выберите Нет (далее)
  • (финиш)
person Hugh Brackett    schedule 17.03.2010
comment
Это отличная инструкция. Детали здесь в значительной степени говорят о том, что многие люди считают, что создание PDF-файлов из PB — нетривиальная задача. Лично мне больше повезло со сторонними инструментами использования корпоративных приложений для конвертации. Хотя воняет. - person Rich Bianco; 24.12.2014

У нас тут работает. Из нашей внутренней вики:

  • Установите ghostscript на свою рабочую станцию ​​(рекомендуется 8.50 или 8.15)
  • Убедитесь, что файлы ghostscript в каталоге Powerbuilder DLL
  • Убедитесь, что в том же месте есть каталог, содержащий драйверы PostScript по умолчанию, поставляемые Sybase.
  • Powerbuilder использует драйвер Adobe Postscript (который можно бесплатно загрузить с сайта Adobe.com). Это должно называться «Adobe DataWindow PS».

Мы используем версию 1.06 драйвера PostScript, который вы можете скачать здесь:

person Colin Pickard    schedule 17.03.2010

Ваш код выглядит нормально и соответствует моему коду, который я только что проверил, который делает что-то подобное. Убедитесь, что ghostscript установлен правильно.

В целях отладки я бы попробовал использовать гораздо более простое окно данных без растрового фона.

person Community    schedule 17.03.2010

В качестве небольшого дополнения к остальным, мне никогда не приходилось использовать Modify() для каких-либо атрибутов экспорта; Я просто Сохранить как(). Насколько я понимаю, эти атрибуты предназначены для попыток пройти маршруты, отличные от Ghostscript, но я не помню, чтобы кто-нибудь успешно это делал.

Чтобы упростить тест, вы можете посмотреть, можете ли вы щелкнуть правой кнопкой мыши на панели предварительного просмотра в рисовальщике DataWindow, чтобы увидеть, есть ли опция «Сохранить строки как ...». (В настоящее время у меня не установлена ​​версия 10.5, поэтому я не могу видеть, доступна ли она в этой версии.) Это избавит вас от запуска приложения и, по крайней мере, протестирует основные функции, прежде чем запускать его в PowerScript.

Удачи,

Терри.

person Terry    schedule 17.03.2010
comment
Здесь также нет Modify(). Мы просто сохраняем As(). - person Hugh Brackett; 18.03.2010
comment
@Terry Терри Я использую PB 12.5 classic на Win7 x64 с GS x64 и x32. Оба терпят неудачу. Я пытаюсь из окна предварительного просмотра, и он выдает ошибку «Сохранить как не удалось». Любая идея, что это может быть? Я получаю файл размером 0 байт. - person somnath; 06.04.2013
comment
Похоже, PB не может найти GhostScript. Вы вручную перемещали его после установки? Установленное местоположение хранится в реестре, например. HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\9.07, который является по крайней мере одним из мест, где PB ищет его. Если это не даст очевидных результатов, я бы (SysInternals) проконтролировал процесс. - person Terry; 08.04.2013

Проблема с ghostscript в том, что драйвера не подписаны. Это большая проблема в Windows 8, поскольку она просто остановит установку драйверов. В Windows 7 вас проинформировали о происходящем и разрешили установить драйверы. Windows 8 просто останавливает установку драйверов, вы можете убедиться в этом, попробовав создать принтер с помощью файлов ghostscript.

В настоящее время работает с драйверами HP PS, чтобы попытаться найти обходной путь для операционной системы Windows 8.

person Gary    schedule 08.08.2013

Windows 8 разрешает неподписанные драйверы принтеров, но вам необходимо перезагрузиться в «расширенном режиме», см. процедуру по следующей ссылке и выберите параметр «Отключить обязательное применение подписи драйверов». http://windows.microsoft.com/en-gb/windows-8/windows-startup-settings-включая-безопасный-режим

Windows по-прежнему будет предупреждать и советовать не устанавливать неподписанный драйвер.

person compu-go    schedule 30.07.2014