To use the Image to PDF DLL with xHarbour / Five Win Harbour you can use the more direct method of calling the DLL APIs as shown below
in the code snippet (kindly provided by Vilian F. Arraes of Vfatec Sistemas):
GLOBAL hLib #INCLUDE "FiveWin.ch" FUNCTION Start( ) MakePdf({"test.emf"}, "test.pdf") RETURN NIL FUNCTION MakePDF( aFiles, pdfFilename ) LOCAL imageFilename := " ", ix, iErr := 0, errorText := " " hLib := LoadLib32( "Image2PDF StdCall.DLL" ) iErr := I2PDF_License( "YOUR LICENSE CODE HERE" ) // ensure that any EMF files are converted at highest quality iErr := I2PDF_MetaToNativePDF( ) iErr := I2PDF_UseEMFDeviceSize( ) iErr := I2PDF_SetDPI(0) // Set PDF DPI to the same as the image // Build the pages using the array of image files FOR ix := 1 TO LEN( aFiles ) imageFilename := aFiles[ix] IF (iErr := I2PDF_AddImage(imageFilename)) # 0 EXIT ENDIF NEXT // Create the PDF. iErr := I2PDF_MakePDF(Rtrim(pdfFilename), 0, errorText, 40 ) FreeLib32( hLib ) RETURN( pdfFilename ) // DLL API proptotypes DLL32 STATIC FUNCTION I2PDF_License( cLicCode AS LPSTR) AS LONG; PASCAL FROM "I2PDF_License" LIB hLib DLL32 STATIC FUNCTION I2PDF_MetaToNativePDF( ) AS LONG; PASCAL FROM "I2PDF_MetaToNativePDF" LIB hLib DLL32 STATIC FUNCTION I2PDF_UseEMFDeviceSize( ) AS LONG; PASCAL FROM "I2PDF_UseEMFDeviceSize" LIB hLib DLL32 STATIC FUNCTION I2PDF_AddImage( cImage AS LPSTR ) AS LONG; PASCAL FROM "I2PDF_AddImage" LIB hLib DLL32 STATIC FUNCTION I2PDF_SetDPI( nDpi AS LONG ) AS LONG; PASCAL FROM "I2PDF_SetDPI" LIB hLib DLL32 STATIC FUNCTION I2PDF_MakePDF( cOutFile AS LPSTR, nOptions AS LONG, cErrTxt AS LPSTR, nMaxESize AS LONG ) AS LONG; PASCAL FROM "I2PDF_MakePDF" LIB hLib