1. Oscar Rios
  2. PowerBuilder
  3. Thursday, 30 November 2017 21:27 PM UTC

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
 
 
Marco Meoni Accepted Answer Pending Moderation
  1. Friday, 1 December 2017 06:25 AM UTC
  2. PowerBuilder
  3. # 1

Forgot the picture:

Native PDF

Comment
  1. Oscar Rios
  2. Friday, 1 December 2017 17:26 PM UTC
Hi Marco



I have not yet migrated to PB2017, my version is PB2012



 

  1. Helpful
There are no comments made yet.
Marco Meoni Accepted Answer Pending Moderation
  1. Friday, 1 December 2017 06:21 AM UTC
  2. PowerBuilder
  3. # 2

Hello Oscar,

PDF generation is a native feature in PB 2017 and it is as simple as running the line below:

dw_1.SaveAs(ls_filename, PDF!, True)

Before running the code, in the dataobject properties go to the "data export" tab, select "PDF" from the "Format to Configure" option and choose the NativePDF! method.

Cheers,

Marco

 

 

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.