+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Collegarmi ad Adobe Acrobat 5.0 con access 2003

  1. #1
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176

    Collegarmi ad Adobe Acrobat 5.0 con access 2003

    Perché scrivendo:

    Dim AcroApp As Acrobat.CAcroApp

    Mi risponde con : "Tipo definito dall'utente non definito" ?

    Grazie.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,224
    Quote Originariamente inviato da Paolo Bolognesi Visualizza il messaggio
    Perché scrivendo:

    Dim AcroApp As Acrobat.CAcroApp

    Mi risponde con : "Tipo definito dall'utente non definito" ?

    Grazie.
    Se non hai inserito la Libreria nei Riferimenti mi chiedo perchè ti aspetti che lo riconosca...?
    Rcordati che parliamo di COM Interface...!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    ok. Bene. sono entrato in Adobe da access!

    Il mio obietivo è unire due file di pdf tra di loro, da access.
    Ho trovato questo codice, che ho adattato ai miei file:

    codice:
    Dim strPDFFullPathName_1 As String
    Dim strPDFFullPathName_2 As String
    Dim strPDFFullPathMergeName As String
    
        Dim AcroApp As Acrobat.CAcroApp
        Dim Part1Document As Acrobat.CAcroPDDoc
        Dim Part2Document As Acrobat.CAcroPDDoc
        
        Dim numPages As Integer
     
        Set AcroApp = CreateObject("AcroExch.App")
        Set Part1Document = CreateObject("AcroExch.PDDoc")
        Set Part2Document = CreateObject("AcroExch.PDDoc")
        
        Part1Document.Open "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess\_1.pdf"
        Part2Document.Open "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess1_2.pdf"
        
        ' Insert the pages of Part2 after the end of Part1
       numPages = Part1Document.GetNumPages()
        
        If Part1Document.InsertPages(numPages - 1, Part2Document, 0, Part2Document.GetNumPages(), True) = False Then
            'MsgBox "Cannot insert pages"
        End If
        
        If Part1Document.Save(PDSaveFull, "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess\Russi.pdf") = False Then
            MsgBox "Cannot save the modified document"
        End If
            
        Part1Document.Close
        Part2Document.Close
        
        AcroApp.Exit
        Set AcroApp = Nothing
        Set Part1Document = Nothing
        Set Part2Document = Nothing
        
        MsgBox "Done"
    
    End Sub
    Però ottengo soltanto di sostituire il primo file con il terzo... Cioè il contenuto del primo file diventa quello del terzo... Nessuna "fusione"!. Cosa devo correggere?
    Ultima modifica di @Alex; 28-10-2013 14:02  Motivo: TAG CODE...!!!!!

  4. #4
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    Penso che la chiave sia qui: If Part1Document.InsertPages(numPages - 1, Part2Document, 0, Part2Document.GetNumPages(), True) = False

    Mi seve aiuto!

    :-)



    Quote Originariamente inviato da Paolo Bolognesi Visualizza il messaggio
    ok. Bene. sono entrato in Adobe da access!

    Il mio obietivo è unire due file di pdf tra di loro, da access.
    Ho trovato questo codice, che ho adattato ai miei file:

    codice:
    Dim strPDFFullPathName_1 As String
    Dim strPDFFullPathName_2 As String
    Dim strPDFFullPathMergeName As String
    
        Dim AcroApp As Acrobat.CAcroApp
        Dim Part1Document As Acrobat.CAcroPDDoc
        Dim Part2Document As Acrobat.CAcroPDDoc
        
        Dim numPages As Integer
     
        Set AcroApp = CreateObject("AcroExch.App")
        Set Part1Document = CreateObject("AcroExch.PDDoc")
        Set Part2Document = CreateObject("AcroExch.PDDoc")
        
        Part1Document.Open "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess\_1.pdf"
        Part2Document.Open "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess1_2.pdf"
        
        ' Insert the pages of Part2 after the end of Part1
       numPages = Part1Document.GetNumPages()
        
        If Part1Document.InsertPages(numPages - 1, Part2Document, 0, Part2Document.GetNumPages(), True) = False Then
            MsgBox "Cannot insert pages"
        End If
        
        If Part1Document.Save(PDSaveFull, "C:\Documents and Settings\Paolo Bolognesi\Desktop\MergePdf-UnisciFilePdfDaAccess\Russi.pdf") = False Then
            MsgBox "Cannot save the modified document"
        End If
            
        Part1Document.Close
        Part2Document.Close
        
        AcroApp.Exit
        Set AcroApp = Nothing
        Set Part1Document = Nothing
        Set Part2Document = Nothing
        
        MsgBox "Done"
    
    End Sub
    Però ottengo soltanto di sostituire il primo file con il terzo... Cioè il contenuto del primo file diventa quello del terzo... Nessuna "fusione"!. Cosa devo correggere?

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,224
    Leggiti questi, e fai attenzione all'uso di LATEBINDING.... cosa che tu non fai:
    MergePDF - Page 2
    questo:
    Acrobat SDK, HowTo insert pages inside pdf
    oppure questo:
    Adobe Acrobat and VBA – An Introduction | Karl Heinz Kremer's Ramblings
    questo:
    VBA Merging PDF's (Acrobat 9.0) - Access World Forums

    Spero che uno di questi possa aiutarti...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  6. #6
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    Tutti scrivono che funziona a meraviglia. Io mi sono inchiodato qui:

    If Part1Document.InsertPages(numPages - 1, Part2Document, 0, Part2Document.GetNumPages(), True) = False Then
    MsgBox "Cannot insert pages"


    Help....

  7. #7
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    RIUSCITO!

    Dove era l'errore: il file di destinazione l'avevo già creato. Non so cosa succedeva nella procedura di preciso. Di fatto ho dato un nome al file da salvare (un nome che non esisteva nella cartella di destinazione). ebbene questo nuovissimo file contiene gli altri due!!!!!

    Che sudata.
    :-)

  8. #8
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    Per volontà di comprendere ho trovato il motivo del mancato funzionamento della routine.

    il secondo file da unire al primo aveva il path sbagliato... finiva con Access1_2.pdf invece che finire correttamente in ....Access\_2.pdf
    Quindi, non esistendo il file, mi ritrovavo soltanto il primo nel salvataggio finale!
    Ecco tutto. Grazie comunque per le indicazioni, sono state davvero utili.
    Paolo Bolognesi.

  9. #9
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,224
    Fai attenzione all'uso dell'EARLYBINDING sui Riferimenti alle LIB... è da evitare.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  10. #10
    Paolo Bolognesi non è in linea Scolaretto
    Post
    176
    Alex, vuoi dirmi che la procedura è sbagliata? Dove? Capisco che non devo fare qualcosa (earlybinding) ma come posso evitare di fare ciò?
    Poi ho una seconda domanda. Qui i file da unire sono due. Un primo passo è stato fatto.
    In realtà io ne ho da due a 30, quantità variabile in base al lavoro svolto (sono documenti che dimostrano avvenute lavorazioni).
    Quindi ho due domande:

    1) come faccio ad assegnare a ----Set Part1Document.Open---- il path che è presente nel campo collegamento ipertestuale di una tabella di access? (stesso dicasi per ---Set Part2Document.Open---

    2) Se quel preciso lavoro è composto da 10 record, avrò dieci documenti e non solo 2 da unire... Come faccio a svolgere il merge fino a quando ho esaurito i documenti presenti da unire?

    Super Grazie per l'aiuto. Paolo B.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi