• Home
Name Date Size #Lines LOC

..--

etc/init/12-May-2024-382209

figures/12-May-2024-

frameworks/12-May-2024-9,0716,716

interfaces/kits/12-May-2024-3,6042,591

profile/12-May-2024-3330

services/12-May-2024-4,3383,591

test/12-May-2024-11,9387,289

utils/include/12-May-2024-366251

.gitignoreD12-May-202415 32

LICENSED12-May-20249.9 KiB177150

OAT.xmlD12-May-20244 KiB6714

README.mdD12-May-2024960 3825

README_ZH.mdD12-May-20243.7 KiB7546

bundle.jsonD12-May-20243.2 KiB105104

hisysevent.yamlD12-May-20244.6 KiB11991

print.gniD12-May-2024962 2723

README.md

1# Print Framework
2
3
4#### Description
5{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
6
7#### Software Architecture
8Software architecture description
9
10#### Installation
11
121.  xxxx
132.  xxxx
143.  xxxx
15
16#### Instructions
17
181.  xxxx
192.  xxxx
203.  xxxx
21
22#### Contribution
23
241.  Fork the repository
252.  Create Feat_xxx branch
263.  Commit your code
274.  Create Pull Request
28
29
30#### Gitee Feature
31
321.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
332.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
343.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
354.  The most valuable open source project [GVP](https://gitee.com/gvp)
365.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
376.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
38

README_ZH.md

1# 打印框架<a name="ZH-CN_TOPIC_0000001124232845"></a>
2
3-   [简介](#section11660541593)
4-   [目录](#section161941989596)
5-   [约束](#section119744591305)
6-   [说明](#section1312121216216)
7-   [相关仓](#section1371113476307)
8
9## 简介<a name="section11660541593"></a>
10
11打印框架支持三方应用创建打印任务,拉起后台打印任务管理,管理打印扩展和打印任务。
12提供打印扩展框架,实现三方打印扩展的接入,管理打印任务与打印机之间的关系,启动、取消打印任务,查询打印进度等。
13
14逻辑流程如下:
15
16首先,打印请求到打印框架,再从打印系统框架发送到打印预览界面(PrintSpooler),拉起打印预览界面到应用层。由PrintSpooler向打印服务(PrintSA)发送开启发现能力指令,再由PrintSA向打印扩展接口(PrintExtension)发送开启发现能力指令,然后PrintExtension向第三方打印扩展接口(CustomPrintExtension)发送开启发现能力发现打印机。CustomPrintExtension向打印服务(PrintServiceAbility)上报发现打印机信息并返回到PrintSpooler。由打印预览界面(PrintSpooler)发送打印任务到打印服务(PrintServiceAbility),再发送到打印扩展(PrintExtension),之后发送给第三方打印扩展(CustomPrintExtension),再发送给打印机。
17
18**图 1**  部件架构图<a name="fig371116145419"></a>
19
20![](figures/print-architecture.png)
21
22
23## 目录<a name="section161941989596"></a>
24
25```
26foundation/print_print_fwk        #打印框架
27├── frameworks
28│   └── innerkitsimpl             # Native接口
29    └── kits\extension            # 打印扩展管理
30├── interfaces\kits               # 接口层代码
31│   └── jsnapi
32        └── extension             # 管理扩展生命周期接口
33        └── extensionctx          # 管理扩展上下文
34│   └── napi                      # JavaScript接口
35├── services                      # 服务层代码
36└── test                          # 测试用例资源
37```
38
39## 约束<a name="section119744591305"></a>
40
41-   如需使用打印框架完整功能,需要申请code ohos.permission.PRINTohos.permission.MANAGE_PRINT_JOB权限。
42
43## 说明<a name="section1312121216216"></a>
44部件内子模块职责说明:
45
46-   **打印管理(Print NAPI)**
47
48     对接打印应用的JS API,负责创建打印任务,监听打印任务状态变化等接口的实现
49
50-   **打印管理(InnerPrint NAPI)**
51
52     对接打印后台管理应用、三方打印扩展的内部JS API,负责打印机发现、预览、启动打印、监听打印机、打印任务状态变化等接口的实现
53
54-   **打印管理客户端(Print Manager Client)**
55
56    负责打印服务在客户端的接口实现,对外(JS应用或者Native应用)提供统一的打印服务能力
57
58- **打印管理服务端(Print Manager Server)**
59
60    对接打印管理,接受应用的打印任务相关请求,执行权限校验,并拉起后台打印任务管理;管理系统中打印扩展。包括打印扩展的新增、移除、修改属性(已安装的、默认的、当前使用的)、查询状态、监听变化等;管理打印任务队列。包括:打印格式化数据的传递、打印任务的数据缓存等;对接使用中的打印扩展,分发和管理打印任务
61
62- **打印拓展(Print Extension)**
63
64    打印扩展部分需要三方厂商定制
65
66- **三方打印扩展(Custom Print Extension)**
67
68    打印机厂商实现具体打印功能提供
69
70- **打印后台管理应用(Printspooler)**
71
72    系统打印管理应用
73
74## 相关仓<a name="section1371113476307"></a>
75