Solicitar solicitudes de impresión, solicitudes de impresión grupales

Solicitar solicitudes de impresión, solicitudes de impresión grupales

Tengo un sistema de seguimiento implementado

  1. Uno de cada 12 correos electrónicos llega entre las 5 y las 7 a.m., en orden aleatorio
  2. La regla de Outlook recoge el correo electrónico y ejecuta un script VBA que modifica e imprime partes de algunas de las hojas de cálculo adjuntas automáticamente (no todas)
  3. Recojo todas las impresiones por la mañana, las ordeno manualmente en grupos y las grapo juntas.

¿Cuál sería la mejor manera de agrupar las impresiones antes de imprimirlas para poder imprimirlas y graparlas?

Respuesta1

No dices en qué orden los quieres...

Prueba esto. Vaya a Propiedades de la impresora y haga clic en el botón Avanzado. Haga clic en "Comenzar a imprimir después de que la última página esté en cola" y asegúrese de que "Imprimir primero los documentos en cola" esté marcado.

Luego, los correos electrónicos se imprimirán en el orden en que los imprime Outlook. Para probar lo que hace Outlook, puede intentar imprimir en un archivo y verificar en qué orden se crean los archivos. Si ese no es el orden correcto, intente cambiar la configuración en Outlook para que el orden sea el que desea; luego vuelva a conectarse a la impresora.

Respuesta2

Resolví mi problema y terminé haciendo lo siguiente:

  1. Cada documento se imprime en archivos *.xps, en una carpeta Z:\Printusando la impresora XPS (la impresión PDF no está disponible en la máquina de trabajo) en VBA, usando este código:

    Application.ActivePrinter = XPSPrinter
    ActivePrinterName = Application.ActivePrinter
    If (InStr(ActivePrinterName, "XPS")) Then
        Dim Filename As String
        Filename = ActiveWorkbook.name        
        rngPrint.PrintOut Copies:=1, _
        printtofile:=True, prtofilename:=FilePath & File & ".xps"
    End If
    
  2. A las 7.00 script por lotes (usandoguión fantasma) está programada la conversión de todos los archivos *.xps a archivos *.pdf. Probablemente no necesitemos dos variables de nombre de archivo, es un resto de la depuración.

    @echo off
    setlocal enabledelayedexpansion
    
    FOR /R Z:\Overnight\Print %%F in (*.xps) DO (
        Set filename=%%~nF%%~xF
        Set outputFilename=%%~nF%.pdf   
        Set filename2=Z:\Print\%!filename!
        Set outputFilename2=Z:\PrintPDF\%!outputFilename!
        C:\ghostxps\gxps.exe -sDEVICE=pdfwrite -sOutputFile=!outputFilename2! -dNOPAUSE !filename2!
        )
    
    exit
    exit
    
  3. Luego se ejecuta un programa java que escribí, combina archivos pdf separados en los grupos deseados (usandocaja pdf)

    public void combine(String outputName, String[] filenames) throws IOException, PrinterException {
    try {
        PDFMergerUtility mergePdf = new PDFMergerUtility();
        for (String filename : filenames){
            mergePdf.addSource(getFileByName(filename));
        }
        mergePdf.setDestinationFileName(outputPath+outputName+".pdf");
        mergePdf.mergeDocuments();
        System.out.println("Combined "+outputName);
       } catch (Exception e) {
         e.printStackTrace();
       }
    }
    
    1. Finalmente, se ejecuta un lote que imprime todos los archivos pdf combinados. Se requiere la finalización retrasada del proceso, si intenta realizar la finalización del proceso después de la invocación del proceso, simplemente le indicará que el proceso no se encuentra (incluso si está allí, en el administrador de tareas).

      @echo off
      setlocal enabledelayedexpansion
                  RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "\\SITE\PRINTER-BATCH"
      FOR /R Z:\CombinedPDF %%F in (*.pdf) DO (
                  Set filename=%%~nF%%~xF
                  Set filename2=Z:\CombinedPDF\%!filename!            
                  start cmd /c "timeout 15 & taskkill /f /im acrord32.exe"
                  call "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t !filename2!
      
                  )
      RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "\\SITE\PRINTER-DEFAULT"
      exit
      exit
      

información relacionada