Newsgroup: it.comp.appl.access
Titolo: Inviare file pdf alla stampante

Buongiorno,
ho una procedura che mi crea n file in pdf; alcuni li invio a mezzo mail mentre altri ho la necessità di stamparli ma non so il comando da utilizzare.
Vi ringrazio tutti


Spiega come crei quel FILE PDF, perchè se è da Report la risposta è banale... se interagisci con Word/Excel o altri Server di Automaizone, la risposta è altrettanto banale... li mandi in Stampa con il metodo di stampa del Documento...!
In tutti gli altri casi segreti... serve capire cosa fai.
 
Altrimenti chiami una API(ShellExecute passando il parametro "Print") che EMULA il RightClick sul File e lo manda in stampa...
 
 
@Alex

Il giorno martedì 27 febbraio 2018 08:10:02 UTC+1, Fabio Fucci ha scritto:

Il codice che utilizzo è il seguente:
 
    Dim sPDFName As String
    Dim sPDFPath As String
    Dim sReportName As String
    Dim sPrinterName As String
    Dim lPrinters As Long
    Dim lPrinterCurrent As Long
    Dim lPrinterPDF As Long
    Dim prtDefault As Printer
    Dim NomeFileAlleg As String
    Dim RSElenco As ADODB.Recordset
    Dim Quota As String
    Dim NomeFile As String
 
 
    Set RSElenco = New ADODB.Recordset
    RSElenco.ActiveConnection = CurrentProject.Connection
    RSElenco.CursorType = adOpenKeyset
    RSElenco.LockType = adLockOptimistic
    RSElenco.Open "Estratto_conto_riepilogo"
    MsgBox RSElenco.RecordCount
Do Until RSElenco.EOF
    Naziende = Naziende + 1
    Codice = RSAllevatori.Fields(0).Value
    Mail = RSAllevatori.Fields(1).Value
    Quota = RSAllevatori.Fields(2).Value
 
    sReportName = "Estratto_conto"
    sPDFName = "Estratto conto.pdf"
    sPDFPath = "c:\Estratto_Conto\"
    NomeFile = sPDFPath & sPDFName
    DoCmd.OutputTo acOutputReport, sReportName, acFormatPDF, NomeFile
' dovrei quindi stampare il file pdf che ho creato nella variabile Nomefile e il file presente su hard disk che è definito nella variabile Quota
    RSAllevatori.MoveNext
Loop
 
Quindi per ogni record presente nella query "estratto_conto_riepilogo" devo stampare 2 file (il percorso ed il nome dei file sono presenti nelle 2 variabili Nomefile e Quote
Grazie ancora.
 


Supponiamo di voler usare il metodo simile a quando da file manager 
Windows si 'dragga' il file pdf (o xls o doc o altro file conosciuto da 
Windows) e lo si 'droppa' sopra la schermata che si apre andando su 
Stampanti/NomeStampante  e doppio click
Credo sia il sistema piu' astruso che esista per stampare
Ma fa niente, e' per imparare qualcosa di nuovo
E' una semplice copia di file come da sistema operativo, oppure e' 
un'operazione diversa?
 

      NomeFile = sPDFPath & sPDFName
 
 
 
ciao
BFS


Scusami ma che significa che il codice non l'ho scritto io.....
E poi mi serve sapere come stampare un file PDF presente su hard disk e non stampare un report.
Grazie ancora


il tuo codice prende un report, lo converte in pdf e lo salva sul disco
se devi anche stamparlo che senso ha stampare il pdf e non il report da 
cui deriva?
Forse ci sono terze applicazioni che modificano in qualche modo il pdf 
prima che tu lo stampi da renderlo differente dal relativo report?
 
forse non  hai esposto bene la tua esigenza

Il 27/02/2018 10:59, Fabio Fucci ha scritto:

se hai acrobat nel pc e vuoi per forza stampare il pdf
 
Sub one()
print_pdf ("percorsofilechevuoistampare")
 
End Sub
 
Sub print_pdf(XsomeFile As String)
     DoEvents
     Shell "C:\Program Files (x86)\Adobe\Acrobat Reader 
DC\Reader\AcroRd32.exe /p /h " & XsomeFile, vbHide
End Sub
 
 
adatta ovviamente il percorso di acrord32.exe ed eventuali opzioni di 
riga di comando
 
ciao
BFS
 
 
 


L'ha esposta al mellio possibbole
Vuole mandare in stampa dei pdf
E mi sembra gia' esauriente come descrizione
Per quanto mi riguarda proverei con
-----------------------------------------
Private Declare Function ShellExecute Lib "shell32.dll" Alias 
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String,
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory
As String, ByVal nShowCmd As Long) As Long
 
Dim lRet As Long
lRet = ShellExecute(0&, "Print", nome_completo_file, vbNullString, 
vbNullString, 1)
-----------------------------------------
 
Ci facci sapere


Perfetto!!!!!!!
Va benissimo.
Grazie ancora.

 comando
 
Troppo semplice!
La semplicità si vende solo ai poveri di spirito.
 
Bruno

 DoCmd.OutputTo acOutputReport, sReportName, acFormatPDF, NomeFile
 
Scusate se mi intrometto 
 
servirebbe anche a me generare pdf da codice, purtroppo uso ancora office 97 (perché è l'unico legale, perché l'azienda usa ancora XP ecc. ecc.) e la sintassi "acFormatPDF" non funziona ("variabile non definita"). 
 
Quindi adesso risolvo con un accrocco stampando su una stampante virtuale (PDFCreator).
 
Che voi sappiate, si potrebbe in qualche modo aggiungere qualche libreria a Access97, in modo che venga aggiunta la variabile acFormatPDF? 
 


Ci sono le "mitiche" dll di lebans che funzionano alla meraviglia
vedi qui
 
http://www.lebans.com/reporttopdf.htm
 
 
su Access 97 mai testate
 
ciao
BFS

 a Access97, in modo che venga aggiunta la variabile acFormatPDF?
 
Mi rispondo da solo, pare che acFormatPDF sia stato introdotto da Access 2007 in poi.
 
da Access 2007 come add-in 
da Access 2010 come built-in