Compilare i campi di una maschera da Pdf

di il
11 risposte

Compilare i campi di una maschera da Pdf

Salve a tutti!

Ho una procedura in mente la quale vorrei sapere quantomeno se sia fattibile o meno.

Vorrei creare un file PDF editabile il quale contiene dei campi che dovranno essere compilati dal cliente.
Una volta che il cliente ha compilato questo Pdf me lo rispedisce per email ed io creo un nuovo record in una maschera dove compilo i campi di questo nuovo record prendendo i dati dal file Pdf che il cliente mi ha spedito.

In parole povere tutto questo per evitare di scrivere manualmente tutti i campi.

Sarebbe possibile creare una procedura del genere con Access?

Grazie a tutti per l’aiuto!!

11 Risposte

  • Re: Compilare i campi di una maschera da Pdf

    Che versione di Access hai? Nella versione 2007 e 2010 c'erano alcune forme di automatismo per la raccolta di informazioni che sfruttavano l'accoppiata Access/Outlook. Ora non ci sono più. Leggi questa pagina https://www.iprogrammatori.it/forum-programmazione/access/access-2016-raccolta-dati-con-messaggi-outlook-t32603.html

    kris9951 ha scritto:


    ...
    Vorrei creare un file PDF editabile il quale contiene dei campi che dovranno essere compilati dal cliente.
    Una volta che il cliente ha compilato questo Pdf me lo rispedisce per email ed io creo un nuovo record in una maschera dove compilo i campi di questo nuovo record prendendo i dati dal file Pdf che il cliente mi ha spedito.
    Sì, si può fare ovviamente. Il grado di difficoltà risiede nelle tue capacità e negli strumenti di cui disponi.
    Hai Adobe Acrobat "full" o solo il reader? O un altro software per creare il modello pdf da compilare?
    Per il resto... prima rispondi a questo.
  • Re: Compilare i campi di una maschera da Pdf

    Ciao Philcattivocarattere e grazie mille per la risposta

    Allora, dato che parto da zero io mi lascerei consigliare.
    Io non ho Acrobat Full ma questo non significa che non possa averlo (se il prezzo non è eccessivo...)

    Io avevo visto alcuni programmi per creare un pdf editabile e credo che forse riuscirò da solo a creare un Pdf editabile anche se non l’ho mai fatto. Il problema è che non so quale sia il software ideale per importare successivamente quei campi editati dal cliente in una parte della maschera Access del mio Db.

    Consigliami tu qual’è il modo migliore per iniziare

    Grazie mille per il supporto!
  • Re: Compilare i campi di una maschera da Pdf

    kris9951 ha scritto:


    Allora, dato che parto da zero io mi lascerei consigliare.
    Io non ho Acrobat Full ma questo non significa che non possa averlo (se il prezzo non è eccessivo...)
    Su questo posso essere di poco aiuto. Attendi lumi da altri utenti (anche se forse questa non è la sezione ideale del forum, almeno sotto questo aspetto) o documentanti sul web, con le caratteristiche dei vari software. Adobe Acrobat (che a volte completo con "full" per non confonderlo con Adobe Reader).
    Se è per quello ci sono anche siti internet che aggiungono ad un file pdf già creato i campi da compilare.
    Per quelle due o tre robette che faccio uso ma nel mio caso si tratta di file che comunque verrebbero stampati o inviati tramite e-mail, senza acquisizione automatica delle informazioni. Ripeto: cerca sul web quello che meglio si adatta sotto tutti i punti di vista a te, sia on line sia come applicazione desktop classica.

    So come si fa ad estrarre i dati contenuti nei campi di un file pdf ma il file non l'avevo creato io.
    Per leggerli poi ho seguito due strade:
    1) ho usato una versione trial di Adobe Acrobat (si può dire? ) ma in quanto tale non potevo usarla all'infinito, oltre a darmi un problema che... mi piacerebbe riprovare adesso, per verificare se è cambiato qualcosa (a partire dal mio bagaglio di nozioni)
    Vedi qui: ** (dove hai anche una traccia di codice per l'importazione)
    2) fatto molte cose da riga comandi con pdftk, per poi importarle su Access, quindi nessun accesso diretto ai file pdf. Sicuramente molto di quello che lanciavo tramite riga comandi si poteva eseguire con vba ma alla fine si tratta di un meccanismo completamente diverso da quello di cui al punto 1.

    Ecco che devi valutare anche questo nella ricerca di un eventuale software a pagamento: che sia controllabile tramite vba (non tutti lo sono) nella lettura del contenuto dei campi.
  • Re: Compilare i campi di una maschera da Pdf

    Ok.
    Grazie per le Info
    Supponiamo che riesca a trovare un software anche a pagamento che crei il Pdf editabile e che sia controllabile anche da VBA.

    In quel caso potresti darmi qualche dritta su come copiare il testo di quei campi nelle varie TextBox della mia maschera Access?

    Grazie mille per il supporto
  • Re: Compilare i campi di una maschera da Pdf

    kris9951 ha scritto:


    ...
    In quel caso potresti darmi qualche dritta su come copiare il testo di quei campi nelle varie TextBox della mia maschera Access?
    Il codice ovviamente cambia in base al software che usi per la lettura del file pdf. Leggi il thread che ho indicato nel mio intervento del 22 ottobre 2019, 16:18 (rimanda al forum di masterdrive.it).
    Il codice "finale" che faceva quello che per me era sufficiente lo riporto anche qui.
    Private Sub Comando0_Click()
    On Error GoTo Error_Comando0_Click
        
    Dim AcroApp As Acrobat.CAcroApp
    Dim theForm As Acrobat.CAcroPDDoc
    Dim jso As Object
    
    Set AcroApp = CreateObject("AcroExch.App")
    Set theForm = CreateObject("AcroExch.PDDoc")
    
    Dim rs As DAO.Recordset
    Dim strPath As String
    Dim i As Integer
    
    i = 0
    Me.Elenco11.AddItem "Nome del file; Nome del campo"
    strPath = Me.tbxPath.Value
    
    Set rs = DBEngine(0)(0).OpenRecordset("FilePDF", dbOpenDynaset)
    
    Dim strFile As String
    Dim fullpath As String
    strFile = Dir(strPath & "\" & "*.PDF")
       Do While strFile <> ""
       fullpath = strPath & "\" & strFile
       theForm.Open (fullpath)
       Set jso = theForm.GetJSObject
       i = i + 1
           
        Dim i2 As Integer
            For i2 = 0 To (jso.NumFields - 1)
            rs.AddNew
            rs.Fields("NomeFile").Value = strFile
            Dim nomecampo As String
            nomecampo = jso.getNthFieldName(i2)
            If Len(jso.getfield(nomecampo).Value & "") > 0 Then 'se Acrobat va ko, il codice si ferma qui
            rs.Fields("NomeCampo").Value = nomecampo
            rs.Fields("ValoreCampo").Value = jso.getfield(nomecampo).Value
            rs.Update
            End If
            Next
        
        theForm.Close
        lblConta.Caption = i
        DoEvents
        strFile = Dir()
        
        Loop
    	
    AcroApp.Exit
    Set jso = Nothing
    Set theForm = Nothing
    Set AcroApp = Nothing
    
    MsgBox "Done"
    
    Exit_Comando0_Click:
       Exit Sub
    
    Error_Comando0_Click:
    Select Case Err.Number
        Case -2147023170
        Me.Elenco11.AddItem strFile & ";" & nomecampo
        Set AcroApp = CreateObject("AcroExch.App")
        Set theForm = CreateObject("AcroExch.PDDoc")
        theForm.Open (fullpath)
        Set jso = theForm.GetJSObject
        Resume
       
        Case Else
        MsgBox Err.Number & " - " & Err.Description 
        GoTo Exit_Comando0_Click
    End Select
    End Sub
    E' ovvio che, come avevo detto subito, è un traccia. A me andava bene così (se leggi l'intero thread puoi capire a cosa mi serviva e come memorizzavo i dati), tu ovviamente lo devi adattare alla tua situazione e per fare questo lo devi capire. Nota bene che quel codice ha circa 5 anni, il modello ad oggetti dello stesso Adobe Acrobat potrebbe essere cambiato.
  • Re: Compilare i campi di una maschera da Pdf

    Grazie mille.
    Una volta fatto il Pdf editabile proverò a modificare questo codice.
    Dubito che i risultati saranno soddisfacenti perché non ho una grande padronanza del VBA.

    Nel caso avrò difficoltà chiederò aiuto

    Grazie mille per i suggerimenti!!!
  • Re: Compilare i campi di una maschera da Pdf

    kris9951 ha scritto:


    ...
    Una volta fatto il Pdf editabile proverò a modificare questo codice.
    Modifica già una cosa subito, colpa mia: invece di
    
    Dim AcroApp As Acrobat.CAcroApp
    Dim theForm As Acrobat.CAcroPDDoc
    Usa
    Dim AcroApp As Object
    Dim theForm As Object
    (cosa che ho scritto nel thread ma che poi non ho recepito nel codice pubblicato)
  • Re: Compilare i campi di una maschera da Pdf

    Grazie!!!
  • Re: Compilare i campi di una maschera da Pdf

    Ciao Philcattivocarattere!

    La Macro funziona molto bene!!

    Ora la domanda è questa.
    È possibile farla funzionare solo con AcrobatPro oppure c’è un modo per farla funzionare anche se un utente ha installato solo AcrobatReader sul PC?

    Io ho già provato e con AcrobatReader non funziona...
  • Re: Compilare i campi di una maschera da Pdf

    Ovviamente non può funzionare, si appoggia alle Librerie della Versioen PRO che chiaramente offre qualche cosa di più della versione Reader(gratuita)...!
  • Re: Compilare i campi di una maschera da Pdf

    Mi pare giusto
    Grazie mille per il supporto!!

    Alla prossima
Devi accedere o registrarti per scrivere nel forum
11 risposte