주문인쇄요청, 단체인쇄요청

주문인쇄요청, 단체인쇄요청

나는 다음과 같은 시스템을 갖추고 있습니다

  1. 12개의 이메일 중 하나가 오전 5시에서 7시 사이에 무작위 순서로 도착합니다.
  2. Outlook 규칙은 전자 메일을 선택하고 첨부된 스프레드시트 중 일부(전체는 아님)의 일부를 자동으로 수정하고 인쇄하는 VBA 스크립트를 실행합니다.
  3. 아침에 모든 인쇄물을 수거하여 수동으로 그룹별로 주문하고 함께 스테이플합니다.

인쇄하고 스테이플할 수 있도록 인쇄하기 전에 인쇄물을 그룹화하는 가장 좋은 방법은 무엇입니까?

답변1

어떤 순서로 원하는지 말하지 않으셨군요...

이 시도. 프린터 속성으로 이동하여 고급 버튼을 클릭합니다. "마지막 페이지가 스풀링된 후 인쇄 시작"을 클릭하고 "스풀링된 문서를 먼저 인쇄"가 선택되어 있는지 확인하십시오.

그러면 이메일은 Outlook에서 인쇄하는 순서대로 인쇄됩니다. Outlook의 기능을 테스트하려면 파일로 인쇄하고 파일이 생성되는 순서를 확인해 보세요. 올바른 순서가 아닌 경우 Outlook에서 설정을 변경하여 원하는 대로 순서를 지정해 보세요. 그런 다음 프린터에 다시 연결하십시오.

답변2

문제를 해결하고 다음을 수행했습니다.

  1. Z:\Print각 문서 는 다음 코드를 사용하여 VBA에서 XPS 프린터(업무용 컴퓨터에서는 PDF 인쇄를 사용할 수 없음)를 사용하여 폴더에 *.xps 파일로 인쇄됩니다.

    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. 7.00 배치 스크립트(사용대본) 모든 *.xps 파일을 *.pdf 파일로 변환하는 작업이 예정되어 있습니다. 아마도 두 개의 파일 이름 변수가 필요하지 않을 것입니다. 이는 디버깅에서 남은 것입니다.

    @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. 그런 다음 내가 작성한 Java 프로그램이 실행되고 별도의 PDF 파일을 원하는 그룹으로 병합합니다(사용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. 마지막으로 결합된 모든 PDF 파일을 인쇄하는 배치가 실행됩니다. 지연된 프로세스 종료가 필요합니다. 프로세스 호출 후 프로세스 종료를 시도하면 프로세스를 찾을 수 없다는 메시지만 표시됩니다(작업 관리자에 바로 있는 경우에도 마찬가지임).

      @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
      

관련 정보