Saving a datawindow as PDF in PB 10.5

情到浓时终转凉″ 提交于 2019-11-27 03:30:57

问题


I have a grid datawindow with a picture in it's background (with dimensions of an A4 page) and I would like to export both data and the picture as a (single page) PDF file. I used several combinations of the following commands but at most I got a 0-sized 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)

User’s guide (on page 533) says:

… 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…

Does anyone have any idea what is the procedure?

EDIT THANK YOU ALL. Installing ghostscript proved to be enough. I only cannot understand why the procedure is successful on some fellows PCs (using Method = XSLFOP!) without using ghostscript :-/


回答1:


Ghostscript and Printer setup for PowerBuilder

Administrative privileges are required to install the printer. We are using this setup on XP.

These instructions use an HP printer driver instead of the one supplied by Sybase. If for some reason you don't have this driver, you can download it from HP. The HP driver has the following advantages:

  • Generated PDFs can be read by a Screen Reader (YMMV, but the Sybase driver output isn't readable at all.)
  • Driver is digitally signed for installation on systems that require signed drivers

Needed files

  • gs860w32.exe from http://pages.cs.wisc.edu/~ghost/ (you can try a later version if you like. 8.60 is working fine for us.)
  • Driver files in C:\Program Files\Sybase\Shared\PowerBuilder\drivers (path may vary depending on installation)

Ghostscript

Install gs860w32.exe

  • Install to C:\Program Files\gs
  • Check All Users
  • Check Install Ghostscript Fonts

Sybase DataWindow PS Printer

The printer name is case-sensitive and has to be exactly what is inside the quotes. There is no space in “DataWindow”. The easiest way to get it right is to copy from this document and paste it in.

  • Open Control Panel, Printers and Faxes
  • Choose Add printer (next)
  • Choose Local printer, uncheck Automatically detect and install my Plug and Play printer (next)
  • Choose Use the following port, select FILE: (next)
  • In the left-hand list, select 'HP' for the manufacturer
  • In the right-hand list, scroll down and select 'HP 8150 Series PS' (next)
  • Printer name "Sybase DataWindow PS"
  • Use as default printer select No (next)
  • Leave Do not share selected (next)
  • Print test page, select No (next)
  • (finish)



回答2:


We've got it working here. From our internal wiki:

  • Install ghostscript on your workstation (8.50 or 8.15 recommended)
  • Make sure that the ghostscript files in the Powerbuilder DLL directory
  • Ensure that there is a directory in the same place containing the default postscript drivers supplied by Sybase.
  • Powerbuilder uses the Adobe Postscript Driver (which can be downloaded free from Adobe.com). This must be named 'Adobe DataWindow PS'

We're using version 1.06 of the postscript driver which you can download here:

  • Adobe PostScript printer drivers for Windows



回答3:


Your code looks fine and is in line with my code that I just checked that does something similar. Verify that ghostscript is installed correctly.

For debugging purposes I would try using a much simpler datawindow without the bitmap background.




回答4:


As a minor addition to the others, I've never had to Modify() any of the Export attributes; I just SaveAs(). My understanding is that these attributes are for trying to go non-Ghostscript routes, but I don't recall hearing of anyone successfully doing this.

To simplify your test, you might want to see if you can right click on the Preview pane in the DataWindow painter to see if there is a "Save Rows As..." option. (I don't have 10.5 installed at the moment, so I can't see if it's available in that version.) It will save you running the app, and at least test the basic functionality before getting it to run in PowerScript.

Good luck,

Terry.




回答5:


The problem with ghostscript is that the drivers are not signed. This is a big issue in Windows 8, in that it will just stop the installation of the drivers. Windows 7 you were informed what was happening and allowed to install the drivers. Windows 8 just stops the install of the drivers, you can prove this by trying to create a printer with the ghostscript files.

Currently working through the HP PS drivers to try and identify a workaround for the Windows 8 operating system.




回答6:


Windows 8 does allow unsigned printer drivers but you have to reboot into "advanced mode" see the procedure at the following link and select the option Disable driver signature enforcement. http://windows.microsoft.com/en-gb/windows-8/windows-startup-settings-including-safe-mode

Windows will still warn and advice against installing an unsigned driver.



来源:https://stackoverflow.com/questions/2460930/saving-a-datawindow-as-pdf-in-pb-10-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!