Python使用扩展库pywin32实现批量文档打印实例

本文代码需要正确安装Python扩展库pywin32,建议下载whl文件进行离线安装。然后调用win32api的ShellExecute()函数来实现文档打印,系统会根据文档类型自动选择不同的软件进行打开并自动打印,如果要打印的是图片的话,需要手工确认一下。

关于ShellExecute()函数的参数含义请查阅Windows API或pywin32帮助文档。

import win32print
import win32api

for fn in ['1.txt', '2.txt', '3.txt', '4.docx']:
 win32api.ShellExecute(0,\
   'print',\

   fn,\
   win32print.GetDefaultPrinterW(),\
   ".",
  0)

补充知识:Python-EXECL批量打印

python版本为2.7

要用到的Python库:pywin32(pip install pywin32)

#coding=UTF-8
#-*-conding : gb2312 -*-

import os
import win32com.client
import win32api
import time

dir_name = r'C:\Users\Administrator\Desktop\sqqk' #文件路径
file_name=os.listdir(dir_name)  #路径下文件名称
file_dir =[os.path.join(dir_name,x) for x in file_name] #得到文件路径

b=len(file_dir)
i = 0
while i <= len(file_dir):
 xlApp = win32com.client.Dispatch('Excel.Application') #打开 EXCEL ,这里不需改动
 xlApp.Visible = 0   #不在后台运行
 xlApp.EnableEvents = False
 xlApp.DisplayAlerts = False  #显示弹窗
 xlBook = xlApp.Workbooks.Open(file_dir[i])
 xlApp.ActiveWorkbook.Sheets(1).PageSetup.Zoom = False
 xlApp.ActiveWorkbook.Sheets(1).PageSetup.FitToPagesWide = 1
 xlApp.ActiveWorkbook.Sheets(1).PageSetup.FitToPagesTall = 1
 #xlBook.Save()   #保存
 ename = xlApp.ActiveWorkbook.name  #获取打开工作表名称

 xlBook.PrintOut(1,1,)   #打印页数1到1
 xlApp.quit()   #退出
 print ename,"%d%%" %(((i+1.0)/b)*100.0)  #打印出打开工作表名称和当前百分比进度
 time.sleep(6)
 i = i + 1

以上这篇Python使用扩展库pywin32实现批量文档打印实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-04-08

python和pywin32实现窗口查找、遍历和点击的示例代码

Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等. 1.通过类名和标题查找窗口句柄,并获得窗口位置和大小 import win32gui import win32api classname = "MozillaWindowClass" titlename = "百度一下,你就知道 - Mozilla Firefox" #获取句柄 hwnd = win32gui.Fin

Python如何操作office实现自动化及win32com.client的运用

应用背景 工作中,由于需要出定期的report,需要用到office,主要是要用到excel表格,然后给各个team或者boss发email report.这里边就包含了不少重复性的工作,工作中常常有一个固定的模板来出report,而每次只需将相关的数据手动导入,如果将这些重复性的动作,实现自动化,无疑可以省去不少功夫.于是我就想到了用python来实现自动化生成表格.今天介绍的只是一部分,主要是excel表格自动修改生成. 似乎是一个很简单的活,调用常用的与excel相关的python模块xl

Python打印输出数组中全部元素

学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序. 因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或print函数可以答应出数组中的每个元素: 如果数组的容量过大,只能打印出数组的部分元素,打印结果只包含开始部分元素和结尾部分元素,中间元素省略.省略的部分不利于程序的调试: 因此,为了方便调试程序,需要将数组中的元素全部打印出来. 1. 少量元素情况 #打印数组中的元素 import numpy

python输出数组中指定元素的所有索引示例

如下所示,代码为: array也可直接使用上面代码.测试如下: 以上这篇python输出数组中指定元素的所有索引示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

python 统计数组中元素出现次数并进行排序的实例

如下所示: lis = [12,34,456,12,34,66,223,12,5,66,12,23,66,12,66,5,456,12,66,34,5,34] def test1(): #进行去重 c = [] for i in lis: if i not in c: c.append(i) #进行统计,生成二维列表 b = [] for i in c: num = 0 for j in range(len(lis)): if lis[j] == i: num += 1 a = [] a.app

Python查找数组中数值和下标相等的元素示例【二分查找】

本文实例讲述了Python查找数组中数值和下标相等的元素.分享给大家供大家参考,具体如下: 题目描述: 假设一个单调递增的数组中的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如在数组[-3,-1,1,3,5]中,3和他的下标相等. 采用二分查找:如果数组中的数字小于下标,由于下标是-1的递减数列,但是数组中的元素差值大于等于-1,因此左边的不可能等于下标.如果数组中的数字大于下标,同理,之后的数字肯定都大于下标,往左边查找. 算法示例: # -*-

用python一行代码得到数组中某个元素的个数方法

想法由来 今天写代码过程中遇到一个需求,计算一个list中数值为1的元素的个数,其中这个list的元素数值不是为0就是为1. 一开始想到的是写个方法来计算: # 返回一个0,1数组中1的数量 def num_one(source_array): count = 0 for x in source_array: if x == 1: count += 1 return count 嗯好吧,然后觉得这是最low的方法了,就在想强大的python可不可以一行代码就做到以上的效果,然后发现真的可以. c

python如何获得list或numpy数组中最大元素对应的索引

获得list中最大元素的索引 aa = [1,2,3,4,5] aa.index(max(aa)) 相应的最小值使用 aa = [1,2,3,4,5] aa.index(min(aa)) 获得numpy数组中最大元素的索引 1.可以使用numpy的函数,argmax获得最大元素的索引,相应的获得最小值的话需要使用argmin. aa = [1,2,3,4,5] arr_aa = np.array(aa) maxindex = np.argmax(arr_aa ) 1.也可以将numpy转为lis

利用python查看数组中的所有元素是否相同

不知道大家有没有过这种经历,就是想要判断两个数组运算后得到的新数组中的各个元素值是否相同.这里给出一种使用np.unique()的方法,代码如下: import numpy as np class Debug: @staticmethod def isAllElementSame(): x1 = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]]) x2 = np.array([[81., 162., 243., ], [243., 324., 405.], [

对python numpy数组中冒号的使用方法详解

python中冒号实际上有两个意思:1.默认全部选择:2. 指定范围. 下面看例子 定义数组 X=array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]) 输出为5x4二维数组 第一种意思,默认全部选择: 如,X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素 第二种意思,指定范围,注意这里含左不含右 如,X[:, m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右

python 寻找list中最大元素对应的索引方法

如下所示: aa = [1,2,3,4,5] aa.index(max(aa)) 如果aa是numpy数组: aa = numpy.array([1,2,3,4,5]) 先把aa转换为List,再求索引: bb = aa.tolist() bb.index(max(bb)) 以上这篇python 寻找list中最大元素对应的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

python numpy数组中的复制知识解析

这篇文章主要介绍了python numpy数组中的复制知识解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 vector = numpy.array([5, 10, 15, 20]) equal_to_ten_or_five = (vector == 10) | (vector == 5) vector[equal_to_ten_or_five] = 50 print(vector) 第一次看到这个的时候一脸懵逼,后来分析了下懂了下面记录下,