from os import listdir
from os.path import join
import fitz,os
from PIL import Image
import shutil,timefapiao= 'D:\\python\\发票\\1'
pngs = 'D:\\python\\发票\\2'
hebing = 'D:\\python\\发票\\3'
IMAGE_width = 1050 # 新图片A4纸的大小
IMAGE_height = 1486 # 新图片A4纸的大小
IMAGE_ROW = 2 # 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN = 1 # 图片间隔,也就是合并成一张图后,一共有几列
re_width = int(IMAGE_width / IMAGE_COLUMN) # 合并后每张发票的大小
re_height = int(IMAGE_height / IMAGE_ROW) # 合并后每张发票的大小all_files = [fn for fn in listdir(fapiao)]if not os.path.exists(pngs):os.makedirs(pngs)
if not os.path.exists(hebing):os.makedirs(hebing)
for fn in all_files:# 先获取PDF信息 ,生成图片if fn.endswith('pdf'):pdf = fitz.Document(join(fapiao,fn))page = pdf[0]  # 获得每一页的对象trans = fitz.Matrix(2.0, 2.0).prerotate(0)pm = page.get_pixmap(matrix=trans, alpha=False)  # 获得每一页的流对象img_path = join(pngs,fn.replace('pdf','png'))print(img_path)pm.save(img_path) # 保存图片pdf.close()"""其它格式elif fn.endswith('jpg'):pm = Image.open(join(fapiao,fn))pm.save(join(pngs,fn.replace('jpg','png')))elif fn.endswith('png'):shutil.copy(join(fapiao,fn),join(pngs,fn))"""
k = 0png_files = [fn for fn in listdir(pngs)]
for i in range(1,len(png_files)+1):print(re_height)from_image = Image.open(join(pngs , png_files[i-1])).resize((re_width, re_height),Image.ANTIALIAS)if i % IMAGE_ROW == 1:k = k + 1filename = '%s-%s-%s-%s.png' % (time.localtime().tm_mday,time.localtime().tm_hour,time.localtime().tm_min,k)to_image = Image.new('RGB', (IMAGE_width, IMAGE_height) , '#ffffff') #创建一个新图to_image.paste(from_image, (0, re_height*(i%IMAGE_ROW)))to_image.save(join(hebing,filename))

多张图片或PDF电子发票怎么用PYTHON打印在一张A4纸上相关推荐

  1. 电子发票多页合并打印在一张纸上

    背景 平时打印发票时如果直接打印,会铺满一张A4,在贴票时需要进行折叠不太方便以及美观性不足,并且在发票多的时候还会造成纸张的浪费,怎么将多张发票打印在一张A4纸上呢? 推荐方法 1.前期准备: (1 ...

  2. 如何在一张A4纸上合并打印多张发票

    在处理日常文档时,我们经常需要合并多个PDF文件,然后在1张A4纸上多页打印.最常见的就是打印发票 现在发票大都是电子发票,但是报销时一般要求一张A4纸打印两张发票,以便节省纸张.但每次操作都很麻烦, ...

  3. 怎么在一张A4纸上打印2张发票?

    平时我们在打印发票时,直接打开会被放大到铺满整张A4纸,这样就会失真,那么应该怎么设置才能让一张A4纸上打印2张发票呢? 1.Word格式 方式1:首先新建一个Word文档后,插入2张发票,并适当排版 ...

  4. 打印pdf文件 vfp_新技能,如何将多份pdf电子发票文件合成一份文档打印

    作为一名行政人员,每个月都会有大量的发票需要处理.特别是到了年底,更是会有大量的电子发票需要存档.打印.报销等. 如果将大量的电子发票分别打印到A4纸上,会造成资源大量的浪费,不利于行政办公室节约的主 ...

  5. C#pdf电子发票转图片

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.所需要的包? 二.使用步骤 总结 前言 提示:最近对接了百旺的电子发票,有个需求是要在移动端上展示电子发票图片,结 ...

  6. pdf电子发票打印方法

    1.如下图所示,pdf版电子发票,使用极速pdf阅读器打印方式: 2.如下图所示,pdf版电子发票,使用浏览器打印方式:

  7. 如何把pdf电子发票转为excel

    如何把pdf电子发票转为excel 越来越多的发票是电子发票版,发票的收集整理就是问题.如何能转为excel? 经过一番搜索找到一个靠谱工具.不但能把发票转为excel,还能把商品明细都提取出来. 下 ...

  8. OFD、PDF电子发票同时打开预览

    跟着国家的脚本,OFD版式的电子发票已经是大势所趋,OFD电子发票带来了很多便利,例如安全.便捷等.但是需要额外安装阅读工具才可以打开它预览核对,同时市面上也还有PDF的电子发票,那每一种发票都需要配 ...

  9. 多张电子发票合并为一张A4纸大小,以便打印,节约用纸。

    在工作中经常收到许多电子发票,需要打印出来报销,每张发票都要单独占用一张A4纸,大部分的空白部分财务还会要求裁掉.很是浪费纸张. 为了解决这个问题,我写了一个小工具,可以把两张.三张发票合并到一张A4 ...

最新文章

  1. js如何动态的修改css的background-image的样式
  2. java里面怎么添加表约束_mysql给表增加约束条件
  3. 【代码笔记】iOS-屏幕旋转
  4. mysql文档摘要续4
  5. Aviator(表达式执行引擎)发布1.0.1
  6. python异步IO
  7. transform: translate()
  8. 祝心想事成无Bug,1024快乐!
  9. (转)JVM中的OopMap(zz)
  10. 截图工具:VeryCapture
  11. 计算机考研除了专业课还要学什么时候,计算机考研专业课什么时候开始看
  12. python创建一个列表、依次存放每个月对应的天数_python计算天数
  13. EB Tresos安装错误 No Package
  14. 华清远见22071班10.13
  15. android动画制作工具,一款非常好用的动画库Lottie
  16. Java前叉夹器_新手知识:为什么说公路直装夹器更好呢?
  17. 基于51单片机智能浇花自动浇水灌溉
  18. vscode EIDE 使用手册
  19. 浅谈软件设计的七大原则
  20. 用水晶报表制作张坤需要的报表格式

热门文章

  1. 一步步教你搭建LAMP架构
  2. 【无限互联】iOS开发视频教程 — 3.4 @property属性和点语法
  3. 信息安全概论作业题(精简版)
  4. LLVM是如何编译指令的
  5. python多项式回归_如何在Python中实现多项式回归模型
  6. C++ 设计模式之单例模式
  7. Linux常用的压缩和解压命令gzip,gunzip,tar,zip, unzip和bzip2,bunzip2
  8. python 表情包制作工具_python中tkinter模块制作表情包爬取工具遇到的问题
  9. 【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布
  10. SpringBoot实现微信小程序支付