Hit, someone has develops an application to convert datawindows to PDF files. I'm using this code what using PDFCreator, but if the route in the registry of PDFCreator is different to my machine fail. Please someone has a solution.
Paramenters of my function
datastore a_datawindow,string a_ruta,string a_file,integer a_val
----------------------------------------------------------------------------------------------------
String ls_File, ls_Path, ls_Ext, ls_Archivo
String ls_keyprn = 'HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows'
String ls_prndef, ls_prnfile, ls_Cliente, ls_oldfile, ls_notetext , ls_KeyDocument = ""
if a_val = 1 then
do
ls_prnfile = a_ruta+a_file
RegistryGet(ls_keyprn, 'Device', RegString!, ls_prndef )
RegistryGet("HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", 'SaveFileName', RegString!, ls_oldfile )
//** Seteamos el Nombre del Archivo
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "SaveFileName", RegString!, ls_prnfile)
//** Seteamos Guardar Automaticamente
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "UseAutoSave", RegString!, "1")
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "AutosaveDirectory", RegString!, a_ruta)
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "AutosaveFilename", RegString!, a_file)
//** Seteamos como Impresora por Defecto a PDFCreator
PrintSetPrinter ("PDFCreator")
IF a_datawindow.Describe("DataWindow.RichText.HeaderFooter") <> "yes" THEN
a_datawindow.Print()
ELSE
//rte_Report.Print(1, "", FALSE, TRUE)
END IF
PrintSetPrinter (ls_prndef)
loop while FileExists(ls_prnfile) = false
else
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "UseAutoSave", RegString!, "0")
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "AutosaveDirectory", RegString!, '')
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "AutosaveFilename", RegString!, '')
RegistrySet( "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program", "SaveFileName", RegString!,'')
end if
IF FileExists(ls_prnfile) THEN
return 1
else
return 0
end if
--------------------------------------------------------------------------------------
I'm using Powerbuilder12
I have not yet migrated to PB2017, my version is PB2012