Impresión por lotes de archivos adjuntos PDF en Outlook

Advertisements

Este artículo fue escrito por Sean Tsai, un experto en almacenamiento de datos y buen amigo de How-To Geek

¿Alguna vez ha querido imprimir todos los archivos adjuntos que recibe en su buzón de correo de Outlook? Suponga que se ha suscrito a un servicio gratuito de correo electrónico de fax en PDF y desea que se impriman automáticamente, como una máquina de fax antigua.

Aquí hay una forma rápida de hacer esto si se siente cómodo con un poco de programación VB (macro).

Lo que estamos mostrando aquí es crear una regla en Outlook y mover los correos electrónicos de fax entrantes a una subcarpeta separada. Usando el código VB, creamos una macro para que ejecute un trabajo de impresión en cada correo electrónico en esa subcarpeta para que no tenga que abrir el correo electrónico e imprimir los archivos adjuntos uno por uno.

Advertisements

Etapa 1

Cree una subcarpeta llamada «Impresiones por lotes» en «Buzón – Su nombre» en Outlook.

2do paso

Advertisements

Cree una regla (desde el menú Herramientas / Reglas y alertas) en Outlook que tenga este aspecto:

Coloque la dirección de correo electrónico de su proveedor de fax en el campo «email@myfaxservice.com». En la línea de asunto, coloque el texto permanente que envía el proveedor de fax cada vez (no coloque el texto que se cambiará periódicamente). El tercer campo «Impresiones por lotes» es la subcarpeta que acaba de crear durante el primer paso.

Paso 3

Cree una macro VB. Primero abra el editor de VB yendo a Herramientas / Macro / Editor de Visual Basic. Debería ver que el editor de VB se ve así:

Paso 4

En la ventana de Proyecto de la izquierda, haga clic con el botón derecho en el elemento Proyecto1 e inserte un módulo llamado Módulo1:

Paso 5

Una vez que se crea Module1, copie el código a continuación en la ventana de la derecha, como se muestra en la viñeta n. ° 3.

Public Sub PrintAttachments()
    Dim Inbox As MAPIFolder
    Dim Item As MailItem
    Dim Atmt As Attachment
    Dim FileName As String
    Dim i As Integer
 
    Set Inbox = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders.Item("Batch Prints")

    For Each Item In Inbox.Items
        For Each Atmt In Item.Attachments
            ' all attachments are first saved in the temp folder C:Temp.  Be sure to create this folder.
            FileName = "C:Temp" & Atmt.FileName
            Atmt.SaveAsFile FileName
            ' please change the program folder accordingly if the Acrobat Reader is not installed on drive C:
            Shell """C:Program FilesAdobeReader 8.0Readeracrord32.exe"" /h /p """ + FileName + """", vbHide
        Next
        
        Item.Delete  'remove this line if you don't want the email to be deleted automatically
    Next

    Set Inbox = Nothing
End Sub


Tenga en cuenta que es posible que deba modificar la línea de código que llama a Acrobat para que coincida con la ruta de su sistema.

Paso 6

La configuración ahora está completa. Todos los correos electrónicos de su proveedor de fax se trasladarán a sus «impresiones por lotes» cuando lleguen. Tenga en cuenta que en el ejemplo esperamos que todos los archivos adjuntos estén en formato PDF, por lo que usamos Acrobat acrord32.exe para imprimir cada archivo adjunto.

Usando la macro

Ahora, cuando desee imprimir todos los archivos adjuntos, vaya a la macro y ejecute la macro PrintAttachments y todos los archivos adjuntos se imprimirán secuencialmente. El correo electrónico se eliminará y se colocará en la papelera cuando se imprima.

Nota: Las impresiones se envían a su impresora predeterminada, por lo que debe asegurarse de que se haya configurado y seleccionado un controlador de impresora válido.

¡Espero que esto sea útil!

Advertisements

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada.