当前位置: 首页 > news >正文

汕头网站制作推荐海淀区seo搜索引擎

汕头网站制作推荐,海淀区seo搜索引擎,php网站建设论文答辩,域名注册服务机构注销域名的情形前言 主要整理记载一些python实现的小脚本,网上基本转换要会员,懒得搞了,这个一键生成,可以打包成exe文件使用 单张图片转换成pdf、图片批量转换成pdf # coding UTF-8 import os from io import BytesIO from PIL import Imag…

前言

主要整理记载一些python实现的小脚本,网上基本转换要会员,懒得搞了,这个一键生成,可以打包成exe文件使用

单张图片转换成pdf、图片批量转换成pdf

# coding = UTF-8
import os
from io import BytesIO
from PIL import Imageos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'  # 防止中文乱码
SUPPORT_SUFFIX = ["jpg", "jpeg", "png"]  # 支持的图片文件格式def pic_to_pdf(image_bytes: bytes) -> bytes:"""将单个图片转换为单张PDF:param image_bytes: 图片的bytes对象:return: PDF的bytes对象"""# 将bytes对象转换为BytesIO对象image_bytes_io = BytesIO(image_bytes)# 从内存中读取图片image_object = Image.open(image_bytes_io)# 打开内存中的文件用于保存PDFwith BytesIO() as result_bytes_io:# 将图片保存为单张PDFimage_object.save(result_bytes_io, "PDF", resolution=100.0)# 获取内存中的文件data = result_bytes_io.getvalue()# 返回PDF的bytes对象return datadef batch_convert(image_path: str, pdf_path: str) -> None:"""批量将图片转换为单张PDF:param image_path: 图片的文件夹:param pdf_path: PDF文件保存的文件夹"""# 遍历文件夹下所有文件for root, dirs, files in os.walk(image_path, topdown=False):for name in files:# 提取文件的后缀名file_suffix = os.path.splitext(name)[-1].lstrip(".").lower()# 检测该文件格式是否受到支持if file_suffix not in SUPPORT_SUFFIX:continue# 拼接出图片文件的绝对路径source_file_path = os.path.join(root, name)# 拼接出PDF文件的绝对路径target_file_path = os.path.join(pdf_path, f"{os.path.splitext(name)[0]}.pdf")# 将图片文件转换为PDF文件with open(source_file_path, "rb") as source:with open(target_file_path, "wb") as target:target.write(pic_to_pdf(source.read()))# pic_to_pdf('E:\银登中心pdf\\f1669413880707_0.jpg')
batch_convert('E:\pdf\\f1669413880707', 'E:\pdf\\f1669413880707')

多张图片合并为1个pdf文件

import os
import re
import timeimport PIL.ExifTags
import PIL.Image
from reportlab.lib.pagesizes import A4
from reportlab.lib.utils import ImageReader
from reportlab.pdfgen import canvas
from reportlab.platypus import Imagedef img_search(mypath, filenames):for lists in os.listdir(mypath):path = os.path.join(mypath, lists)if os.path.isfile(path):expression = r'[\w]+\.(jpg|png|jpeg)$'if re.search(expression, path, re.IGNORECASE):filenames.append(path)elif os.path.isdir(path):img_search(path, filenames)def img_search1(mypath, filenames):for lists in os.listdir(mypath):path = os.path.join(mypath, lists)if os.path.isfile(path):a = path.split('.')if a[-1] in ['jpg', 'png', 'JPEG']:filenames.append(path)elif os.path.isdir(path):img_search1(path, filenames)def rotate_img_to_proper(image):try:# image = Image.open(filename)if hasattr(image, '_getexif'):  # only present in JPEGsfor orientation in PIL.ExifTags.TAGS.keys():if PIL.ExifTags.TAGS[orientation] == 'Orientation':breake = image._getexif()  # returns None if no EXIF dataif e is not None:# log.info('EXIF data found: %r', e)exif = dict(e.items())orientation = exif[orientation]# print('found, ',orientation)if orientation == 3:image = image.transpose(Image.ROTATE_180)elif orientation == 6:image = image.transpose(Image.ROTATE_270)elif orientation == 8:image = image.rotate(90, expand=True)except:passreturn imagedef main(src_folder=None):output_file_name = 'E:\pdf\\f1671228232790.pdf'# save_file_name = 'ex.pdf'# doc = SimpleDocTemplate(save_file_name, pagesize=A1,#                     rightMargin=72, leftMargin=72,#                     topMargin=72, bottomMargin=18)imgDoc = canvas.Canvas(output_file_name)  # pagesize=letterimgDoc.setPageSize(A4)document_width, document_height = A4if src_folder is None:mypath = input('Input the image folder please:')else:mypath = src_folderfilenames = []start = time.perf_counter()img_search(mypath, filenames)end = time.perf_counter()print('find file cost time: ', end - start, 'find files: ', len(filenames))# for f in filenames:#     print(f)for image in filenames:try:image_file = PIL.Image.open(image)image_file = rotate_img_to_proper(image_file)image_width, image_height = image_file.sizeprint('img size:', image_file.size)if not (image_width > 0 and image_height > 0):raise Exceptionimage_aspect = image_height / float(image_width)# Determins the demensions of the image in the overviewprint_width = document_widthprint_height = document_width * image_aspectimgDoc.drawImage(ImageReader(image_file), document_width - print_width,document_height - print_height, width=print_width,height=print_height, preserveAspectRatio=True)# inform the reportlab we want a new pageimgDoc.showPage()except Exception as e:print('error:', e, image)imgDoc.save()print('Done')if __name__ == '__main__':main(src_folder='E:\pdf\\f1671228232790')
http://www.tj-hxxt.cn/news/53563.html

相关文章:

  • 网络服务系统站长之家seo综合
  • 如何利用网站模板做网站无需下载直接进入的网站的代码
  • 如何把做的网站发布到网上婚恋网站排名
  • 网站设计团队介绍全网seo是什么意思
  • 网页都有哪些抖音seo是什么意思
  • 黑龙江省建设教育信息网站百度快速收录提交工具
  • 大连模板网站制作公司seo推广教程seo高级教程
  • 厦门网站设计一般要多久太原网站排名推广
  • 网站上线前测试搜索推广渠道有哪些
  • 教育部高等学校建设中心网站外贸全网营销推广
  • 网站制作的一般步骤短视频精准获客系统
  • 政务网站优化市场营销八大营销模式
  • 中恒建设集团有限公司 网站360应用商店
  • 基于云平台网站群建设上海网络营销上海网络推广
  • 黄骅做网站的电话杭州最好的seo公司
  • 做网站 买空间网络推广的细节
  • 表示商业网站的域名泉州seo按天计费
  • 潮州市网站建设公司磁力帝
  • 个人网站建设流程图aso优化前景
  • 成都世迅网站建设简述网站建设流程
  • 网架加工厂选择徐州先禾网架聊城网站seo
  • ftp 上传网站郑州seo代理外包公司
  • 互网站开发维护成本高有哪些免费网站可以发布广告
  • 网站建设理论网站关键词推广
  • 昆明微网站哈尔滨seo服务
  • 常用动态网站开发技术有哪些网站优化设计的基础是网站基本要素及每个细节的优化
  • 和平网站建设建网站有哪些步骤
  • 中英文网站asp怎么做整合网络营销是什么
  • 梅林固件做网站长沙seo网络公司
  • 怎么做单页网站在线种子资源库