Cloud Printer:一款高扩展性PHP云小票打印SDK,轻松集成多种云打印服务

今天给大家介绍一款优秀的开源项目——Cloud Printer,它是一款高扩展性、易集成的 PHP 云小票打印 SDK,统一封装了飞鹅云、芯烨云、易联云、快递 100、映美云、佳博云、中午云、优声云等主流云打印服务,让开发者能够通过统一的 API 轻松实现各种云打印需求。

项目简介

Cloud Printer 是由 Leapfu 团队开发的一款 PHP 云打印 SDK,旨在解决开发者在对接多家云打印服务商时面临的重复开发、维护困难等问题。通过提供统一的 API 接口,屏蔽了不同厂商之间的差异,大大简化了云打印功能的集成过程。

核心特性

  1. 统一 API:屏蔽各家云打印厂商差异,一套代码适配所有支持的服务商
  2. 广泛兼容:支持飞鹅云、芯烨云、易联云、快递 100、映美云、佳博云、中午云、优声云等主流云打印服务
  3. 高度可扩展:驱动可扩展,支持自定义云打印服务
  4. 内置功能完善:内置日志、缓存功能,支持自定义实现
  5. 框架友好:兼容 Laravel、ThinkPHP 等主流 PHP 框架
  6. 易于安装:通过 Composer 一键安装,快速集成

环境要求

  • PHP >= 8.0
  • ext-json 扩展
  • Guzzle HTTP 客户端 (6.0+ 或 7.0+)
  • Monolog 日志库 (2.8.0+ 或 3.0+)
  • PSR 标准组件

安装方法

使用 Composer 可以非常方便地安装 Cloud Printer:

1
composer require leapfu/cloud-printer

快速入门

1. 初始化 SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
use Leapfu\CloudPrinter\CloudPrinter;

$config = [
// 默认打印机类型
'default' => 'feie',

// 缓存配置
'cache_path' => __DIR__ . '/../cache',

// 日志目录
'log_path' => __DIR__ . '/../logs',

// HTTP客户端配置
'http' => [
'timeout' => 30, // 请求超时时间(秒)
'connect_timeout' => 10, // 连接超时时间(秒)
'verify' => true, // 是否验证SSL证书
],

// 打印机配置
'drivers' => [
// 飞鹅云打印
'feie' => [
'user' => '', // 飞鹅云后台注册的账号
'ukey' => '', // 飞鹅云后台生成的UKEY
],

// 易联云打印
'yilian' => [
'client_id' => '', // 易联云应用ID
'client_secret' => '', // 易联云应用密钥
],

// 芯烨云打印
'xpyun' => [
'user' => '', // 芯烨云账号
'user_key' => '', // 芯烨云用户密钥
],

// 快递100云打印
'kuaidi100' => [
'key' => '', // 快递100应用key
'secret' => '', // 快递100应用密钥
],

// 更多驱动配置...
],
];

$printer = new CloudPrinter($config);

2. 执行打印操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 使用默认打印机
$result = $printer->driver()->print([
'content' => '测试内容',
'sn' => '打印机SN',
'copies' => 1
]);

// 指定打印机类型
$result = $printer->driver('feie')->print([
'content' => '内容',
'sn' => 'SN',
'copies' => 1
]);

// 直接调用打印机方法(动态代理)
$result = $printer->print([
'content' => '内容',
'sn' => 'SN',
'copies' => 1
]);

if ($result['success']) {
echo '打印成功';
} else {
echo '打印失败:' . $result['message'];
}

框架集成

Laravel 集成

  1. 自动注册(支持 Laravel Package Discovery,无需手动配置)

  2. 发布配置文件(可选):

1
php artisan vendor:publish --provider="Leapfu\\CloudPrinter\\Laravel\\CloudPrinterServiceProvider" --tag=config
  1. 门面调用:
1
2
3
4
5
6
7
use CloudPrinter;

CloudPrinter::driver()->print([
'content' => '内容',
'sn' => 'SN',
'copies' => 1
]);
  1. 容器调用:
1
2
3
4
5
6
$printer = app(Leapfu\CloudPrinter\CloudPrinter::class);
$printer->driver()->print([
'content' => '内容',
'sn' => 'SN',
'copies' => 1
]);

ThinkPHP 集成

  1. config/cloudprint.php 配置参数。

  2. 使用:

1
2
3
4
5
app('cloud_printer')->driver()->print([
'content' => '内容',
'sn' => 'SN',
'copies' => 1
]);

安全建议

  1. 敏感信息建议通过 .env 或环境变量配置,不要硬编码在代码仓库中
  2. 日志中避免输出账号、密钥等敏感数据
  3. 定期更新 SDK 版本,确保安全性

项目优势

1. 降低开发成本

通过统一的 API 接口,开发者只需学习一次就能掌握所有云打印服务商的对接方式,大大降低了学习成本和开发时间。

2. 提高代码质量

标准化的接口设计和完善的异常处理机制,有助于提高代码质量和稳定性。

3. 易于维护

当需要更换云打印服务商时,只需修改配置即可,无需改动业务代码,极大地方便了后期维护。

4. 社区支持

项目采用 MIT 开源协议,拥有活跃的社区支持,开发者可以自由地参与贡献和完善。

实际应用场景

  1. 电商平台订单打印:自动打印订单小票,提高发货效率
  2. 餐饮行业结账单:快速打印消费清单,提升客户体验
  3. 零售门店收据:标准格式收据打印,规范财务管理
  4. 物流快递面单:批量打印快递单,优化操作流程

获取帮助

结语

Cloud Printer 作为一款专业的云打印 SDK,凭借其统一的 API 设计、广泛的兼容性和良好的扩展性,在实际应用中表现出色。无论是初创公司还是大型企业,都能从中受益。

如果你正在寻找一个高效、稳定的云打印解决方案,不妨试试 Cloud Printer,相信它会成为你项目中的得力助手。


本文由 Leapfu 团队 创作,欢迎大家关注我们的开源项目,也欢迎提交 PR 或 Issue 参与共建!