安装第三方库

linux平台

sudo apt install python3-reportlab python3-pil

示例代码

import sys
from reportlab.pdfgen import canvas
from PIL import Image def imgtopdf(input_paths, outputpath):
maxw, maxh = Image.open(input_paths).size
pdf_w,pdf_h = (480.28,702.78)
c = canvas.Canvas(outputpath, pagesize=(pdf_w,pdf_h))
if maxw/pdf_w > maxh/pdf_h:
c.drawImage(input_paths,0, (pdf_h-maxh*pdf_w/maxw)/2,pdf_w,maxh*pdf_w/maxw)
else:
c.drawImage(input_paths,(pdf_w-maxw*pdf_h/maxh)/2,0,maxw*pdf_h/maxh,pdf_h)
c.showPage()
c.save() if __name__ == "__main__":
imgtopdf("test.png", "test.pdf")

1.实现了图片等比例缩小或放大到与pdf页面大小一致
2.pdf页面大小可以自定义 分别为pdf_w,pdf_h

最新文章

  1. 转载:Centos7 从零编译Nginx+PHP+MySql 序言 一
  2. Ubuntu12.04安装vscode i386
  3. Resume Hook SSDT
  4. Apache Qpid Python 1.35.0 发布
  5. 科普:什么是IPV4?什么是IPV6?
  6. JS保留两位小数 四舍五入函数
  7. ArrayList和List主要区别 就是ArrayList类型不安全。
  8. Linux文件系统的层级结构
  9. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法
  10. C#读取XML文件的五个步骤
  11. Android超精准计步器开发-Dylan计步
  12. ABP中模块初始化过程(二)
  13. 今日bug:error: invalid array assignment
  14. 删除log文件末尾中指定的行数
  15. Netty 实现HTTP文件服务器
  16. 各类nosql db的功能与性能对比
  17. appium工具 录制的方法
  18. 基于Hadoop开发网络云盘系统架构设计方案第一稿
  19. win7 64 &vs2010 与 opengl配置
  20. python入门:1-100所有数的和

热门文章

  1. docker bridge 到 k8s pod 跨节点网络通信机制演进
  2. Minio VS Ceph
  3. CentOS7添加永久路由
  4. Elastic:应用程序性能监控/管理(APM)实践
  5. Elastic: 创建一个 Elastic 邮件警报 - 7.7 发行版
  6. Prometheus告警处理
  7. Jenkins和Gitlab CI/CD自动更新k8s中pod使用的镜像说明
  8. GCN的原理及其代码实现
  9. golang的内存管理
  10. 7. url反向解析和静态文件