2012-01-18 4 views
1

다른 응용 프로그램 (Word, Excel, PDF 판독기)이 Java 응용 프로그램에서 프린터로 전송 한 인쇄 세부 정보를 얻는 방법을 알고 싶습니다. 즉, 사용자는 한 대의 PC에서 다양한 유형의 문서를 프린터로 보냅니다.자바에서 인쇄 작업을 청취하는 방법

Java 응용 프로그램은 프린터로 보낸 문서 수를 계산해야합니다.

Java SE 응용 프로그램에서 어떻게 이러한 세부 정보를 얻을 수 있습니까? 모든 자원, 유용한 링크, 지침을 높이 평가.

답변

3

Java를 사용하여 직접 수행 할 수는 없지만 해결 방법이 있습니다.

각 인쇄 작업마다 Windows 스풀러 서비스에서 생성 된 두 개의 스풀 파일이 있습니다.

작업 설정에 대한 확장자가 .SHD 인 파일 하나와 도면 명령에 대한 확장자가 .SPL 인 파일이 있습니다.

이러한 파일은 프린터별로 사용자 정의 위치에 저장할 수 있습니다. 모든 스풀러 작업의 기본 위치는 c:\windows\system32\spool\PRINTERS입니다.

는 프린터별로

  1. 시작에 위치를 설정, 실행을, 열기 상자에 입력 한 regedit를 클릭 한 다음 확인을 을 클릭합니다.

  2. <printername> 프린터의 이름 다음 레지스트리 하위 키를 찾습니다

    HKEY_LOCAL_MACHINE \ 소프트웨어 마이크로 소프트 \ 윈도우 \ 오른쪽 창에서

    \ NT \ CurrentVersion을 \ 인쇄 \ 프린터, SpoolDirectory을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.

  3. 값 데이터 상자에 스풀 파일을 저장할 위치를 입력하십시오. 예를 들어, 위치로 c:\windows\system32\spool\printers을 입력하십시오.

  4. 레지스트리 편집기를 종료하십시오. 인쇄 스풀러 서비스를 다시 시작하십시오.

모든 새로운 작업 형태 XXXXX.SPLXXXXX.SHD이 될 것입니다 그들의 JobIDs으로 일관 번호가됩니다.

Java를 사용하면 프린터 서비스 나 특정 프린터로 전송되는 새로운 작업에 대해이 폴더를 모니터링 할 수 있습니다.

+0

고맙습니다. 존이 말씀하셨습니다. 폴더가 있다고 말씀 하셨는데 더 설명 해주시겠습니까? 하나는 알고 싶습니다. 인쇄물마다 파일을 만들었습니까? (예 : 하나의 문서 만 인쇄합니다 .SHD 파일) 그리고이 파일의 길이는 얼마나됩니까? (명령이 프린터로 전송 될 때까지 내 폴더를 쳐다 보았습니다. 그러나 빈 것처럼 보였지만 너무 평범한 인쇄물이었습니다) 그렇다면 항상이 폴더를보고 있어야합니다. 이 파일 수를 계산합니까? 또한 더 많은 프린터가있는 경우 어떤 프린터가 .SHD에 속하는지 식별 할 수 있습니까? (작업 ID 번호는 어떤 프린터의 작업이 인쇄됩니까?) –

+0

인쇄 작업이 완료되면 이러한 파일이 지워집니다. 나는 전에이 일을하지 않았으며, 그것은 내 마음에 온 아이디어입니다. – John

+0

http://www.undocprint.org/winspool/spool_files – John

관련 문제