An open API service indexing awesome lists of open source software.

https://github.com/hgjazhgj/printerpagecoverage

计算打印页面覆盖率 How much ink was used to print this document
https://github.com/hgjazhgj/printerpagecoverage

Last synced: 3 months ago
JSON representation

计算打印页面覆盖率 How much ink was used to print this document

Awesome Lists containing this project

README

        

# 获取文档打印时的页面覆盖率

## 运行

### 计算黑白文档

```sh
pageCoverage.py file [file ...]
```

接收至少一个参数,每个参数是一个pdf文件名
也就是说,可以在Windows资源管理器中选中所有你要统计的**pdf文件**,把它们拖到源码文件上
运行完成时,变量`ink`的数值代表使用的墨水能够涂满(100%覆盖率)的A4纸张的数量
通常,购买墨水/墨粉时会标明可打印页数,这个数值代表一个墨盒能(用单一颜色)把多少张A4普通纸以默认参数涂满5%,在现有的源码中,最后输出的三个数的前两个代表所有这些文件的平均页面覆盖率/对应多少页5%覆盖的A4纸,第三个数代表在我刚买的墨盒里这些墨水值多少钱

### 计算彩色文档

```sh
pageCoverage.py --CMYK file [file ...]
```

每个输入文件是一个分色文档(在Adobe Acrobat Pro中依次:打印-打印机-Adobe PDF-高级-输出-颜色-分色,另请选择需要的色彩配置文件)
将每页的计算结果分配到各个颜色通道上
支持更多/更少颜色以应对淡红/淡蓝/金/银等特种打印需求,`--CMYK`等价于`--ink 4 --ink-name C M Y K --ink-color 00FFFF FF00FF FFFF00 FFFFFF`

有`fromfile_prefix_chars='!'`,其他参数请查阅`--help`

## 说明

在Windows下编写与测试,mac应该也能用,Linux需要修改一些并行的实现

个人购买打印机的意义在于使得能打印的东西都可以打印出来,提高生活品质,我总是在想我到底使用了多少墨水,但是找不到一个现有的工具,虽然知道墨水用量也没什么用,顶多看看商家有没有虚标,但是我还是想知道一下
实际的打印算法非常复杂且被各种专利保护,本项目作出以下假设:

- 按文档描述的尺寸打印
- 没有打印边界
- 打印机不管理颜色
- 没有废墨

对于彩色模式,计算是精确的
对于黑白模式,本人使用CMYK四色epson打印机在普通纸上打印灰度的色情漫画,程序输出34%的页面覆盖率,标示250页的黑色墨盒在打印40页后耗尽,同时彩色墨盒大约消耗了一半(难以精确计量),理论与实践几乎完全契合
~~为什么是色情漫画?因为正常的东西可以白嫖实验室打印机~~
其他类型的文档暂无支持的计划,word等难以单凭python确定会被打印出来的内容,图片等不以页面为单位的文件需要额外的布局参数