Newsgroup: it.comp.appl.access
Titolo: Stampa di un file PDF

Scusate se ci riprovo, ma non vorrei che la mia richiesta di qualche giorno
fa fosse andata perduta.
Ho la necessità di stampare un report in PDF, Ho scaricato una procedura di
Alessandro Baraldi che ho trovato sul sitocomune che funziona perfettamente.
Ho il solo inconveniente che vorrei saltare l'interrogazione del sistema che
mi chiede il nome ed il percorso del file PDF da salvare (La stampa PDF è
simile ad una stampa su File). Sono riuscito ad impostare di defoult questi
parametri, quindi vorrei evitare l'interruzione della richiesta sopra
menzionata. Ho questa necessità perché la stampa PDF è all'interno di un
ciclo, quindi dovrei creare tanti PDF quanti sono i Record del mio
recordset, quindi l'interruzione mi rallenta troppo la procedura che non può
giungere alla fine in automatico.
Fatemi sapere se avete bisogno di dettagli.
Ciao e grazie.
--
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Politecnico di Milano
Dip. di Elettronica e Informazione
Carmelo Di Rosa
Area Elaborazioni Dati
Via Ponzio 34/5
20133 Milano
Tel +39 (0)2 2399.3406
Fax +39 (0)2 2399.3412
mailto:
carmelo...@polimi.it
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 ha scritto nel messaggio
news:c7o9di$krk$1...@newsserver.cilea.it...

Quando ti viene richesto un input prova ad inviarglielo con SendKeys (vedi
help)...
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio
news:jaOnc.232534$rM4.9...@news4.tin.it...

Grazie per il consiglio, ma ci avevo già pensato, ma non sempre funziona, è
per questo che stavo cercando la soluzione di saltare la finestra con una
stampa diretta.
Ciao e grazie.

 ha scritto nel messaggio
news:c7o9di$krk$1...@newsserver.cilea.it...

Ho letto con attenzione il tuo msg e sono andato sul sitocomune per cercare
l'articolo a cui fai riferimento, ma non ho trovato niente del genere!
Saresti così gentile da indicarmelo con maggiore precisione?
Grazie
Al

 ha scritto nel messaggio
news:c7r6f2$p2q$1...@lacerta.tiscalinet.it...

Scusami, hai ragione, ho associato il tuo nome ad una routine di Eugenio. Ti
riporto la routine di esempio. Comunque non mi ha risolto il problema, cioè
alla fine mi chiede sempre, tramite finestra di sistema il nome ed il
percorso dove salvare il file pdf generato dal report. Finestra che vorrei
bypassare, o inviare il comando dell'enter. Sto cercando di trovare una
soluzione attraverso le API, ma non so qual'è la dll che gestisce la
finestra di stampa PDF dove poter inviare tutti i dati parametrizzati, cioè
nome , path file e il famoso Enter di esecuzione. Tu sapresti suggerirmi un
aiuto, o dove poter trovare un HELP sulle API, possibilmente in Italiano?
Ciao e grazie.
P.S.
A me comunque questa routine non funziona bene, cioè ala fine modifico il
file TXT dove ho alcuni parametri, ma in fase di stampa non riesco a
leggerli, in più non mi funziona neanche il passaggio da stampante di
defoult a stampante PDF e ritorno, ma sicuramente sbaglio qualcosina.
Private Sub Stampa_Click()
 On Error GoTo Err_Stampa_Click
 Dim strTitolo As String, strFileName As String
 Dim I As Integer, j As Integer
 For I = 1 To 1
    Select Case I
        Case 1
             strTitolo = Me.NomeSocietà
         Case 2
             strTitolo = "Secondo"
         Case 3
             strTitolo = "Terzo"
         Case 4
             strTitolo = "Quarto"
         Case 5
             strTitolo = "Quinto"
     End Select
     Dim stLinkCriteria
    stLinkCriteria = "[IDOrdine]=" & Me![IDOrdine]
    DefaultPrinter = GetDefaultPrinter()
    strFileName = "C:\WINDOWS\DESKTOP\" & strTitolo & ".PDF"
     SetDefaultPrinter ("Acrobat PDFWriter")
     SetPdfFileName (strFileName)
     DoCmd.OpenReport "StampaPreventivoN", acViewNormal, stLinkCriteria
     'Pausa per dar modo al sistema di rilasciare il file PDFwritr.ini
     For j = 0 To 5000
     DoEvents
     Next j
 Next I
SetDefaultPrinter (DefaultPrinter)
Exit_Stampa_Click:
    Exit Sub
Err_Stampa_Click:
     MsgBox ERR.Description
     Resume Exit_Stampa_Click
 End Sub
-------------
Option Compare Database
Option Explicit
Declare Function GetProfileString& Lib "kernel32" Alias "GetProfileStringA"_
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As _
String, ByVal lpReturnedString As String, ByVal nSize As Long)
Declare Function WriteProfileString& Lib "kernel32" Alias _
"WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As _
String, ByVal lpszString As String)
Public DefaultPrinter As String
Public Sub SetPdfFileName(strFileName As String)
 Dim lngFile As Long
 On Error GoTo Err_SetPdfFileName
     lngFile = FreeFile
     Open "C:\Windows\System\PDFWritr.ini" For Output As #lngFile
     Print #lngFile, "[Acrobat PDFWriter]"
     Print #lngFile, "compatibility=1"
     Print #lngFile, "PDFFileName=""" & strFileName & """"
     Close #lngFile
Exit_SetPdfFileName:
     Exit Sub
Err_SetPdfFileName:
     MsgBox ERR.Description
     Resume Exit_SetPdfFileName
 End Sub
Public Function GetDefaultPrinter() As String
    'ritorna il nome della stampante predefinita
    Dim x As Integer
    Dim buffer As String
    buffer = Space$(255)
    x = GetProfileString("windows", "device", "?", buffer, 255)
    GetDefaultPrinter = Left$(buffer, x)
End Function
Public Sub SetDefaultPrinter(s As String)
On Error GoTo Esci
    'imposta la stampante passata come argomento a predefinita
    Dim x As Long
    If IsNull(s) Or s = "" Then Exit Sub
    x = WriteProfileString("windows", "device", vbNullString)
    DoEvents
    x = WriteProfileString("windows", "device", s)
    DoEvents
Esci:
End Sub
Public Sub ResetDefaultPrinter()
    'reimposta a predefinita la stampante memorizzata nella var globale
    SetDefaultPrinter (DefaultPrinter)
End Sub


Ciao,
prova ad usare PDFCreator... lo trovi in internet ed è freeware.
quando lo hai installato vai sul menu Printer -> Options e troverai la voce
Auto-Save, il nome dice tutto ^__^
ovviamente prima lo setti come stampante di default.
Ciao,
Massimo
-- 
web: 
www.piubelli.net
Vuoi il mio indirizzo? Togli _cut_ per rispondermi


scusate se mi intrometto, ma una cosa simile servirebbe anche ha me, il
fatto xò è che dovrò utilizzare una stampante di rete (pdfwriter) e non sul
computer locale. E' possibile fare questo?
ciao