* *
% remove brandings and homepage from copyright header. Pass 3 - manual.
* project homepage and name is described in README, amongst others
; this should make the diff between 3.4 and 3.2 easier to manage
85 lines
2.2 KiB
Plaintext
85 lines
2.2 KiB
Plaintext
/*
|
|
* Demonstration code for generating .pdf documents using PDFCreator
|
|
* COM interface.
|
|
*
|
|
* You should install PDFCreator to be able to run this test
|
|
*
|
|
* Download site:
|
|
* http://sourceforge.net/projects/pdfcreator/
|
|
*
|
|
* COM interface docs:
|
|
* http://www.pdfforge.org/content/com-interface
|
|
*
|
|
* Copyright 2010 Mindaugas Kavaliauskas <dbtopas / at / dbtopas.lt>
|
|
*
|
|
*/
|
|
|
|
#require "hbwin"
|
|
|
|
PROCEDURE Main()
|
|
|
|
LOCAL oPC, nTime, cDefaultPrinter, cFilename, oPrinter, nEvent := 0
|
|
|
|
IF Empty( oPC := win_oleCreateObject( "PDFCreator.clsPDFCreator" ) )
|
|
? "Unable to create PDFCreator COM object"
|
|
RETURN
|
|
ENDIF
|
|
|
|
cFilename := hb_ProgName()
|
|
|
|
/* Setup event notification */
|
|
oPC:__hSink := __axRegisterHandler( oPC:__hObj, {| X | nEvent := X } )
|
|
|
|
oPC:cStart( "/NoProcessingAtStartup" )
|
|
oPC:_cOption( "UseAutosave", 1 )
|
|
oPC:_cOption( "UseAutosaveDirectory", 1 )
|
|
oPC:_cOption( "AutosaveDirectory", Left( cFileName, RAt( hb_ps(), cFilename ) - 1 ) )
|
|
oPC:_cOption( "AutosaveFilename", "pdfcreat.pdf" )
|
|
oPC:_cOption( "AutosaveFormat", 0 )
|
|
|
|
cDefaultPrinter := oPC:cDefaultPrinter
|
|
oPC:cDefaultPrinter := "PDFCreator"
|
|
oPC:cClearCache()
|
|
|
|
/* You can do any printing here using WinAPI or
|
|
call a 3rd party application to do printing */
|
|
#if 1
|
|
oPrinter := win_Prn():New( "PDFCreator" )
|
|
oPrinter:Create()
|
|
oPrinter:startDoc( "Harbour print job via PDFCreator" )
|
|
oPrinter:NewLine()
|
|
oPrinter:NewLine()
|
|
oPrinter:TextOut( "Hello, PDFCreator! This is Harbour :)" )
|
|
oPrinter:EndDoc()
|
|
oPrinter:Destroy()
|
|
#else
|
|
oPrinter := NIL
|
|
? "Do some printing to PDFCreator printer and press any key..."
|
|
Inkey( 0 )
|
|
#endif
|
|
|
|
oPC:cPrinterStop := .F.
|
|
|
|
nTime := hb_MilliSeconds()
|
|
DO WHILE nEvent == 0 .AND. hb_MilliSeconds() - nTime < 10000
|
|
hb_idleSleep( 0.5 )
|
|
/* The following dummy line is required to allow COM server to send event [Mindaugas] */
|
|
oPC:cOption( "UseAutosave" )
|
|
ENDDO
|
|
|
|
IF nEvent == 0
|
|
? "Print timeout"
|
|
ELSEIF nEvent == 1
|
|
? "Printed successfully"
|
|
ELSEIF nEvent == 2
|
|
? "Error:", oPC:cError():Description
|
|
ELSE
|
|
? "Unknown event"
|
|
ENDIF
|
|
|
|
oPC:cDefaultPrinter := cDefaultPrinter
|
|
oPC:cClose()
|
|
oPC := NIL
|
|
|
|
RETURN
|