Newsgroup: it.comp.appl.access
Titolo: PDFCreator

Salve,
ho un db access 2000 che deve funzionare sotto vari sistemi operativi
almeno Windows XP, Windows 98 e ME.
In questo ho dei report che ho provato a salvare in PDF attraverso
l'esempio riportato dal Sito Comune con PDFCreator.
Prima di tutto l'installazione di PDFCreator con il parametro /USEINI
produce la localizzazione diversa del file pdfcreator.ini in base al
sistema operativo
'retWinDir ritorna windows directory
'getVersion ritorna la versione di windows
'GetUserInfo ritorna il current user su localhost
WindowsVersione = getVersion
Select Case WindowsVersione
    Case "Windows XP"
        percorsoINI = "C:\Documents and Settings\" & GetUserInfo & "\Dati
applicazioni\PDFCreator\PDFCreator.ini"
    Case Else
        percorsoINI = retWinDir & "\Application
Data\PDFCreator\PDFCreator.ini"
End Select
Secondo voi è sempre così?
In secondo luogo la funzione CreaPDF permette di scegliere il percorso del
file via VBA (cosa che a me non riesce)
nel migliore dei casi (quando funziona è perchè imposto a mano la
stampante predefinita) mi fa scegliere il percorso.
Ho l'impressione che non legga il file ini.
Va da sè che ho controllato che il codice sposti correttamente la
stampante predefinita ma alla stampa del report anche se è impostata la
stampante PDF lui stampa con la predefinita precedente!... sigh!
Non esisterebbe un metodo più semplice per unificare non leggendo da ini
ma da registry?
Oppure qualcuno ha idea di che cosa sbaglio?
(mi sembra di aver capito che fosse possibile da un post precedente ma non
ho ottenuto risposta)
Public Function CreaPDF(nomefile As String, nomereport As String, tipodoc
As mgTipoDocumento, Optional email As String)
'On Error GoTo Esci
'recupero la stampante predefinita
Dim percorsoINI As String
Dim percorsoPDF As String
Dim tmpPrinter As String
Dim stamp As String
Dim x As Long
Dim tmppercorsopdf As String
Dim tmpuseautosave As String
Dim tmpnomefile As String
Dim tmpformatooutput As String
Dim WindowsVersione As String
Const formatooutput = "0" 'PDF File
tmpPrinter = GetDefaultPrinter
'imposto come stampante predefinita la stampante pdfcreator
stamp = "PDFCreator,winspool,Ne00:"
SetDefaultPrinter (stamp)
WindowsVersione = getVersion
Select Case WindowsVersione
    Case "Windows XP"
        percorsoINI = "C:\Documents and Settings\" & GetUserInfo & "\Dati
applicazioni\PDFCreator\PDFCreator.ini"
    Case Else
        percorsoINI = retWinDir & "\Application
Data\PDFCreator\PDFCreator.ini"
End Select
Select Case tipodoc
    Case mgCONVENUTO
        percorsoPDF = "\\Zeus\Database\Convenuti"
    Case mgSALENTE
        percorsoPDF = "\\Zeus\Database\Ordini"
    Case mgSCEGLI
        'impostare il BrowserDialog per immettere il percorso del documento
        percorsoPDF = "\\Zeus\Database\Documenti" ''''' settare il
percorso dove si vuole salvare il file
End Select
'recupero le impostazioni del file ini originarie
tmppercorsopdf = ReadINIfile("Options", "AutosaveDirectory", percorsoINI)
'legge dal file
tmpuseautosave = ReadINIfile("Options", "useAutosave", percorsoINI) 'legge
dal file
tmpnomefile = ReadINIfile("Options", "AutosaveFilename", percorsoINI)
'legge dal file
tmpformatooutput = ReadINIfile("Options", "AutosaveFormat", percorsoINI)
'legge dal file
'setto le impostazioni del file ini come servono per creare il documento
x = WritePrivateProfileString("Options", "AutosaveDirectory", percorsoPDF,
percorsoINI) 'scrive nel file
x = WritePrivateProfileString("Options", "AutosaveFilename", nomefile,
percorsoINI) 'scrive nel file
x = WritePrivateProfileString("Options", "useautosave", "1", percorsoINI)
'scrive nel file
x = WritePrivateProfileString("Options", "AutosaveFormat", formatooutput,
percorsoINI) 'scrive nel file
'stampo il report
DoCmd.OpenReport nomereport, acViewNormal ''''settareilnomedelreport
 Sleep (2000)
 'Ripristino i valori predefiniti
 x = WritePrivateProfileString("Options", "AutosaveDirectory",
tmppercorsopdf, percorsoINI) 'scrive nel file
 x = WritePrivateProfileString("Options", "AutosaveFilename", tmpnomefile,
percorsoINI) 'scrive nel file
 x = WritePrivateProfileString("Options", "useautosave", tmpuseautosave,
percorsoINI) 'scrive nel file
 x = WritePrivateProfileString("Options", "useautosave", tmpformatooutput,
percorsoINI) 'scrive nel file
'ripristino la stampante predefinita
SetDefaultPrinter (tmpPrinter)
Exit Function
'Esci:
'MsgBox Error
End Function
Grazie per l'aiuto
Luca
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 l'esempio riportato dal Sito Comune con PDFCreator.
vedi anche questo :
http://www.lebans.com/reporttopdf.htm
scaricabile quì :
http://www.lebans.com/DownloadFiles/A2000SnapshotToPDFver751.zip
magari risolvi...
;-)
-- 
Ciao
Pablitomf (Maurizio Facciuti)
Access : Ver.97 - 2K
----------------------------------
http://www.accessgroup.it/
http://www.sitocomune.com/
----------------------------------
Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.


 ;-)
Grazie č perfetto e nel file di installazione non devo includere tutto
pdfcreator ma solo le dll: da 11Mb sono sceso a 2!
Proprio una bella dritta
-- 
