pdf转图片 缩印的那种 特征明显的

在这里插入图片描述
要得呢就是左边的这种。缩小版的
    


原意呢是从pdf里面找表格,流程图,
原来的代码是pdf转图片(默认是1654x2339 pixels,这块原来也不知道能调整),然后从图片上用滑窗,svm,图像金字塔,NMS等技术把流程图,表格那块截下来,,呃呃呃,扯远了。。。。。。好像和标题没有关系。。。。。。

images = convert_from_path(temp, dpi=9)

这个dpi默认是200,转化出来的就是1654x2339,一个屏幕放不开,,,,,等于9时就是这么大
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
你看特征很明显,,,,要是把1654x2339这个图片缩小的话,就很不明显,结果完全不一样

总的代码是:(这个有我环境,需求的影响,有的地方看起来没有必要,)

# 将pdf文件弄成图片,每一页

from PyPDF2 import PdfFileReader, PdfFileWriter
from pdf2image import convert_from_path, convert_from_bytes
import os
import tempfile
import cv2
import re
def split_pdf(infile, out_path, temp):
    """
    :param infile: 待拆分的pdf文件
    :param out_path: 拆分成单页的pdf文件的存储路径
    :return: 无
    """
    if not os.path.exists(out_path):
        os.makedirs(out_path)
    with open(infile, 'rb') as infile:

        reader = PdfFileReader(infile)
        number_of_pages = reader.getNumPages()  #计算此PDF文件中的页数

        for i in range(number_of_pages):

            global number
            number = i
            writer = PdfFileWriter()
            writer.addPage(reader.getPage(i))   # 2019.8.17 这个地方没错,删了个-1 。若是不删的话将会以最后一页为0,第一页为1,依次往下;删了的话将以第一页为0,第二页为1,依次往下。
            out_file_name = temp

            with open(out_file_name, 'wb') as outfile:
                writer.write(outfile)
            yield i

            # try:
            #     with open(out_file_name, 'wb') as outfile:
            #          writer.write(outfile)
            #     yield i
            # except:
            #     print("chucuole     "+ str(number))

def turn_picture(in_File, out_Path):
    temp = '/home/zh/local/chartProject/' + 'temp'+'.pdf'
    for i in split_pdf(in_File, out_Path, temp):
        with tempfile.TemporaryDirectory() as path:
            images = convert_from_path(temp, dpi=9)
            for index, img in enumerate(images):
                global number
                # *** 取名字要注意
                img.save(os.path.join(out_Path, re.compile("[0-9|a-z]*").findall(os.path.basename(in_File))[0]+"_"+str(number)+".png"))
                number += 1
                # print('已经转化'+str(number))

if __name__ == '__main__':
    for file in os.listdir('/home/zh/local/chartProject/1000份/'):
        global in_File
        in_File = os.path.join('/home/zh/local/chartProject/1000份/', file)
        # in_File = '/home/zheng/zheng/1doc/003.pdf'
        out_Path = '/home/zh/local/chartProject/1pic/'  # 生成输出文件夹
        print(in_File)
        turn_picture(in_File, out_Path)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值