Stampare file pdf da hyperlink



  • Stampare file pdf da hyperlink
    di gnaogab (utente non iscritto) data: 06/11/2017 16:22:24

    Buongiorno a tutti,
    Sono un pasticcione di Vigevano che un grosso problema:
    Ho una cartella contenente file in formato pdf, per fortuna in numero progressivo (3.pdf , 4.pdf 5.pdf ecc) e sono tantissimi.
    In A1 metto il numero progressivo, e in B1 metto =COLLEG.IPERTESTUALE("D:PDF" & A1 & ".pdf") ottnendo in automatico il collegamento ipertestuale. Con autofill riempio le prime 100 righe.
    Ora vorrei mandare in stampa i files pdf di notte per non intralciare il lavoro su una stampante di rete.
    Come faccio tramite VBA a mandare in stampa un collegamento?
    Non importa se apre/chiude Acrobat (tanto di notte..).
    Magari aggiungendo il nome files alla stampa.
    Oppure c'è un altro sistema?

    Ci ho provato ma non riesco a farlo fisicamente stampare..

    Qualche suggerimento??

    Grazie a tutto il forum

    Gabriele



  • di Luca73 data: 07/11/2017 15:39:59

    Ciao
    una base per la soluzione e relative limitazioni le trovi in
    h t t p ://www.pc-facile.com/forum/viewtopic.php?t=107177
    Io ho provato ad adattarla (in quanto la formula =COLLEG.IPERTESTUALE non dà come risultato un hyperlink vero per VBA)

    Ti faccio notare le note del sito sopra citato

    "Verifica il percorso corretto sotto cui e' disponibile l'applicativo di acrobat che usi e correggi eventualmente quanto scritto sulla riga marcata <<<.

    Se con pochi documenti funziona, prova con piu' documenti; tieni presenti che la macro continua a lanciare altre stampe mentre quella/quelle precedenti non sono ancora terminate, perche' i processi shell sono asincroni; do' per scontato che il tuo pc non vada in crisi con 35 processi Acrobat."




     
    Sub allprint()
    Dim i
    Dim Pippo
    Dim chlink
    For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row
        'If Range("G" & i).Hyperlinks.Count > 0 Then
            chlink = Range("B" & i).Value
            Shell ("C:Program Files (x86)AdobeAcrobat 11.0AcrobatAcrobat.exe /t " & chlink)       '<<<<
        Next i
    End Sub





  • Ci siamo quasi
    di Gnaogab (utente non iscritto) data: 08/11/2017 12:31:45

    Grazi!!!

    Fantastico, ci sono quasi riuscito ad ottenere la stampa con il tuo suggerimento.

    Le modifiche che ho fatto sono sostanzialmente la cella di partenza (B1) e acrobat che essendo in inglese vuole /p al posto di /t , controllando da B2 a B30, altrimenti il mio paleocomputer si suicida
    Il collegamento Hyperlink come lo avevo fatto non funziona come giustamente dicevi tu, mentre con un collegamento diretto funziona; oppure scrivo nella cella file:///c:/pdf/1.pdf ottenendo il collegamento senza diventare matto.
    Ho l'ultimo ostacolo: si apre il file, esce lo splash screen che chiede conferma di stampa...
    Sono al 95%
    Adesso gli aggiungo un timer per farlo partire a mezzanotte e risolvo la stampa senza conferma.
    Appena risolvo metto tutto il codice a beneficio di tutti!

    Grazie ancora
    Gabriele
     
    Sub Macro55()
    
    Dim Relat As Boolean, cHLink As String, TwP As String
    '
    For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row
        If Range("B" & i).Hyperlinks.Count > 0 Then
            cHLink = Range("B" & i).Hyperlinks(1).Address
            Relat = False
            TwP = ThisWorkbook.Path
    '
            Do
                If Len(cHLink) > Len(Replace(cHLink, "..", "", , , vbTextCompare)) Then
                Relat = True
                    cHLink = Replace(cHLink, "..", "", 1, 1, vbTextCompare)
                    split1 = Split(TwP, "")
                    TwP = Replace(TwP, "" & split1(UBound(split1)), "", 1, 1, vbTextCompare)
                Else
                    Exit Do
                End If
            Loop
            If Left(cHLink, 1) = "" Then
                Relat = True
                cHLink = Mid(cHLink, 2, 30)
            End If
    '
            If Relat Then
                cHLink = """" & TwP & "" & cHLink & """"
            Else
                cHLink = """" & cHLink & """"
            End If
            Shell ("C:Program FilesAdobeReader 10.0ReaderAcroRd32.exe /p " & cHLink)     '<<< Controlla percorso di AcroRd32
    Debug.Print cHLink
        End If
    Next i
    
    End Sub



  • di Luca73 data: 08/11/2017 13:25:27

    Ciao
    mi sati portando in campi che non conosco ma cercando in internet ho trovato

    the following switches are available:
    /n - Launch a new instance of Reader even if one is already open
    /s - Don't show the splash screen
    /o - Don't show the open file dialog
    /h - Open as a minimized window
    /p - Open and go straight to the print dialog
    /t - Print the file the specified printer.

    Pertanto se metti /p ti apre la scheda di stampa e aspetta l'OK invece con /t stampa direttamente.

    MI RACCOMANDO
    quando hai la macro finale postala...Grazie

    Ciao
    Luca






  • Risolto
    di gnaogab (utente non iscritto) data: 08/11/2017 14:39:51

    Risolto!

    ho aggiunto un'altra macro (penso che potevo accorparla..) che fa partire la mia macro per la stampa alle 3 di notte.

    Ora ho due bottoni così posso decidere se far partire il tutto di notte oppure subito.

    Perfetto!

    Grazie a tutti!!



    Gabriele
     
    Sub Macro7()
    '
    ' 
    Application.OnTime TimeValue("03:00:00"), "Macro55"
    '
    End Sub