2010-03-20 9 views
0

CUPS 작업 제어 파일이 있습니다 (이것들은/var/spool/cups/cnnnnn에서 찾을 수 있습니다). 나는 인쇄물의 실제 크기를 알아야합니다.CUPS를 통해 종이의 크기를 얻는 가장 좋은 방법입니까?

  1. media 속성을 사용하여 용지 이름을 가져옵니다 :

    내가 그것을 어떻게 알아 냈어요 방법입니다. (예 : Letter)
  2. printer-uri 속성에서 프린터 URI를 가져옵니다. (예 : ipp://localhost/printers/MyPrinter)
  3. 프린터 URI를 IPP_GET_PRINTER_ATTRIBUTES 작업에 전달하고 printer-name 속성을 가져 와서 프린터 이름을 가져옵니다. (예 : MyPrinter)
  4. 프린터 이름을 cupsGetPPD 방법으로 전달하는 PPD의 경로를 가져옵니다.
  5. PPD 경로를 ppdOpenFile 방법으로 전달하여 PPD를 엽니 다.
  6. PPD와 용지 이름을 ppdPageSize 방법으로 전달하여 용지 크기를 가져옵니다.

이 방법은 효과가 있지만 약간 둥근 것처럼 보입니다. 필요한 것을 얻는보다 효율적인 방법이 있습니까?

답변

0

실제로 CUPS_GET_PPD 요청을 사용하여 3 단계와 4 단계 대신 ppd를 직접 가져올 수 있습니다.보다 효율적으로 보입니다.

0

작업 제어 파일에는 인쇄에 사용되는 파일의 모든 작업 옵션이 포함됩니다.

  1. 사람 특별히 및 명시 적으로 명령 줄에 사용자 또는 일부 GUI 요소를 클릭하여 선택 하였다 (이 사람이 제어 파일에 나타납니다) : 작업 옵션의 3 종류가 있습니다
  2. 은 사용자 특정 ~/.lpoptions 또는 시스템 전체의 /etc/cups/lpoptions 파일 (여기에는 사용자 별 파일이 최신 버전의 CUPS에서 ~/.cups/lpoptions으로 마이그레이션 됨)에 포함되어 있기 때문에 암시 적으로 설정되었습니다.) 제어 파일, CUPS는 순간을 평가하기 때문에
  3. 가 PPD를 구문 분석 및 기본 설정을보고 CUPS에 의해 추가 된
  4. 사람이 포함 된 (이 사람은 , 제어 파일에 표시되지 않습니다 작업이 처리됩니다. -o job-hold-until=indefinite을 사용하면 앞으로 2 일이 걸릴 수 있습니다.
당신이 printqueuename 사용 된 cupsserver를 알고있는 경우

,이 두 명령으로 그 콤보의 기본 큐 설정을 조회 할 수 있습니다 다음 (.)loptions 파일에서 언급 한 바와 같이이 모든 현재 설정을 반환합니다

lpoptions -h cupsserver \ 
      -U username \ 
      -d printqueuename 

(들) .

lpoptions -h cupsserver \ 
      -U username \ 
      -d printqueuename \ 
      -l 

이렇게하면 PPD에 포함 된 사용자가 선택할 수있는 모든 설정이 반환됩니다. 별표 *이 각 옵션의 기본 설정을 표시하는 것에 유의하십시오. 또한 -U username은 중요합니다. 다른 사용자가 다른 기본 설정을 사용할 수 있습니다 ...

이제는 PageSize을 사용한이 명령의 결과를주의하십시오 ...