Newsgroup: it.comp.appl.access
Titolo: esportare report in pdf

Ciao, 
sul mio db fatto con Access 2003 vorrei avere la possibilità di salvare un report in formato pdf via vba in modo da poterlo successivamente inviare per email. 
Ho provato a usare la soluzione del sitocomune 4021 "esportare un report in un file pdf" ma pur avendo installato il pdfcreator non trovo il file pdfcreator.ini di cui si parla nell'argomento. 
Potreste darmi una  mano per favore a capire se questo modulo è utilizzabile o mi suggerite un'altra soluzione analoga? 
Grazie infinite. 
 
Remigio


una tecnica che anni fa utilizzavo era quella di salvarmi da codice la stampante predefinita
modificare la stampante predefinita e impostare la stampante pdf come predefinita
stampa
rimetti tutto come prima

Il giorno mercoledì 28 gennaio 2015 12:51:24 UTC+1, Remigio ha scritto:

ciao aggiungo
 
con PDFCreator (
http://sourceforge.net/projects/pdfcreator/
) e durante
l'installazione è possibile scaricare COM samples, viene quindi creata anche la cartella COM all'interno della quale
diversi esempi per linguaggi differenti ... tra questi MS Office questo l'indirizzo sul mio disco e' C:\Programmi\PDFCreator\COM

Ciao Pfm,
se ho ben capito devo copiare il codice contenuto nel file modPDFCreatorAccess dentro un modulo di access e settare le variabili (nome report, destinazione, ecc) all'interno del codice, giusto?
Poi invoco questo modulo via vba da un controllo, no?
Ti ringrazio molto.
Un saluto
 
Remigio

It happens that Remigio formulated :

Questo in Access 2013 crea un file PDF,
in Excel 2003 probabilmente no; prova.
========================================
Private Sub CreaPDF_Click()
On Error GoTo Err_Handler
DoCmd.OutputTo _
    Objecttype:=acOutputReport, _
    ObjectName:="EReport1", _
    OutputFormat:=acFormatPDF, _
    OutputFile:="D:\Transizione\Fattura_" & Year(Date) & ".PDF", _
    AutoStart:=True, _
    OutputQuality:=acExportQualityPrint
 
Exit_Sub:
    Exit Sub
 
Err_Handler:
    MsgBox Err.Number & vbCrLf & Err.Description
    Resume Exit_Sub
 
End Sub
===================================
 
Bruno

Il giorno mercoledì 28 gennaio 2015 12:51:24 UTC+1, Remigio ha scritto:

Googolando un po' ho trovato questo articolo , per access 2003 dovrebbe funzionare.
 
http://www.granite.ab.ca/access/pdffiles.htm
 
 
Saluti,
Alessandro


Grazie Bruno,
ma io ho access 2003
Un saluto


Prova a cercare  'pdf lebans'
E' una libreria molto usata che ti permette di ottenere il pdf da un 
report qualsiasi

...
Ciao Roberto,
la soluzione di Leban's l'ho già provata, ma su win7 non funziona bene, almeno nel mio caso.
Penso che utilizzando il codice di esempio di pdfcreator contenuto nel file modPDFCreatorAccess della cartella COM di pdfcreator dovrebbe andare meglio, solo che non capisco come usarlo.
In VBA ho importato le librerie di pdfcreator, ma il codice dove lo copio? In un modulo o sull'evento del controllo? E per lanciare poi il modulo quale funzione chiamo?
Ho provato a copiare il codice (di seguito) in un modulo, poi nell'evento "Su click" di un pulsante ho messo "call PrintRep", ma viene fuori solo un errore di compilazione.
Potreste aiutarmi a capire come usarlo per favore?
Grazie 
_______________________________
 
Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit
 
' Add a reference to PDFCreator
 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Private Const maxTime = 10    ' in seconds
Private Const sleepTime = 250 ' in milliseconds
 
Public Function Start()
 PrintRep "Report1"
End Function
 
Public Sub PrintRep(RepName As String)
 Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As String, c As Long, _
  OutputFilename As String
 Set PDFCreator1 = New clsPDFCreator
 With PDFCreator1
  .cStart "/NoProcessingAtStartup"
  .cOption("UseAutosave") = 1
  .cOption("UseAutosaveDirectory") = 1
  .cOption("AutosaveDirectory") = "C:\"
  .cOption("AutosaveFilename") = RepName
  .cOption("AutosaveFormat") = 0                            ' 0 = PDF
  DefaultPrinter = .cDefaultPrinter
  .cDefaultPrinter = "PDFCreator"
  .cClearCache
  DoCmd.OpenReport RepName, acViewNormal
  .cPrinterStop = False
 End With
 
 c = 0
 
 Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
  c = c + 1
  Sleep 200
 Loop
 
 OutputFilename = PDFCreator1.cOutputFilename
 
 With PDFCreator1
  .cDefaultPrinter = DefaultPrinter
  Sleep 200
  .cClose
 End With
 
 Sleep 2000 ' Wait until PDFCreator is removed from memory
 
 If OutputFilename = "" Then
  MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
   "An error is occured: Time is up!", vbExclamation + vbSystemModal
 End If
 
End Sub
 
______________________________
 
Remigio


+1
inossidabili quelle due dll
 

 inossidabili quelle due dll
 
Ciao,
io non sono molto esperto in vba, per questo vi chiedo aiuto, forse le mie domande sono banali, ma vi assicuro che ho speso diverso tempo a fare delle prove.
Con la soluzione di Leban's viene generato un pdf che viene aperto e visualizzato, ma non capisco se si può salvare come file in modo automatico e se si può personalizzare la path di destinazione.
Ho cercato dappertutto.
Mi dareste una mano per favore?
Grazie 
 
Remigio


 
certo è uno dei parametri della funzione
Public Function ConvertReportToPDF( _
Optional RptName As String = "", _
Optional SnapshotName As String = "", _
Optional OutputPDFname As String = "", _
Optional ShowSaveFileDialog As Boolean = False, _
Optional StartPDFViewer As Boolean = True, _
Optional CompressionLevel As Long = 0, _
Optional PasswordOwner As String = "", _
Optional PasswordOpen As String = "", _
Optional PasswordRestrictions As Long = 0, _
Optional PDFNoFontEmbedding As Long = 0 _
) As Boolean
 
 
 
nel dettaglio  Optional OutputPDFname As String = ""
passa alla funzione la posizione dove vuoi che il file venga salvato
 
 
ciao!
 
 


Prova con:
---------------------------------------
blRet = ConvertReportToPDF(nome_report, vbNullString, nome_file, False, 
False, 0, "", "", 0, 0)
---------------------------------------
dove 'ConvertReportToPDF' e' ovviamente la funzione fornita da Lebans 
nei suoi esempi