찾다

 >  Q&A  >  본문

php_printer 확장자를 php에 추가해도 아무런 효과가 없습니다

최근에 PHP를 사용하여 프린터에 연결하고 몇 단계를 수행했지만 아무 일도 일어나지 않았습니다. 이유를 찾는 데 도움을 주세요.

  1. 저는 php7.25+Apache 버전을 사용하고 있습니다. 최신 버전의 php_printer.dll.

  2. 을 다운로드한 후 파일의 압축을 풀고 php7.25 버전 디렉터리에 넣습니다: E:phpStudyphpphp-7.2.5ext

  3. php.ini를 수정하려면 가장 좋은 것을 추가했습니다. 문장: 확장자= php_printer.dll. 그런 다음 서버를 저장하고 다시 시작하십시오.

  4. PHP에서 사용:

    $handle = Printer_open("ZDesigner 105SL 203DPI");

    오류 직접 보고: 치명적인 오류: 잡히지 않은 오류: E:phpStudyWWWtest1.php에서 정의되지 않은 함수인 print_open() 호출:3 스택 추적: 3번째 줄의 E:phpStudyWWWtest1.php에 #0 {main}이 발생했습니다

青松哥青松哥2070일 전1809

모든 응답(3)나는 대답할 것이다

  • 秋香姐家的小书童

    秋香姐家的小书童2019-03-31 11:39:50

    1. 요구 사항

    PHP 제어를 사용하여 프린터에 연결

    동적 데이터의 현장 실시간 연속 인쇄

    2. 구성

    php 운영 환경이 올바르게 설치되어 있습니다(Apache|Nginx + PHP)

    PHP 버전에 해당하는 php_printer.dll 확장자를 다운로드하세요.

    ext 디렉터리에 확장 파일을 추가하세요

    php.ini를 편집하고 확장명을 추가하세요=php_printer.dll;

    3. 기본 코드 구조:

    <?php$handle = printer_open('printer name');
    printer_start_doc($handle, "doc name");
    printer_start_page($handle);
    printer_set_option($handle, PRINTER_MODE, "RAW");//具体的打印部分printer_end_page($handle);
    printer_end_doc($handle);
    printer_close($handle);?>
    .

    위는 기본 코드 구조입니다.printer_start_doc,printer_start_page를 지정하지 않으면 프린터가 인쇄하지 않습니다.

    2. 텍스트 및 그래픽의 특정 인쇄 방법 소개

    프린터 초기 설정: 프린터_세트_옵션 인쇄 모드, 문서 제목, 인쇄 매수, 용지 형식 등을 설정할 수 있습니다. 프린터_세트_옵션 문서를 참조하세요.

    글꼴 만들기: $font = Printer_create_font('simsun', 글꼴 높이, 글꼴 너비, 글꼴 두께, 이탤릭체 여부, 밑줄 추가 여부, 취소선 추가 여부, 방향);

    텍스트를 인쇄하기 전에 먼저 글꼴을 선택해야 합니다.

    하드웨어를 다루기 위해 서버 측의 약한 타입의 스크립트 언어를 사용하는 것은 원래 사소한 일이고 그 과정에서 많은 어려움이 있습니다.

    Windows에서 구성을 시작한 서버는 Apache였습니다. 인쇄할 때 항상 일반 크기로 인쇄할 수 없고 항상 세 페이지를 연속으로 인쇄했습니다. 나중에 스크립트를 실행하기 위해 명령줄에서 직접 php 명령을 사용했더니 정상적으로 인쇄가 됐는데, 결국 아파치 서비스 실행 권한이 일반 사용자로 바뀌고 슈퍼 관리자로 바뀌었거나, 최고 관리자로 로그인할 수 있습니다.

    글꼴, 일부 프린터에는 해당 클라이언트 소프트웨어가 함께 제공됩니다. 그러나 PHP를 사용하여 프린터 소프트웨어를 제어하는 ​​것은 쓸모가 없으므로 글꼴을 만드는 것은 함정입니다. 글꼴 이름의 경우 먼저 Windows 글꼴 폴더에서 해당 텍스트를 찾은 다음 속성을 마우스 오른쪽 버튼으로 클릭하여 이름을 확인해야 합니다. 첫 번째 매개변수로 Printer_create_font를 채웠습니다. 그러나:

    일부 중국어 글꼴 유형은 제대로 표시되지 않습니다. 현재까지는 해결책이 없습니다. 프린터의 메모리가 제한되어 있어 모든 글꼴 파일을 저장할 수 없는 것일 수 있습니다.

    글꼴을 만들려면 너비와 높이를 지정해야 하는데 너비와 높이의 단위가 무엇인지 모르기 때문에 직접 해볼 수밖에 없습니다.

    마찬가지로 문제의 위치를 ​​지정하려면 x y 위치 좌표 값이 필요합니다. 대각선을 그리는 방법은 Printer_draw_line 이며, 높은 비율 계산에 따라 대각선을 그릴 수 있습니다.

    중국어 왜곡 문자가 인쇄됩니다. 이유: 양식을 사용하여 제출된 데이터는 UTF-8로 인코딩되어 있으며, 프린터는 반드시 UTF-8로 인코딩되지는 않습니다. 인코딩 형식을 변환하려면 설명서를 참조해야 합니다.

    수십, 수백 개의 창을 계속해서 인쇄하다 보니 블루 스크린 스멕타가 죽었습니다. 결국은 아파치 프로세스의 문제입니다. 인쇄할 때마다 프로세스가 생성되지만, 아파치의 프로세스 재활용이 시기 적절하지 않은 것 같습니다. 결국 시스템이 직접적으로 이러한 구성을 변경하려고 합니다. 최대 연결 수는 영향을 미치지 않습니다. 최종 해결 방법: Nginx 서버를 교체하면 문제가 해결됩니다.


    회신하다
    0
  • 秋香姐家的小书童

    秋香姐家的小书童2019-03-31 11:39:13

    PHP에서 프린터를 운영하는 것이 JS를 직접 사용하는 것이 더 좋지 않을까요?

    회신하다
    0
  • 취소회신하다