phatkoala / printnode

PrintNode的PHP API库 - 适用于Web应用的远程打印

2.0.0 2023-01-26 12:01 UTC

This package is auto-updated.

Last update: 2024-09-26 15:45:57 UTC


README

变更日志

版本 2.0

  • 移除composer.lock文件(感谢 toooni
  • 修改symfony/http-client版本约束(感谢 toooni
  • 实现从pdf源打印(感谢 toooni

版本 1.0

  • 初始发布

关于

PHP 7.1 API库用于PrintNode - Web应用的远程打印 https://www.printnode.com/

$printNode = new PrintNode(string $auth);

账户信息

我是谁?

// GET /whoami
$printNode->getWhoAmI(); // returns WhoAmIResponse

电脑

查看

// GET /computers
$printNode->getComputers(); // returns ComputersResponse

// GET /computers/COMPUTER SET
$printNode->getComputer(int $computer); // returns ComputerResponse

移除

// DELETE /computers
$printNode->deleteComputers(); // returns DeleteConfirmationResponse

// DELETE /computers/COMPUTER SET
$printNode->deleteComputers(int|array $computers); // returns DeleteConfirmationResponse

打印机

查看

// GET /printers
$printNode->getPrinters(); // returns PrintersResponse

// GET /printers/PRINTER SET
$printNode->getPrinter(int $printer); // returns PrinterResponse

// GET /computers/COMPUTER SET/printers
$printNode->getComputerPrinters(int $computer); // returns PrintersResponse

// GET /computers/COMPUTER SET/printers/PRINTER SET
$printNode->getComputerPrinter(int $computer, int $printer); // returns PrinterResponse

移除

// DELETE /printers
$printNode->deletePrinters(); // returns DeleteConfirmationResponse

// DELETE /printers/PRINTER SET
$printNode->deletePrinters(int|array $printers); // returns DeleteConfirmationResponse

// DELETE /computers/COMPUTER SET/printers
$printNode->deleteComputerPrinters(int $computer); // returns DeleteConfirmationResponse

// DELETE /computers/COMPUTER SET/printers/PRINTER SET
$printNode->deleteComputerPrinters(int $computer, int|array $printers); // returns DeleteConfirmationResponse

打印作业

创建

// GET /printjobs
$printJobFile = $printNode->createPrintJobFile(int $printer, string $title, string $source); // returns PrintJobFile
$printJobFile->send('path/to/file.pdf'); // returns Print Job ID

$printJobFile = $printNode->createPrintJobPdfSource(int $printer, string $title, string $source); // returns PrintJobFile
$printJobFile->send($pdfSource); // returns Print Job ID

$printJobUrl = $printNode->createPrintJobUrl(int $printer, string $title, string $source); // returns PrintJobUrl
$printJobUrl->send('https://www.domain.com/path/to/file.pdf'); // returns Print Job ID

查看

// GET /printjobs

// GET /printjobs/PRINT JOB SET

// GET /printers/PRINTER SET/printjobs

// GET /printers/PRINTER SET/printjobs/PRINT JOB SET

移除

// DELETE /printjobs

// DELETE /printjobs/PRINT JOB SET

// DELETE /printers/PRINTER SET/printjobs

// DELETE /printers/PRINTER SET/printjobs/PRINT JOB SET

状态

// GET /printjobs/states

// GET /printjobs/PRINT JOB SET/states

比例

HTTP REST

// GET /computer/COMPUTER ID/scales

// GET /computer/COMPUTER ID/scales/DEVICE NAME

// GET /computer/COMPUTER ID/scale/DEVICE NAME/DEVICE NUMBER

测试

// PUT /scale

账户管理

创建

// POST /account
$newAccount = $printNode->createAccount('email@domain.com', 'my-passw0rd'); // returns ChildAccountRequest
$newAccount
  ->setCreatorRef('my-unique-reference')
  ->addTag('likes', 'dogs')
  ->addTags([
      'eats' => 'pie',
      'plays' => 'football',
  ])
  ->removeTag('eats')
  ->addApiKey('development')
  ->addApiKeys([
      'staging',
      'production',
  ])
  ->removeApiKey('development');
  
$newAccount->send(); // returns ChildAccountResponse

修改

// PATCH /account

挂起和激活

// PUT /account/state
$childAccount = $printNode->getChildAccount($id); // returns PrintNode
$childAccount->suspend();
$childAccount->activate();

删除

// DELETE /account
$childAccount = $printNode->getChildAccount($id); // returns PrintNode
$childAccount->delete();

控制

$childAccount = $printNode->getChildAccount($id); // returns PrintNode
// or
$childAccount = $printNode->getChildAccount($email, PrintNode::$CHILD_AUTH_BY_EMAIL); // returns PrintNode
// or
$childAccount = $printNode->getChildAccount($creatorRef, PrintNode::$CHILD_AUTH_BY_CREATOR_REF); // returns PrintNode

标签

// POST /account/tag/NAME

// GET /account/tag/NAME

// DELETE /account/tag/NAME

API密钥

// POST /account/apikey/DESCRIPTION

// GET /account/apikey/DESCRIPTION

// DELETE /account/apikey/DESCRIPTION

客户端下载

$clientKey = $childAccount->getClientKey($uuid, $edition, $version); // returns string 

其他

Ping

// GET /ping
PrintNode::ping(); // returns true/false

Noop

// GET /noop
$printNode->noop(); // returns true/false