
I'm trying to work out why I have to create a new file for each individual page when I print to a PDF file. Here's some sample code:
Code: Select all
PD_NOSELECTION = &4
PD_NOPAGENUMS = &8
PD_RETURNDC = &100
PD_DISABLEPRINTTOFILE = &80000
PD_HIDEPRINTTOFILE = &100000
PD_NONETWORKBUTTON = &200000
PrintFlags% = PD_NONETWORKBUTTON + PD_HIDEPRINTTOFILE + PD_DISABLEPRINTTOFILE \
\ + PD_RETURNDC + PD_NOPAGENUMS + PD_NOSELECTION
ok% = FN_print_dlg_A(ps{}, PrintFlags%)
VDU 2
PRINT "This is page 1"
VDU 1, 12
PRINT "This is page 2"
VDU 1, 12, 3
END
DEF FN_print_dlg_A(RETURN ps{}, flags%)
LOCAL pd{}, ok%, dm%
IF flags% = -1 THEN flags% = &400
DIM ps{paper{orient%, size%, length%, width%, npax%, npay%}, \
\ print{scale%, quality%}, pages{copies%, from%, to%}}
DIM pd{lStructSize%, hwndOwner%, hDevMode%, hDevNames%, \
\ hdc%, flags%, nFromPage{l&,h&}, nToPage{l&,h&}, \
\ nMinPage{l&,h&}, nMaxPage{l&,h&}, nCopies{l&,h&}, \
\ hInstance%, lCustData%, lpfnPrintHook%, lpfnSetupHook%, \
\ lpPrintTemplateName%, lpSetupTemplateName%, \
\ hPrintTemplate%, hSetupTemplate%}
pd.lStructSize% = DIM(pd{})
pd.hwndOwner% = @hwnd%
pd.nMinPage.l& = 1
pd.nMaxPage.h& = &FF: pd.nMaxPage.l& = &FF
pd.flags% = flags%
SYS "PrintDlg", pd{} TO ok%
IF ok% = 0 THEN = FALSE
IF flags% <> &400 THEN
SYS "DeleteDC", @prthdc%
@prthdc% = pd.hdc%
*MARGINS 10,10,10,10
ENDIF
SYS "GlobalLock", pd.hDevMode% TO dm%
ps.paper.orient% = dm%?44 : REM orientation
ps.paper.size% = dm%?46 : REM page size number (e.g. 9=A4)
ps.paper.length% = dm%!48 AND &FFFF : REM page length in 10ths mm
ps.paper.width% = dm%!48 >>> 16 : REM page width in 10ths mm
ps.print.scale% = dm%!52 AND &FFFF : REM scale
ps.print.quality% = dm%!56 >>> 16 : REM print quality (dpi)
ps.pages.copies% = dm%!52 >>> 16 : REM copies
SYS "GlobalUnlock", pd.hDevMode%
SYS "GetDeviceCaps", @prthdc%, &70 TO ps.paper.npax%
SYS "GetDeviceCaps", @prthdc%, &71 TO ps.paper.npay%
ps.pages.from% = pd.nFromPage.h& * &100 + pd.nFromPage.l&
ps.pages.to% = pd.nToPage.h& * &100 + pd.nToPage.l&
= TRUE
Why isn't this all in one file? How can I make it so?
Matt