Как распечатать настройки принтера ipp - PullRequest
1 голос
/ 06 сентября 2011

Итак, я пытаюсь напечатать файл, сгенерированный PHP, на моем локальном хосте через код PHP.Мне сказали проверить http://www.nongnu.org/phpprintipp/, и я нашел этот код, который они заявили как простейшую настройку в своей документации.

<?php

    require_once(PrintIPP.php);

    $ipp = new PrintIPP();
    $ipp->setHost("localhost");
    $ipp->setPrinterURI("/printers/epson");
    $ipp->setData("./testfiles/test-utf8.txt"); // Path to file.
    $ipp->printJob();

?>

Как новичок, я сделал эту основную логику, посмотрев на кодвыше.Во-первых, я создаю файл .txt с помощью PHP.

Во-вторых, я создаю этот новый экземпляр класса, и поэтому объекты делают следующее: находят хост (который в моем случае является localhost, поэтомуредактировать не нужно), найдите принтер , найдите текстовый файл для печати (уже создан) и выполните задание на печать.Да, я знаю, это кажется довольно простым, но, похоже, я не могу найти URI принтера.

Как это сделать, поскольку я совершенно незнаком с этим ... Я предполагаю, что принтер должен иметь какой-то IPв localhost (не уверен).Если так, как я могу найти это?

1 Ответ

3 голосов
/ 15 августа 2012

Привет!

Я - автор PHP :: PRINT :: IPP

Вы бы лучше отправили в список рассылки (это действительноасинхронный ответ)

:)

phpprintipp@nongnu.org

  • Во-первых, я настоятельно рекомендую проверить репозиторий cvs:

    cvs -z3 -d: pserver: anonymous@cvs.savannah.nongnu.org: / sources / phpprintipp co phpprintipp

(вам нужна программа cvs)

  • автоматически находит принтеры работает только с сервером CUPS , и я не проверял в течение 3 лет:)

Если вы печатаете непосредственно в сетипринтер (без CUPS) или используйте другой сервер IPP, отличный от CUPS:

  • обратитесь к руководству вашего принтера / сервера для обработки форматов документов, которые вы хотите использовать (скорее всего, вы получите только текст/ plain и PostScript, а также в качестве опции для последнего даже на высококачественных принтерах, MIME-тип "application / octet-stream" обозначает либо ваш язык принтера (PCL, ...) - что не является стандартом для rfc2911 - или автоопределение формата документа , чтостандарт ).Вы можете запросить поддерживаемый формат документа или все характеристики принтера с помощью PHP :: PRINT :: IPP при подключении к серверу (см. Документацию на основной сайт (URI указан на этом посту)конец)

  • указывает ваш веб-браузер на IP / fqdn из ваш принтер / или сервер печати порт 631

    например:

    http:// xxx . xxx . xxx . xxx : 631
    

(IPv6-адреса тоже в порядке в php :: print :: ipp, но я никогда не пробую с веббраузер (наиболее вероятно использовать скобки [:: 1]: 631))

  • (вы находитесь в веб-браузере IP-адрес сервера: 631) проверьте наличие путей "printers", например: "/epson / "=> пути выполняются на основе" CUPS "в BasicIpp:

    public $paths = array(
      "root" => "/",
      "admin" => "/admin/",
      "printers" => "/printers/",
      "jobs" => "/jobs/"
    );
    

    => так

    $ipp->paths = array(
      "root" => "/blah/",
      "admin" => "/bluh/",
      "printers" => "/blih/",
      "jobs" => "/bloh/"
    );
    

    => наиболее вероятно" / blah / "" / blah /"" / бла / "" / бла / "для четырех путей:)

    => также может быть" / "для 4

    (" задания ")обозначает путь контроля / проверки заданий (печати) и «root», ну, если вы этого не знаете, то, скорее всего, выиспользует MS-Windows, который встроенный сервер MS-Windows IPP не будет использоваться с этой библиотекой - за исключением, может быть, текста / обычного)

примечание:Было бы здорово, если бы так можно было установить «драйвер PostScript» на сервере MS-Windows, а затем проверять обработку хотя бы формата PostScript с помощью PHP :: PRINT :: IPP или других клиентов IPP

  • (у вас в веб-браузере IP-адрес сервера: 631) проверьте ваш «printer-uri», как это сделано в настройке сервера печати. ​​

    => затем:

    $ipp->setPrinterURI($uri)
    

ПРЕДУПРЕЖДЕНИЕ => это не имеет ничего общего с

setUnix($socket = '/var/run/cups/cups.sock')

или

setHost($host = 'localhost') + setPort($port = '631')

Эти 3 последние функции дают подключение к серверу печати

  • => другой способ найти соответствующую информацию - это распечатать «страницу настройки IPP сервера / принтера» в меню принтера, которое вы найдете на (любом?) сетевом принтереаппаратное обеспечение. Остерегайтесь выбирать страницу, которая дает вам «настройку IPP» , так как большинство людей не знают об этом и прислали мне «общую информацию» или «общие настройки сети».

основной сайт (ссылки на doc, установить, что угодно ... Здесь боятся спама:)

project / cvs / news

С уважением,

TSFH

phpprintipp@nongnu.org

...