이 저장소에는 HP의 HPLIP 드라이버 제품군에서 지원하는 HP 및 Apollo 프린터에서 인쇄하기 위한 프린터 응용 프로그램이 포함되어 있습니다.
PAPPL을 사용하여 여러 운영 체제에서 IPP 인쇄를 지원합니다. 또한 cup-filters 2.x(libcupsfilters, libppd의 필터 기능) 및 pappl-retrofit(프린터 응용 프로그램의 클래식 CUPS 드라이버 캡슐화)의 리소스를 사용합니다. 이 작업(또는 현재 pappl-retrofit 코드)은 hp-printer-app에서 파생됩니다.
프린터 드라이버 자체와 프린터 하드웨어와 통신하는 소프트웨어는 HPLIP(HP Linux Imaging and Printing) 드라이버 제품군에서 가져오고, 지원되는 프린터 모델 및 해당 기능에 대한 정보도 제공합니다.
귀하의 기여를 환영합니다. 이슈와 풀 리퀘스트를 게시해주세요.
참고: HPLIP는 HP에서 적극적으로 유지 관리하며 지속적으로 최신 프린터 모델을 추가하고 소프트웨어를 새로운 환경/Linux 배포판에 적용하고 있습니다. 따라서 HP가 HPLIP를 프린터 응용 프로그램으로 전환하거나 최소한 이를 기존 CUPS/SANE 드라이버의 대안으로 제공하는 경우에도 올바른 방법이 될 것입니다. 특히 내부적으로 PPD, CUPS 필터 및 CUPS 백엔드를 사용하지 않는 기본 프린터 애플리케이션을 만들어야 합니다. 또한 해당 유틸리티는 CUPS와 독립적으로 이루어져야 합니다.
PostScript 프린터의 경우 PostScript 프린터 응용 프로그램을 사용할 수도 있습니다. 특히 HP가 아닌 일부 PostScript 프린터에 이미 설치한 경우에는 더욱 그렇습니다.
또한 프린터가 드라이버 없는 IPP 프린터(AirPrint, Mopria, IPP Everywhere, Wi-Fi Direct Print, 휴대폰에서 인쇄)인지 확인하세요. 이 경우에는 프린터 응용 프로그램이 전혀 필요하지 않습니다. 가장 저렴한 모델을 포함하여 대부분의 최신 HP 프린터는 드라이버가 없는 IPP 프린터입니다. USB 전용 프린터도 드라이버 없는 IPP가 될 수 있으며 일반적으로 USB를 통해 드라이버 없는 IPP를 사용할 수 있습니다. 이러한 경우에는 먼저 ipp-usb를 사용해 보세요.
hpcups
프린터 드라이버와 HPLIP의 모든 프린터 PPD를 제공하는 프린터 애플리케이션으로, HP 및 Apollo의 대부분의 프린터에서 인쇄를 지원합니다. 이를 통해 인화지에 사진을 포함하여 쉽게 고품질로 인쇄할 수 있습니다. PostScript 프린터의 PIN 보호 인쇄를 위한 hpps
CUPS 필터도 포함되어 있습니다.
HPLIP를 통해서도 프린터가 검색됩니다. USB 프린터의 경우 hp
CUPS 백엔드가 사용되고 네트워크 프린터의 경우 hp-probe
유틸리티(CUPS 백엔드로 작동하도록 스크립트에 캡슐화됨)가 사용됩니다.
프린터와의 통신은 hp
CUPS 백엔드에 의해 수행되므로(적어도 USB의 경우) 표준 스트림 프로토콜과 같은 단순 스트림 프로토콜이 아닌 IEEE-1284.4 패킷 프로토콜(USB의 프로토콜 7/1/3)이 사용됩니다. CUPS 및 PAPPL 백엔드 사용). 이렇게 하면 인쇄와 스캔을 동시에 할 수 있거나 적어도 인쇄하는 동안 프린터 상태를 확인할 수 있습니다. 모든 프린터가 이 프로토콜을 지원하는 것은 아니며, 그렇지 않은 경우 표준 스트리밍 프로토콜이 사용됩니다. 또한 hp
백엔드가 필요한 기타 특수 기능도 지원됩니다. "프린터 추가" 웹 인터페이스 페이지의 "장치" 아래에서 "HPLIP(HP)" 항목을 선택합니다.
hp
백엔드는 프린터에 대한 양방향 액세스를 허용하지 않습니다. PostScript 프린터가 있고 동시 인쇄 및 스캔 대신 프린터 액세서리 구성에 대한 원격 쿼리 지원을 선호하는 경우 USB 및 네트워크 프린터용 CUPS 표준 백엔드도 사용할 수 있습니다.
사용하지 않는 시스템 구성이나 개인 방화벽이 있는 경우 HP 백엔드가 프린터를 검색하지 못할 수도 있습니다. 또한 이 상황에서는 호스트 이름/IP 필드와 함께 완전 수동 "네트워크 프린터" 항목을 포함하는 표준 백엔드가 도움이 될 수 있습니다.
PAPPL의 표준 백엔드 대신 CUPS'를 사용하면 호환성 문제가 있는 USB 프린터에 대한 기발한 해결 방법이 만들어지며 출력은 소켓( 일반적으로 포트 9100). SNMP 백엔드를 구성할 수 있습니다(커뮤니티, 주소 범위).
PostScript가 아닌 프린터에서 인쇄할 PWG 래스터, Apple 래스터 또는 이미지 입력 데이터는 PostScript 또는 PDF로 변환되지 않으며 필요한 색 공간 및 해상도로만 변환/크기 조정된 다음 hpcups
드라이버에 공급됩니다.
PostScript가 아닌 프린터에서 인쇄하는 경우 PDF 및 PostScript 입력 데이터는 Ghostscript를 사용하여 래스터 데이터로 렌더링됩니다. Ghostscript는 PDF를 PostScript 프린터용 PostScript로 변환하는 데에도 사용됩니다.
지원되는 프린터 모델과 해당 기능에 대한 정보는 HPLIP에 포함된 PPD 파일을 기반으로 합니다. Snap에 압축된 아카이브로 패키지되어 있습니다.
표준 작업 IPP 속성은 사용자에게 가장 적합한 드라이버 옵션 설정에 매핑되므로 사용자는 표준 IPP 속성만 지원하고 PPD 옵션을 검색할 수 없는 모든 유형의 클라이언트(예: 전화 또는 IoT 장치)에서 인쇄할 수 있습니다. 트레이, 미디어 크기, 미디어 유형 및 양면 인쇄는 쉽게 매핑할 수 있지만 PPD 파일에서 관련 옵션이 많이 다르기 때문에 색상과 품질의 경우 더 복잡해집니다. 여기서는 자동으로(과제에 대해 ~3000개의 PPD 파일을 직접 편집하려는 사람) print-color-mode
( color
/ monochrome
), print-quality
( draft
/ normal
의 각 조합에 대해 올바른 옵션 설정 세트를 찾는 알고리즘을 사용합니다. / high
) 및 현재 프린터의 PPD에 있는 print-content-optimize
( auto
/ photo
/ graphics
/ text
/ text-and-graphics
). 따라서 프린터별 옵션 설정을 처리할 필요 없이 프린터의 전체 품질이나 속도에 쉽게 액세스할 수 있습니다(원래 옵션은 여전히 웹 관리 인터페이스를 통해 액세스할 수 있습니다).
HPLIP 프린터 애플리케이션의 Snap은 HP에서 직접 가져오는 대신 Debian의 패키징 저장소에서 HPLIP의 소스 코드를 가져옵니다. Debian 패키지에는 HP에 보고되었지만 업스트림에서 채택되지 않은 버그를 수정하는 ~80개의 패치가 있기 때문입니다. 따라서 Snap을 사용하면 사용자는 Debian 패키지와 동일한 안정성과 품질 경험을 얻을 수 있습니다.
웹 인터페이스의 추가 페이지를 통해 HPLIP의 독점 플러그인 다운로드를 지원합니다. 이는 전원을 켤 때마다 펌웨어를 로드해야 하거나 특정 독점 인쇄 데이터 형식을 사용하는 일부 레이저 프린터에 대한 지원을 추가합니다. 이는 Snap과 프린터 애플리케이션의 클래식 설치 모두에서 작동합니다(루트로 실행해야 하며, 그렇지 않으면 플러그인의 상태 확인만 가능).
HP 다기능 프린터에서 스캔을 지원합니다. 이를 위해서는 PAPPL의 스캐닝 지원이 필요합니다(GSoC 2021에서 좋은 진전을 이루었습니다).
예를 들어 배너투PDF 필터를 사용하여 생성된 PDF 테스트 페이지입니다.
공급업체 옵션에 대한 사람이 읽을 수 있는 문자열(PAPPL의 지원 필요: 문제 #58: 현지화 지원)
국제화/현지화(PAPPL의 지원 필요: 문제 #58: 현지화 지원)
ps_status() 함수를 통한 SNMP 잉크 수준 확인(PAPPL의 지원 필요: 문제 #83: CUPS는 백엔드를 통해 IPP 및 SNMP 잉크 수준 폴링을 수행하며 PAPPL에는 이에 대한 기능이 있어야 함)
libqpdf 및/또는 libppd 없이 빌드하기 위한 컵 필터용 빌드 옵션, 전자를 사용하면 QPDF를 다운로드하고 빌드하지 않고도 이 프린터 애플리케이션의 스냅을 생성할 수 있습니다.
이 프린터 애플리케이션을 실행하고 사용하려면 Snap Store에서 간단히 설치하세요.
sudo snap install --edge hplip-printer-app
그런 다음 아래 지침에 따라 설정하세요.
Snap을 직접 빌드하려면 이 저장소의 기본 디렉터리에서 다음을 실행하세요.
snapcraft snap
그러면 필요한 모든 패키지가 다운로드되고 HPLIP 프린터 응용 프로그램이 빌드됩니다. 아직 적절한 릴리스가 없기 때문에 PAPPL(향후 1.0) 및 cup-filters(향후 2.0)는 GIT 리포지토리에서 직접 가져옵니다. 이로 인해 이 프린터 응용 프로그램이 갑자기 더 이상 빌드되지 않을 수도 있습니다.
결과 스냅 실행을 설치하려면
sudo snap install --dangerous hplip-printer-app_1.0_amd64.snap
프린터 응용 프로그램은 서버 데몬으로 자동으로 시작됩니다.
웹 인터페이스를 입력
http://localhost:8000/
웹 인터페이스를 사용하여 프린터를 추가합니다. 이름을 입력하고 검색된 프린터를 선택한 다음 제조업체와 모델을 선택합니다. 또한 설치된 액세서리, 로드된 미디어 및 옵션 기본값을 설정합니다. 프린터가 PostScript 프린터인 경우 액세서리 구성 및 옵션 기본값도 프린터에서 폴링되는 경우가 많습니다.
웹 인터페이스의 프린터 항목에 "독점 플러그인이 필요합니다"라는 문구가 있으면 HP 플러그인을 설치해야 합니다. 이를 위해, 이 프린터 항목의 "플러그인" 버튼을 클릭하거나 웹 인터페이스 첫 페이지의 "기타 설정" 아래에 있는 "전용 플러그인 설치" 버튼을 클릭하고 화면의 지침을 따르십시오.
그런 다음 PDF, PostScript, JPEG, Apple Raster 또는 PWG 래스터 파일을 인쇄하십시오.
hplip-printer-app FILE
또는 CUPS, CUPS(및 컵 검색)로 인쇄하고 이 프린터 응용 프로그램으로 설정된 프린터를 드라이버 없는 IPP 프린터(IPP Everywhere 및 AirPrint)로 검색하고 처리합니다.
보다
hplip-printer-app --help
더 많은 옵션을 확인하세요.
터미널 창에서 자세한 로깅을 위해 "-o log-level=debug" 인수를 사용하십시오.
추가적인 USB 문제 규칙을 위해 /var/snap/hplip-printer-app/common/usb/
에 파일을 추가할 수 있습니다. 새로운 규칙을 도입하기 위해 Snap이 업데이트될 때마다 교체되므로 빠른 테스트를 위해서만 기존 파일을 편집하세요.
SNMP 네트워크 프린터 검색을 구성하기 위해 /var/snap/hplip-printer-app/common/cups/snmp.conf
파일을 편집할 수 있습니다.
또한 시스템에 PAPPL, cup-filters 2.x 및 pappl-retrofit을 설치하지 않고도 "빠르고 더러운" 빌드를 수행할 수 있습니다. PAPPL의 최신 GIT 스냅샷, cup-filters의 최신 GIT 스냅샷, pappl-retrofit의 최신 GIT 스냅샷(각각의 마스터 브랜치)이 있는 디렉터리가 필요합니다. 모두 컴파일해야 하며( ./autogen.sh; ./configure; make
) 설치할 필요가 없습니다. 또한 필요한 모든 라이브러리의 헤더 파일을 설치합니다("libcups2-dev"를 설치하면 됩니다).
hplip-printer-app.c가 있는 디렉토리에서 명령줄을 실행합니다.
gcc -o hplip-printer-app hplip-printer-app.c $PAPPL_SRC/pappl/libpappl.a $CUPS_FILTERS_SRC/.libs/libppd.a $CUPS_FILTERS_SRC/.libs/libcupsfilters.a $PAPPL_RETROFIT_SRC/.libs/libpappl-retrofit.a -ldl -lpthread -lppd -lcups -lavahi-common -lavahi-client -lgnutls -ljpeg -lpng16 -ltiff -lz -lm -lusb-1.0 -lpam -lqpdf -lstdc++ -I. -I$PAPPL_SRC/pappl -I$CUPS_FILTERS_SRC/ppd -I$CUPS_FILTERS_SRC/cupsfilters -I$PAPPL_RETROFIT_SRC/pappl/retrofit -L$CUPS_FILTERS_SRC/.libs/ -L$PAPPL_RETROFIT_SRC/.libs/
Makefile도 있지만 시스템에 PAPPL, cup-filters 2.x 및 pappl-retrofit을 설치해야 합니다.
달리다
./hplip-printer-app --help
스냅되지 않은 버전을 실행하면 기본적으로 PPD 파일이 검색됩니다.
/usr/share/ppd/
/usr/lib/cups/driver/
/var/lib/hplip-printer-app/ppd/
대신 PPD_PATHS
환경 변수를 설정하여 다른 장소를 검색할 수 있습니다.
PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
간단히 콜론으로 구분된 경로 목록을 변수에 넣기만 하면 됩니다. 래퍼 스크립트를 만드는 것이 좋습니다.
HPLIP의 hpcups
드라이버에 대한 PPD 파일만 고려되며 다른 PPD 파일은 무시됩니다.
프린터는 HPLIP(USB)의 hp
백엔드 또는 HPLIP(네트워크)의 hp-probe
유틸리티를 통해서만 검색됩니다. 후자의 경우 유틸리티를 CUPS 백엔드처럼 사용할 수 있게 해주는 HP
라는 래퍼 스크립트가 포함되어 있습니다(검색 모드에만 해당). 이로 인해 특히 HP 및 Apollo 프린터만 검색됩니다. 다른 제조업체의 프린터는 지원되지 않습니다.
작업은 hpcups
를 통해 필터링되고 hp
백엔드(USB 및 네트워크 모두)를 통해 프린터로 전송됩니다.
이 프린터 응용 프로그램에서 대안으로 제공되는 표준(HPLIP 아님) 백엔드는 PAPPL이 아닌 CUPS의 백엔드입니다. 즉, USB 프린터의 경우 호환성 문제에 대한 CUPS의 USB 기발한 해결 방법이 사용되며 네트워크 프린터도 IPP, IPPS 및 네트워크 프린터와 함께 사용할 수 있습니다. LPD 프로토콜 및 SNMP 프린터 검색을 구성할 수 있습니다.
필요한 경우 /usr/share/cups/usb
및 /etc/cups/snmp.conf
파일의 USB Quirk 규칙을 편집할 수 있습니다.
HPLIP가 설치되어 있는지 확인하고 표준 백엔드, CUPS(적어도 해당 백엔드)를 사용하려는 경우.
PDF 또는 PostScript 작업을 인쇄하려면 Ghostscript도 필요합니다.
테스트 페이지 testpage.ps
에 액세스하려면 TESTPAGE_DIR 환경 변수를 사용하세요.
TESTPAGE_DIR=`pwd` PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
또는 테스트 페이지를 직접 생성하려는 경우(PostScript, PDF, PNG, JPEG, Apple Raster, PWG Raster):
TESTPAGE=/path/to/my/testpage/my_testpage.ps PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
HPLIP 프린터 응용 프로그램은 Till Kamppeter의 저작권 © 2020입니다.
이는 PAPPL을 사용하는 래스터 프린터 응용 프로그램의 첫 번째 작업 모델인 HP PCL 프린터 응용 프로그램에서 파생되었습니다. 여기에서 이용 가능합니다:
https://github.com/michaelrsweet/hp-printer-app
HP PCL 프린터 응용 프로그램의 저작권은 Michael R Sweet의 2019-2020입니다.
이 소프트웨어는 GPL2/LGPL2 소프트웨어(예: 이전 버전의 CUPS)에 대한 연결을 허용하는 것을 제외하고 Apache 라이센스 버전 2.0에 따라 라이센스가 부여됩니다. 자세한 내용은 "LICENSE" 및 "NOTICE" 파일을 참조하십시오.