Imprimir Rutas de archivos PDF en Excel

Dispongo de un Excel en el que cada celda contiene una ruta completa a un archivo ".PDF" específico.

Los archivos PDF se encuentran en la misma carpeta pero deseo imprimir solamente los que tengo listados en el Excel, no todos los que hay en la carpeta.

Me ayudaría enormemente ya que automatizaría el proceso de impresión.

He encontrado una pregunta parecida, pero en mi caso, yo no trabajo con hipervínculos, solamente con rutas:

Imprimir archivos pdf desde una lista en excel que esta linkeada

1 Respuesta

Respuesta
1

Antes de ejecutarla tienes que revisar lo siguiente:

  • La versión de programa Adobe, entra al explorador de archivos, sigue la ruta: Archivos de programa\Adobe\Reader . En mi ejemplo puse Reade 11.0, pero debes poner en la macro la versión que tú tengas.
    ruta = "C:\Program Files\Adobe\Reader 11.0\Reader\"
  • En la siguiente línea de la macro se establece una espera de 10 segundos, para que imprima un archivo y espere para el siguiente archivo, si es mucho, entonces cambia el 10 por un 05
    Application. Wait Now + TimeValue("00:00:10")
  • Los nombres de los archivos deberán estar en la columna A empezando en la fila 2.
  • Cambia en la macro "A" por la columna que desees tener los archivos.
  • Cambia en la macro "B" por la columna para mostrar el resultado de la impresión.
        col = "A"           'columna de archivos
        res = "B"           'columna de resultados

La macro completa

Sub Imprimir_PDFs()
'---
'   Por.Dante Amor
'---
    '
    col = "A"           'columna de archivos
    res = "B"           'columna de resultados
    '
    For i = 2 To Range(col & Rows.Count).End(xlUp).Row
        arch = Cells(i, col).Value
        If Dir(arch) <> "" Then
            Cells(i, res).Value = "Archivo no existe"
        Else
            ruta = "C:\Program Files\Adobe\Reader 11.0\Reader\"
            Shell ruta & "AcroRd32.exe /n /t " & arch
            DoEvents
            Application.Wait Now + TimeValue("00:00:10")
            Cells(i, res).Value = "PDF impresión terminada"
        End If
    Next
    MsgBox "Fin"
End Sub

Hola, en primer lugar muchas gracias por tu ayuda.

Lo siento, pero soy un novato aún. He modificado el programa PDF de Adobe por Sumatra, ya que es el que tengo instalado. Entonces es así como me queda la macro:

Sub Imprimir_PDFs()
'---
'   Por.Dante Amor
'---
    '
    col = "A"           'columna de archivos
    res = "B"           'columna de resultados
    '
    For i = 2 To Range(col & Rows.Count).End(xlUp).Row
        arch = Cells(i, col).Value
        If Dir(arch) <> "" Then
            Cells(i, res).Value = "Archivo no existe"
        Else
            ruta = "C:\Program Files\SumatraPDF\"
            Shell ruta & "SumatraPDF.exe /n /t " & arch
            DoEvents
            Application.Wait Now + TimeValue("00:00:10")
            Cells(i, res).Value = "PDF impresión terminada"
        End If
    Next
    MsgBox "Fin"
End Sub

El problema que me da es "Archivo no existe", cuando realmente sí que existe. Las rutas de ejemplo que he probado son:

C:\Users\UserPortatil\Desktop\pruebas\SAS.PDF

C:\Users\UserPortatil\Desktop\pruebas\Beca 2010.PDF

Gracias.

Desconozco la instrucción para imprimir desde sumatra.

Tendrás que buscar en la red o descargar el Adobe Acrobat, es gratis y después pruebas mi macro.

Hola, creo que estos son los comandos:

Printing options

  • -print-to-default

    Prints all files indicated on this command line to the system default printer. After printing, SumatraPDF exits immediately (check the error code for failure).

  • -print-to <printer-name>

    Prints all files indicated on this command line to the named printer. After printing, SumatraPDF exits immediately (check the error code for failure).

    E.g. -print-to "Microsoft XPS Document Writer" prints all indicated files to the XPS virtual printer.

  • -print-settings <settings-list>

    Used in combination with -print-to and -print-to-default. Allows to tweak some of the printing related settings without using the Print dialog. The settings-list is a comma separated list of page ranges and advanced options such as "even" or "odd"; "noscale", "shrink" and "fit"; and "compat" (for printing as image); "duplex", "duplexshort", "duplexlong" and "simplex".

    E.g. -print-settings "1-3,5,10-8,odd,fit" prints pages 1, 3, 5, 9 (i.e. the odd pages from the ranges 1-3, 5-5 and 10-8) and scales them so that they fit into the printable area of the paper.

    print-settings "3x" prints the document 3 times.

  • -silent

    Used in combination with -print-to and -print-to-default. Silences any error messages related to command line printing.

  • -print-dialog

    Displays the Print dialog for all the files indicated on this command line.

  • -exit-when-done

    Used in combination with -print-dialog (and -stress-test). Exits SumatraPDF after the Print dialog has been dismissed and the document printed.

Como te comenté desconozco la instrucción para Sumatra.

No tengo Sumatra y no podrá hacer pruebas.

Te recomiendo que descargues la versión Adobe Acrobat y utilices la macro que te envié.

De acuerdo, lo probaré. Muchas gracias.

R ecuerda regresar aquí a valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas