CUPS에 가짜 더미 널 프린터를 추가하는 방법은 무엇입니까?


12

여러 프린터를 지원하는 소프트웨어를 작성 중입니다. 테스트하려면 CUPS 서버에 여러 대의 프린터를 추가해야합니다. 어떻게해야합니까?

작업을 / dev / null로 직접 보낼 가짜 프린터를 몇 개 추가하고 싶습니다. 이렇게하면 CUPS 인터페이스에서 "완료된 작업"목록을보고 소프트웨어가 각 작업에 올바른 프린터를 사용하고 있는지 확인할 수 있습니다.


"lpadmin -p lp0 -E -v / dev / null -m raw"가
아닙니다

1
더미 프린터 만들기 도 참조하십시오 .
Wilfred Hughes

답변:


11

한 가지 해결책은 cups-pdf 를 설치하는 것 입니다. PDF 파일을 작성하는 가상 프린터를 추가합니다. 웹에서 설치 및 구성 방법에 대한 여러 학습서가 있습니다. 젠투를 사용하기 때문에 젠투 위키를 읽었으며 Sabayon 위키 도 언급하고 있습니다 .

cups-pdf 가상 프린터는에 구성 파일이 있으며 /etc/cups/cups-pdf.conf기본적으로 모든 PDF 파일이에 기록됩니다 /var/spool/cups-pdf/${USER}.

(NB : 우분투에서는 ~ / PDF /에 씁니다)

그러나 몇 가지 제한 사항이 있습니다.

  • 하나의 구성 파일 만 있기 때문에 여러 PDF 프린터가 동일한 디렉토리에 저장됩니다.

  • "원시"데이터를 인쇄 할 수 없습니다 (예 :) lpr -o raw. PDF 파일을 원시 작업으로 보내도 작동하지 않습니다. 원시 인쇄 작업은 빈 페이지만으로 빈 PDF 파일을 생성합니다.

이러한 한계에도 불구하고 그것은 내 요구에 완벽하게 작동합니다.


각주 : 사용자가 Gnome을 사용하거나 GTK + 응용 프로그램을 통해 인쇄하는 경우 인쇄 대화 상자에 "파일로 인쇄"의사 프린터가 이미 있습니다. 따라서 사용자가 여전히 가상 PDF 프린터를 추가해야하는 이유는 무엇입니까? 몇 가지 이유는 다음과 같습니다.

  • "파일로 인쇄"는 GTK +에만 해당되며 비 GTK + 응용 프로그램에는 사용할 수 없습니다. (아마도 KDE는 비슷한 기능을 가지고 있지만 확실하지 않습니다)
  • 인쇄용으로 설계된 Flash "응용 프로그램"에서 PDF를 생성 할 수 있습니다. 예를 들어, PocketMod 입니다.
  • CUPS에 가상 프린터를 추가하면 쉘 스크립트 또는 CUPS와 직접 통신하는 다른 소프트웨어를 사용하여 인쇄를 테스트 할 수 있습니다. 응용 프로그램을 테스트하는 동안 개발자에게 특히 유용합니다.
  • 이 가상 프린터를 로컬 네트워크와 "공유"할 수 있습니다. 유용하지는 않지만 가능합니다.
  • PDF 파일을 저장 한 직후 실행되도록 사후 처리 명령을 첨부 할 수 있습니다.

10

컵스 포럼에는이 질문에 대한보다 완전하고 정확한 답변이 있습니다.

대답은 장치 URI를 file : / dev / null로 설정해야한다는 것입니다.

내 우분투 설정에서 :

  • 장치 URI : file : / dev / null
  • 제조업체 및 모델 : 로컬 원시 프린터

어느 것이나 완벽하게 작동합니다.

컵 포럼을 다시 검색하여 다음을 발견했습니다.

Cups Forum의 명령 줄 널 프린터 설정

cupsd.conf에서 :

FileDevice yes

설정 프린터

lpadmin -p nowhere -E -v file:/dev/null

테스트 프린터

who |lp -d nowhere

나는 지금 내 인쇄물을보고 있습니다 : 훌륭한 세부 사항, 생생한 색상이 페이지에서 나옵니다. ... 안녕 대기 시간 ....
앤드류 러셀

감사합니다. 지침을 스크린 샷하기 위해 가상 머신에 더미 프린터가 필요했습니다. :)
njallam

감사. 이것도 효과가 wine있었습니다.
Tinti

7

다음 /dev/nulllpadmin같이 출력되는 프린터를 만들 수 있습니다 .

$ sudo lpadmin -p myprinter -E -v file:///dev/null

이 문서는으로 작성 /etc/cups/printers.conf되지만 다음을 사용하여 프린터를 볼 수도 있습니다 lpstat.

$ sudo lpstat -s
myprinter accepting requests since Thu 22 Jan 2015 11:04:46 AM GMT
system default destination: myprinter
device for myprinter: ///dev/null

참고 당신이 오래된 리눅스 배포판에 /etc/cups/cupsd.conf 파일에 FileDevice를 활성화해야합니다 .

새 프린터를 기본 프린터로 설정하려면 lpoptions다음을 사용하십시오 .

$ sudo lpoptions -d myprinter

그것을 제거하는 방법?
Richard

@Richard 사용 lpadmin -x myprinter또는 웹 인터페이스.
Torkel Bjørnson-Langen

2

가장 좋은 해결책 중 하나는를 사용하는 것 ippserver입니다. 그 이상으로 제공됩니다 CUPSv2.2.2. 또는 여기에서 프로젝트를 얻을 수 있습니다 : IPP 샘플 구현 .

매뉴얼 페이지 의 설명에 따르면 :

ippserver는 IPP Everywhere 및 IPP INFRA (공유 인프라 확장) 사양을 준수하는 간단한 IPP (Internet Printing Protocol) 서버입니다. INFRA 사양을 준수하는 표준 IPP 클라이언트와 IPP 프록시 간의 독립형 인쇄 서버 및 / 또는 매우 기본적인 인프라 서버로 사용할 수 있습니다.

사용하려면 run을 실행 ippserver "My cool printer"하면 이름 My cool printer을 가진 가상 프린터가 만들어 집니다. 웹 서버처럼 실행되며 특정 포트에서 수신 대기합니다.

여러 개의 프린터가 필요한 경우을 사용하여 여러 포트에서 서버를 실행할 수 있습니다 ippserver "My other cool printer" -p 8888.

속성 파일을 사용하여 프린터 속성을 제공 할 수도 있습니다. 예를 들어, 프린터는 기본적으로 고품질 인쇄를 지원하므로 속성 파일에 다음 속성을 추가 할 수 있습니다.

ATTR enum print-quality-default high

다음을 사용하여 서버를 실행하십시오.

ippserver "My high quality cool printer" -a attributes-file.txt

참고 문헌 :

  1. PWG IPP 샘플
  2. CUPS ipptoolfile 매뉴얼 페이지

1

http://inai.de/linux/adm_virtualprinter 에서 가져 왔습니다 .

CUPS의 가상 프린터

CUPS에서 데이터를 어디에도 보내지 않는 프린터를 만드는 /dev/null방법은 여러 가지가 있습니다. 이 페이지는 socket:// 방법을 사용합니다 .

xinetd를 먼저 설정하십시오

필요한 것은 포트 9의 TCP 폐기 서비스입니다. Xinetd에는 기본 제공 기능이 있으므로이를 사용할 수 있습니다. xinetd의 설정 파일에서 일반적으로 다음 정의를 사용할 수 있는지 확인하십시오 /etc/xinetd.d/discard. 다음과 같은 서비스를 포함해야합니다.

    서비스 폐기
        유형 = 내부
        id = 폐기 스트림
        socket_type = 스트림
        프로토콜 = tcp
        사용자 = 루트
        기다림 = 아니오
        비활성화 = 아니오
        플래그 = IPv6 IPv4 
실행 rcxinetd reload구성 파일을 다시 읽도록하고 새로운 활성화 discard서비스. 또는 rcxinetd startxinetd가 아직 활성화되지 않은 경우 사용 하십시오.

CUPS 프린터

이제 CUPS 웹 프론트 엔드로 이동하여 새 프린터를 추가하십시오. 대상 socket://localhost:9/으로 프린터는 "HP 2500C Foomatic / pcl3"과 같이 기능이 뛰어난 것을 선택하십시오. 그것이 전부입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.