Linux에서 인쇄: CUPS, PPD, 인쇄 대화 상자 및 인쇄 옵션

Linux에서 인쇄: CUPS, PPD, 인쇄 대화 상자 및 인쇄 옵션

좋아요 그래서 CUPS가 인쇄 작업을 관리하고 이를 프린터로 보내는 인쇄 스풀러 역할을 한다는 것을 알게 되었습니다. 또한 PPD 파일은 프린터의 기능 세트를 설명하고 CUPS는 이러한 파일과 필터를 사용하여 프린터와 인터페이스하여 프린터가 문서를 인쇄하는 데 사용할 수 있는 출력을 생성한다는 점(PostScript, PCL 또는 프린터에 필요한 모든 독점 형식)을 이해합니다. . 하지만 나는 이 문제의 여러 측면에서 혼란스러워요. 주로:

  • 애플리케이션은 어떻게 인쇄 작업을 CUPS로 보내나요?
  • 응용 프로그램은 선택한 프린터에 대한 인쇄 옵션을 어떻게 얻습니까? CUPS가 프린터에 사용하는 PPD 파일이나 필터에서 나오는 것입니까?
  • CUPS가 IPP를 통해 프린터를 공유할 때 이 기능은 어떻게 작동합니까? CUPS로 인쇄 작업을 보내는 장치는 로컬로 처리됩니까, 아니면 CUPS 서버에서 처리됩니까? CUPS가 이 작업을 수행하는 경우 인쇄 옵션을 얻으려면 로컬 장치에 PPD 파일이 필요하다는 의미입니까, 아니면 CUPS가 해당 PPD 파일을 로컬 장치로 전송합니까?
  • 내가 아는 한 모든 Linux 시스템은 잠재적으로 로컬 인쇄에 CUPS를 사용할 수 있습니다. 그렇다면 인쇄 옵션 및 PostScript/PCL 등에 대한 인쇄 작업 처리 측면에서 어떻게 작동합니까?

혼란을 해결하는 데 도움을 주셔서 감사합니다.

답변1

CUPS로 인쇄 작업을 보내는 방법에는 여러 가지가 있습니다.

  • 로컬 프로세스가 전통적인 Unix 프로그램인 경우 프로세스는 단순히 ASCII 텍스트나 PostScript를 lpCUPS 구현이나 인쇄 명령으로 파이프할 수 있습니다.lpr
  • localhost또는 CUPS에 LPD 호환성이 활성화된 경우 포트 515/TCP에서 LPD 인쇄 프로토콜을 사용할 수 있습니다.
  • localhost또는 포트 631을 통한 IPP 일 수도 있습니다 .
  • 또는 CUPS 클라이언트 라이브러리( libcups.so)를 사용하여 완전한 기본 CUPS 지원을 얻을 수도 있습니다.

lp또는 명령을 사용하는 경우 lpr모든 작업 옵션은 명령줄 옵션을 사용하여 지정해야 하며 지원되는 옵션을 자동으로 검색하는 전통적인 방법은 없습니다. 이 이전 Unix 인터페이스를 사용하는 프로그램은 일반적으로 사용자가 인쇄 명령줄을 편집하여 원하는 옵션을 설정하도록 합니다. 필요한 옵션. CUPS에는 파일 형식 자동 감지(명령과 유사 file)도 포함되어 있으므로 이론적으로 CUPS에 사용 가능한 PNG 형식 변환기가 있는 경우 lp something.png합리적인 방식으로 이미지를 말하고 인쇄할 수 있습니다.

IPP의 CUPS 구현에는 다음이 포함됩니다.프로토콜 확장클라이언트가 프린터 및 작업 옵션을 쿼리 및 설정하고 PPD 콘텐츠를 요청할 수도 있습니다.

IPP 프로토콜 자체에는 HTTP와 마찬가지로 콘텐츠 협상이 포함됩니다. 서버는 인쇄 작업에 허용할 수 있는 형식을 MIME 유형으로 지정하고 클라이언트는 전송하려는 데이터 형식을 선언합니다. 서버가 특정 작업 형식을 지원하지 않는 경우 작업이 거부될 수 있습니다. "application/vnd.cups-raw"를 작업 형식으로 지정하여 작업이 변환 없이 있는 그대로 프린터에 전달되어야 함을 나타낼 수도 있습니다. CUPS 관리자는 이를 허용할지 여부를 선택할 수 있습니다.

일반적으로 CUPS 서버에는 다양한 파일 형식을 표준 "대기 작업 형식"으로 변환하고 거기에서 프린터가 허용하는 형식(예: PCL, PostScript 등)으로 변환하는 데 사용할 수 있는 일련의 작업 형식 변환기가 있습니다. 독점 형식 중 하나). "대기 중인 작업 형식"은 PostScript였지만 현재 최신 버전의 CUPS에서는 PDF입니다.

관련 정보