Hello,
PB 2017 R3
Need to print Cheque from Powerbuilder, with customer paper size: Width = 7.99 inch, Length / Height : 3.70 inch
Tried:
Created a datawindow, with required fields including a picture field. Picture field is to display the image of the cheque and resized the dw, picture field to the size of the cheque leaf. Moved and resized the data fields at appropriate places. Everything displayed perfectly, even in preview mode. All margins set to zero, both in datawindow and in script.
Now trying to print it. Two methods: 1. Direct print 2. Print to PDF (Native)
1. Direct print [ dw_entry.Print() ]
It's not exactly printing at the correct place. Need few adjustments [ movement of fields ] even though the preview is showing everything at right place.
2. Print to PDF [ Native ]
NO issues with printing. Got the output. When opened in Acrobat Reader, the paper size shown is A4, and not the custom paper size which we declared in dw. Code to save the pdf
dw_entry.Modify("DataWindow.Export.PDF.Method = NativePDF!")
dw_entry.Modify("DataWindow.Export.PDF.NativePDF.UsePrintSpec = Yes")
dw_entry.modify("p_background.visible = False") /* Don't want to export the image */
li_ret = dw_entry.SaveAs(ls_filename, PDF!, true)
dw_entry.modify("p_background.visible = True")
I expected that the page size will be preserved in pdf file also which will make this printing lot easier. With no way to alter the paper size acrobat reader, printing is not happening at correct place.
2a. Print to PDF [ Native ] with custom settings
dw_entry.Modify("DataWindow.Export.PDF.Method = NativePDF!")
dw_entry.Modify("DataWindow.Export.PDF.NativePDF.UsePrintSpec = No")
dw_entry.Modify("DataWindow.Export.Print.Paper.Size = '1'") /* Not much options here */
// Set Orientation
If ddlb_orientation.Text = 'Potrait' Then
ls_str = "DataWindow.Export.PDF.NativePDF.CustomOrientation = '2'"
ls_ret = dw_entry.Modify(ls_str)
Elseif ddlb_orientation.Text = 'Landscape' Then
ls_str = "DataWindow.Export.PDF.NativePDF.CustomOrientation = '1'"
ls_ret = dw_entry.Modify(ls_str)
End If
dw_entry.modify("p_background.visible = False")
li_ret = dw_entry.SaveAs(ls_filename, PDF!, true)
dw_entry.modify("p_background.visible = True")
What else options shall we try to get the cheque printing correct ?
We plan to print a set of cheques at one stretch, by giving from no and to no, say 1 to 50 cheques, and save it in a pdf file for later viewing / printing.
Any solution to this ?
Happiness Always
BKR Sivaprakash