本文记录了图片下载后转换成PDF的过程,期间用到了EXCEL和PYTHON,所有来源都是从网络上学习后,稍加整理并测试通过。

[阶段一:有规则的图片下载地址]

之所以用Excel下载图片,主要是电脑上没有下载工具,于是找到以下代码,并稍加修改后,就可以完成批量下载了(我们不谈速度23333)

1 Option Explicit2 Private Declare Function MakeSureDirectoryPathExists _3 Lib "imagehlp.dll"(ByVal Pfad As String) As Long4 Private Declare Function DeleteUrlCacheEntry Lib "wininet"Alias _5 "DeleteUrlCacheEntryA"(ByVal lpszUrlName As String) As Long6 Private Declare Function URLDownloadToFile Lib "urlmon"_7 Alias "URLDownloadToFileA"( _8 ByVal pCaller As Long, _9 ByVal szURL As String, _10 ByVal szFileName As String, _11 ByVal dwReserved As Long, _12 ByVal lpfnCB As Long) As Long13

14 Public Sub GetFiles()15 Const strBackup As String = "D:\poto\" ‘保存路径16 Dim arr17 Dim TargetFile As String18 Dim lngTMP, i As Long19 Dim cnt20

21 arr = Range("a1").CurrentRegion22 MakeSureDirectoryPathExists strBackup23 cnt = UBound(arr)24 For i = 2 To cnt25 TargetFile = strBackup & arr(i, 2) & ".jpg"‘A列26 Call DeleteUrlCacheEntry(arr(i, 1)) ‘B列27 lngTMP = URLDownloadToFile(0, arr(i, 1), TargetFile, 0, 0)28 DoEvents29 Application.StatusBar = "结束前请勿乱动:" & i & "/" & cnt

30 Next31

32 Application.StatusBar = cnt & "/" & cnt & " 完成。"

33 End Sub

[阶段二:将图片转PDF]

本来以为这个很容易,随便下载一个软件转换一下就行了,没想到尝试了好多软件,都需要付费,而且大多数是大于5张图片就100%需要收费了。正好最近在看python,基础语法什么的已经了解了,于是网络上搜刮了一下:

源码:

1 from PIL importImage2 importos3 importre4

5

6 def tryint(s): #将元素中的数字转换为int后再排序

7 try:8 returnint(s)9 exceptValueError:10 returns11

12 def str2int(v_str): #将元素中的字符串和数字分割开

13 return [tryint(sub_str) for sub_str in re.split(‘([0-9]+)‘, v_str)]14

15 def sort_humanly(v_list): #以分割后的list为单位进行排序

16 return sorted(v_list, key=str2int)17 defrea(path, pdf_name):18 file_list =os.listdir(path)19 pic_name =[]20 im_list =[]21 for x infile_list:22 if "jpg" in x or ‘png‘ in x or ‘jpeg‘ inx:23 pic_name.append(x)24

25 pic_name=sort_humanly(pic_name)26 print(‘---‘)27 print(pic_name)28 new_pic =[]29

30 for x inpic_name:31 if "jpg" inx:32 new_pic.append(x)33

34 for x inpic_name:35 if "png" inx:36 new_pic.append(x)37

38 print("hec", new_pic)39

40 im1 =Image.open(os.path.join(path, new_pic[0]))41 new_pic.pop(0)42 for i innew_pic:43 img =Image.open(os.path.join(path, i))44 #im_list.append(Image.open(i))

45 if img.mode == "RGBA":46 img = img.convert(‘RGB‘)47 im_list.append(img)48 else:49 im_list.append(img)50 im1.save(pdf_name, "PDF", resolution=100.0, save_all=True, append_images=im_list)51 print("输出文件名称:", pdf_name)52

53

54 if __name__ == ‘__main__‘:55

56 mypath = input("输入文件路径>")57 pdf_name = mypath + r‘\result.pdf‘

58 if ".pdf" inpdf_name:59 rea(mypath, pdf_name=pdf_name)60 else:61 rea(mypath, pdf_name="{}.pdf".format(pdf_name))

这里面涉及一个排序问题,就是1.JPG、2.JPG、10.JPG等,用了默认的.sort之后,排序是1.JPG、10.JPG、2.JPG。有点问题,于是又重新找了一个排序放上去就正常了,特别网上分享经验的各位Up主。下面就是这个神奇的排序:

1 def tryint(s): #将元素中的数字转换为int后再排序

2 try:3 returnint(s)4 exceptValueError:5 returns6

7 def str2int(v_str): #将元素中的字符串和数字分割开

8 return [tryint(sub_str) for sub_str in re.split(‘([0-9]+)‘, v_str)]9

10 def sort_humanly(v_list): #以分割后的list为单位进行排序

11 return sorted(v_list, key=str2int)

资源来源网上,为个人整理,欢迎大家提意见~!!!

python批量图片转pdf_批量将多个图片转PDF的记录相关推荐

  1. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...

    在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...

  2. python怎么批量下载图片_怎样批量下载在线图片?

    原标题:怎样批量下载在线图片? 大家早啊,我是云景,以前分享过很多关于批量下载图片的技巧,有使用插件程序的,有使用工具的. 之前也教过大家怎么使用F12开发者 今天给大家分享的是,使用Python来批 ...

  3. Python图片相册批处理器的设计与实现批量添加图片水印、批量命名等功能

    课题研究使用Python语言开发一个包含批量添加图片水印.批量命名等功能的图片批处理程序,功能模块大概包含以下模块: (1)首页模块:首页是整个软件的初始页面,包含用户登录.注册.关于本软件等功能,用 ...

  4. python查找图片区域_python批量识别图片指定区域文字内容

    python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...

  5. python批量生成图片_python图像处理-批量生成纯色图片

    前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 上一 ...

  6. python添加图片水印_python 批量添加图片水印

    python程序,用来批量添加图片水印.输入一个文件夹.水印位置(左下角.底部中间.右下角).用户名(用户名是中文的),批量给文件夹里所有的jpg和png图片在指定位置添加水印. 水印内容是:用户名 ...

  7. Python 批量读取多个文件夹下的图片

    对不同文件夹下的特定图片进行处理 import cv2 import ospath = "F:\pycharm project\de\su" # path必须是英文 for fil ...

  8. python批量新建文件_python批量处理

    python opencv图像二值化批量处理 from skimage import data_dir,io,transform,color,filters import numpy as np im ...

  9. 使用python搭配pandoc实现html批量转word

    使用python搭配pandoc实现html批量转word 好兄弟工作上有一批(5000+)html的文档需要转成word格式,他采用了两种实现方式,但都有些问题: 直接改后缀有些会乱码 --> ...

最新文章

  1. 小程序 常用快捷键
  2. 引入sentinel后,json转化异常
  3. JMeter - 如何创建可重用和模块化测试脚本
  4. div中iframe高度自适应问题
  5. 2021年周边游数据报告
  6. SSM框架笔记09:初探Spring——采用Java配置方式
  7. 软件测试面试-测试的目的是什么?【高频】
  8. Spring Cloud教程 (二)应用程序上下文服务层次结构
  9. 微信开发者工具在线调试
  10. BP神经网络原理和算法推导流程(吴恩达机器学习)
  11. Computer:编程入门的简介相关的一些概念解释之详细攻略
  12. 在32bit操作系统下用好4GB物理内存
  13. appcan注册功能php,appcan是什么
  14. wireshark常用筛选命令
  15. 符号常量和常变量的区别
  16. php获取拼音首字母排序,php 如何获取字符串拼音首字母 - strtoupper
  17. python读取webp格式图像
  18. Windows电脑垃圾清理 - 如何删除临时文件(Temp文件夹)
  19. 【c语言】字符串比较
  20. Python分析《哈哈哈哈哈》第11期弹幕数据

热门文章

  1. 钉钉企业内部机器人开发——绑定群聊信息到机器人
  2. 创建oracle的tablespace
  3. FPGA:设计一个原码一位乘法器
  4. PS小技巧之完美抠图
  5. Xshell7连接VirtualBox虚拟机
  6. 天津工业大学计算机研究生专业课,【计算机考研】院校信息-天津工业大学
  7. 英文参考文献标准格式:论文参考文献格式规范(转载)
  8. UndeclaredThrowableException 详解
  9. 虚拟机安装Ubuntu时界面显示不全
  10. 江西省中职计算机简答题,江西省中等职业学校第八届技能竞赛节计算机类专业竞赛模拟试题(CAD、CAM软件应用)...