Stampare un file PDF con sistema a 64 bit

di il
6 risposte

Stampare un file PDF con sistema a 64 bit

Ciao a tutti.
Mi è stato facile stampare uno per volta file .DOC da menù.
Essi erano tutti nella stessa direttory.
Per motivi di sicurezza ho dovuto convertirli tutti in formato PDF e qui sono sorti i problemi.
Ho letto che potevo stamparli con Application.FollowHyperlink cartella & <nome file>
ma avrei dovuto dare il comando di stampa e di chiusura dell'applicativo poi, manualmente.

ho letto poi che si poteva utilizzare ShellExecute 0, "print", sFile, "", "", SW_HIDE
Questa funzione però (con le sue righe accessorie) mi ha dato l'errore che "il codice doveva essere adattato al mio sistema a 64 bit e inoltre dovevo aggiornare l'struzione DECLARE e contrassegnare con l'attributo PtrSafe.
Tutte cose per me sconosciute e inoltre, dato che questa mia procedura andrà caricata su computer con SO diversi (sia a 32 che a 64 bit), quali problemi avranno i miei coutilizzatori?
ovvero, la procedura saprà discriminare automaticamente il tipo di macchina su cui essa stessa sta girando?
potreste darmi una mano per stampare i miei file cliccando sul menù e ottenendo la stampa?

ciao antonio cuomo

6 Risposte

  • Re: Stampare un file PDF con sistema a 64 bit

    Hai valutato l'opzione della Compilazione Condizionale...?

    http://office.microsoft.com/en-us/access-help/HV080755465.aspx
    questo è il miglior articolo:
    http://www.utteraccess.com/wiki/index.php/Conditional_Compilation
  • Re: Stampare un file PDF con sistema a 64 bit

    Grazie Alex, tutto risplende.
    Ho modificato le dichiarazioni come segue e poi ho lanciato il comando di stampa come nella Sub più sotto.
    L'unico piccolo problema è come chiudere l'applicativo Acrobat che mi rimane sotto.
    Chiedo troppo se mi rivolgo ancora a te?.
    ciao antonio Cuomo

    Option Compare Database
    #If VBA7 Or Win64 Then
    ' Win 64 specific code
    Private Declare PtrSafe 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
    #Else
    ' Win 32 specific code
    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
    #End If

    Private Sub Comando10_Click()
    Dim sFile As String
    sFile = cartella & "Domanda Adesione ACTAM.PDF"
    MsgBox "Tutto pronto per stampare il documento ?", vbAbortRetryIgnore
    ShellExecute 0, "print", sFile, "", "", SW_HIDE
    End Sub
  • Re: Stampare un file PDF con sistema a 64 bit

    Prova a vedere se questo DEMO, che devi scaricare e rinominare come [Nome].ZIP riesce a darti un supporto.

    In sostanza il Processo rimane aperto in quanto la stampa non si esaurisce in modo SINCRONO, ma ASINCRONO, quindi devi gestire un PROCESSO da creare prima di inviare la stampa... e terminarlo una volta ultimata la stampa.

    Il Demo in questione consente di gestire la STAMPA BATCH di più file in modo SINCRONO.
    Per comodità ho usato ShellExecuteEX che per queste cose risulta più comodo, ma se vuoi puoi anche usare ShellExecute con le dovute variazioni sul Recupero del PID.
  • Re: Stampare un file PDF con sistema a 64 bit

    Mi dispiace deluderti Alex, ma di quelle cose che ho anche scaricato, non ci capisco niente.
    Sono purtroppo ad un livello molto più basso e mi mancano troppe basi per interpretare qualunque cosa.
    Sono comunque contento del mio risultato. Significa che dopo aver chiuso Access, chiuderò manualmente anche Acrobat.
    Grazie di tutto
    antonio.
  • Re: Stampare un file PDF con sistema a 64 bit

    Io non sono deluso... nel Demo che ti ho postato, tuttavia, hai la soluzione da CopiaIncollare... e funziona già..., devi adattarla ai 64Bit.
    In tutti i casi se non la riesci a comprendere è anche giusto che tu non la utilizzi... almeno io non lo farei.
  • Re: Stampare un file PDF con sistema a 64 bit

    .... e se escludendo l'automatismo, io dicessi a voce all'operatore : mi raccomado esci da Access solo dopo che la stampa del documento è terminata?
    Sul click del pulsante di uscita io potrei mettere il comando di chiusura di Acrobat.
    Quale comando dovrei aggiungere al pulsante?
    Questo mi farebbe già un gran comodo; può funzionare così?

    antonio C.
Devi accedere o registrarti per scrivere nel forum
6 risposte