Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - DataReports e PDF
Forum - Visual Basic 6 - DataReports e PDF

Avatar
emanulele75 (Normal User)
Rookie


Messaggi: 32
Iscritto: 06/05/2009

Segnala al moderatore
Postato alle 17:34
Venerdì, 13/01/2017
Ciao a tutti,
spero possiate essermi d'aiuto...
Gestisco un piccolo gestionale creato anni fa in vb6, ora si è palesato il problema di voler stampare in automatico e dentro determinate cartelle dei pdf.
inizialmente il programma/cliente apriva il suo bel report e stampava il risultato su di una stampante virtuale in pdf, adesso invece vorrebbe che tutto ciò fosse fatto in automatico e venga salvata in una determinata directory.
Non voglio stravolgere tutto il programma perchè funziona bene e il cliente non vuole cambiarlo, quindi chiedo se qualcuno ha avuto già a che fare con questa problematica.

quindi ricapitolando:
ho pdf creator istallato
i report sono creati con DataReports(che nativamente non esporta in pdf)
come posso procedere?
sto impazzendo
sono riuscito tramite vari sbattimenti di testa, con le librerie di pdf creator a settarmi la stampante virtuale automaticamente, ma quando vado a crearmi l'output .cOutputFilename mi risulta sempre vuoto.
spero di essere stato chiaro 8-|

vi posto parte del codice che tramite ricerche e altro ho creato

Codice sorgente - presumibilmente VB.NET

  1. Public Function PrintRepPdf(RepName As String, txtPath As String, txtFile As String)
  2. Dim PdfCreate As New PDFCreator.clsPDFCreator
  3. Dim DefaultPrinter As String
  4. Dim c As Long
  5. Dim OutputFilename As String
  6. Dim dblTimer As Double
  7.  
  8.  
  9. With PdfCreate
  10.     .cStart "/NoProcessingAtStartup"
  11.     .cOption("UseAutosave") = 1
  12.     .cOption("UseAutosaveDirectory") = 1
  13.     .cOption("AutosaveDirectory") = txtPath & "\"
  14.     .cOption("AutosaveFilename") = txtFile
  15.     .cOption("AutosaveFormat") = 0 ' 0 = PDF
  16.     DefaultPrinter = .cDefaultPrinter
  17.     .cDefaultPrinter = "PDFCreator"
  18.     '.cDefaultPrinter = DLookup("[stampante pdf]", "impostazioni", "[ID] = 1")
  19.     .cClearCache
  20.    
  21.     'Attesa 2 secondi per assicurarsi che l'oggetto pdf sia pronto
  22.     dblTimer = Timer
  23.     Do
  24.         If dblTimer + 2 < Timer Then Exit Do
  25.         DoEvents
  26.     Loop
  27.  
  28.     ' qui faccio la chiamata al mio DataReports
  29.         StampaFattura
  30.     .cPrinterStop = False
  31. End With
  32.  
  33.  
  34. c = 0
  35. Do While (PdfCreate.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
  36.     c = c + 1
  37.     Sleep 200
  38. Loop
  39.  
  40.  
  41. OutputFilename = PdfCreate.cOutputFilename
  42.  
  43.  
  44. With PdfCreate
  45.     .cDefaultPrinter = DefaultPrinter
  46.     Sleep 200
  47.     .cClose
  48. End With
  49.  
  50.  
  51. Sleep 2000 ' Wait until PDFCreator is removed from memory
  52.  
  53.  
  54. If OutputFilename = "" Then
  55.     MsgBox "Creating pdf file." & vbCrLf & vbCrLf & "An error is occured: Time is up!", vbExclamation + vbSystemModal
  56. End If
  57.  
  58.  
  59. End Function



------------------------------------
se nella vita non si rischiasse, Michelangelo avrebbe dipinto il pavimento della Cappella Sistina...
PM Quote