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

https://github.com/meng89/wpi

Windows Printer Installer
https://github.com/meng89/wpi

automatic install printer python windows

Last synced: 8 months ago
JSON representation

Windows Printer Installer

Awesome Lists containing this project

README

          

Windows Printer Installer
=========================

WPI 是一个使用 Python 3 编写,在 Windows 下使用的,安装非本地打印机 (包括驱动,端口) 的工具。

如果你想运行一下程序就自动安装好多个 *共享的* 打印机或 *TCPIP* 打印机,这个程序就是你要找的。

通过 Resilio Sync (原 BitTorrent Sync) 直接获取独立程序
=============================================

如果你只想获取独立的程序,那么需使用 Resilio Sync 同步以生成好的程序。

Resilio Sync 下载地址:

https://www.resilio.com/platforms/desktop/

同步密钥:

BQ5LNWA34LIG3ETZMJ73ZEGMBW4P2WX24

通过 Python 模块方式安装
================

先安装 `Python 3 `_ (建议选择的 32位 3.4 版),安装时注意勾选 pip 组件。

然后手动下载安装相应版本的 `pywin32 `_

再以管理员管理员权限运行:
::

pip install wpi

完成安装后,wpi 应该就可以直接在命令行下运行了。

注:为了解压在压缩包里的驱动,应当下载安装 `7-Zip `_ ,
如果想把 wpi 打包成可以多系统下执行的独立程序,应当安装32位的 7-Zip

生成独立的程序
-------

如果想在没有 Python 环境的系统下运行,得把 Python 环境和 wpi 及其依赖的模块打包在一起。
先安装 Pyinstaller:
::

pip install pyinstaller

然后运行 wpi 的打包命令:
::

wpi2exe

这样会生成独立的 exe 文件, wpi2exe 使用 *LOCALAPPDATA%\\wpi2exe\\config.py* 作为配置文件,如果此文件不存在,*wpi2exe* 会自动创建它。
可以编辑它以设置输出目录等。正如后缀名所示,此配置文件是一个 Python 脚本。

参数用法
====
命令行参数的定义类似 Python 函数。

具名参数运行例子:
::

wpi ps=my_printers.py drivers=my_drivers_dir

参数 ps
-----
*ps* 用来指定一个已定义了打印机列表的文件。

参数 drivers
----------
*drivers* 用来指定驱动程序的总目录。

不提供参数时程序运行的方式
-------------
当没有提供 *ps* 时,程序会使用 *默认资源目录* 下的 *ps.py* 文件作为默认打印机列表文件以直接安装打印机, 如果不存在则会进入 *交互模式*。

当没有提供 *drivers* 时,程序会使用 *默认资源目录* 下的 *drivers* 目录作为默认参数。

默认资源目录在哪?
---------

以独立程序运行时,默认资源目录既是程序所在的目录。

以模块脚本方式运行程序时,默认资源目录是 *%LOCALAPPDATA%\\wpi* 。

%LOCALAPPDATA% 在哪?
``````````````````
它是一个环境变量,如果你的账户名是 *韩梅梅*,而且系统是 Windows 7 的话,
那么 *%LOCALAPPDATA%* 可能就是: *C:\\Users\\韩梅梅\\AppData\\Local\\*

交互式界面的用法
========
提示输入时,可以直接输入 ps 文件的路径,或输入 m/l 命令(见下面的作用说明),退出时用 q 命令。

m 命令
----

1. 创建样例打印机列表文件
``````````````
会在 *默认资源目录* 里创建名为 *_ps.py* 的样例打印机列表文件以作为编写打印机列表文件时的参考。

2. 创建供存放打印机驱动的目录结构
``````````````````
会在 *默认资源目录* 里创建名为 *drivers* 的目录和以 *系统位数*,*发行版本* 为名的子目录。

你应该把驱动程序包根据适用情况,放在合适的目录里。

驱动程序包裹可放置在特定的发行版本目录下,也可放置在上一级,这样就表示这个驱动可用于多系统。

下载的驱动文件只要是 7-Zip 可以解包(解压)的文件就无需手动解包。程序会自动寻找包裹里的 inf 文件并比较在打印机列表文件里给定的驱动名,符合就会使用此包裹里的这个 inf 文件。
包裹里的 inf 文件只能在第一级包裹里,举个反例: 把 inf 打包为包裹1,然后把包裹1再打包成包裹2。这样的情况下程序就找不到 inf 文件了,因为包裹2的文件列表里无 inf 文件!

l 命令
----
列出 包裹文件里的inf文件 或 inf文件里 的驱动名。