[python]裁剪文件夹中所有pdf文档并按名称保存到指定的文件夹

最近在写论文的实验部分,由于latex需要pdf格式的文档,审稿专家需要对pdf图片进行裁剪放大,以保证图片质量。

原图:
在这里插入图片描述

裁剪后的图像:

请添加图片描述

代码粘贴如下。将input_folder和output_folder替换即可。(x1, y1),
(x2, y2) 分别代表裁剪框的像素位置。

import os
import PyPDF2
from PIL import Imagedef crop_and_save_pdf(input_folder, output_folder, x1, y1, x2, y2):# Ensure output folder existsif not os.path.exists(output_folder):os.makedirs(output_folder)# Process each PDF file in the input folderfor filename in os.listdir(input_folder):if filename.endswith(".pdf"):input_pdf_path = os.path.join(input_folder, filename)output_png_path = os.path.join(output_folder, os.path.splitext(filename)[0] + ".png")output_pdf_path = os.path.join(output_folder, os.path.splitext(filename)[0] + ".pdf")with open(input_pdf_path, 'rb') as file:pdf_reader = PyPDF2.PdfReader(file)pdf_writer = PyPDF2.PdfWriter()for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]page.cropbox.lower_left = (x1, y1)page.cropbox.upper_right = (x2, y2)pdf_writer.add_page(page)with open(output_pdf_path, 'wb') as output_file:pdf_writer.write(output_file)# Convert the first page to PNG format for visualization# first_page = Image.open(output_pdf_path)# first_page.save(output_png_path, 'PNG')# Specify input and output folders, and crop coordinates
input_folder = '/home/lxy/data_link2/evaluate/clip/HU_Compare'
output_folder = '/home/lxy/data_link2/evaluate/clip/HU_Compare2'
x1, y1 = 50, 400  # Left bottom coordinates
x2, y2 = 130, 550  # Right top coordinates# Call the function to crop and save PDF pages as PNG
crop_and_save_pdf(input_folder, output_folder, x1, y1, x2, y2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/241422.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备赛 day 2 —— 二分算法(C/C++,零基础,配图)

目录 🌈前言: 📁 二分的概念 📁 整数二分 📁 二分的模板 📁 习题 📁 总结 🌈前言: 这篇文章主要是准备蓝桥杯竞赛同学所写,为你更好准备蓝桥杯比赛涉及…

贪心算法 ——硬币兑换、区间调度、

硬币兑换: from book:挑战程序设计竞赛 思路:优先使用大面额兑换即可 package mainimport "fmt"func main() {results : []int{}//记录每一种数额的张数A : 620B : A//备份cnts : 0 //记录至少需要多少张nums : []int{1, 5, 10, 5…

Zookeeper简介

系列文章目录 Zookeeper安装教程 目录 一、Zookeeper简介 二、Zookeeper的数据结构 三、CPA理论 四、BASE 理论 五、ZooKeeper的特性 前言 这是我的学习笔记,以便后面翻阅。 一、Zookeeper简介 ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务&a…

element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解

实现代码&#xff1a; 按钮&#xff1a; <el-button click"takeall" style"height: 24px">{{zhanstatus % 2 ! 0 ? "收起所有" : "展开所有"}} </el-button> 组件&#xff1a; <el-form-item label"可选择菜单…

GIS复试Tips(特别是南师大)

注&#xff1a;本文仅个人观点&#xff0c;仅供参考 在这提前㊗️24年考南师大GISer成功上岸&#xff01; 当然&#xff0c;考研是个考试&#xff0c;总有人顺利上岸&#xff0c;稳上岸或逆袭上岸&#xff0c;但可能也有人被刷&#xff0c;这是常态。 所以&#xff0c;㊗️你…

如何服务器用守护进程保证程序稳定运行

如何服务器用守护进程保证程序稳定运行 一、前言 平常在使用服务器的时候&#xff0c;服务一直不稳定&#xff0c;遂从nohup改为创建一个systemd服务来管理Python程序。 要求&#xff1a;有root权限 二、步骤 1、创建systemd服务文件 创建一个新的systemd服务文件&#xf…

X-Bogus加密参数分析与jsvmp算法(仅供学习)

文章目录 1. 抓包分析2. X-Bogus参数分析 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫…

day20 最大的二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树

题目1&#xff1a;654 最大二叉树 题目链接&#xff1a;654 最大二叉树 题意 根据不重复的整数数组nums构建最大的二叉树 &#xff0c;根节点是数组中的最大值&#xff0c;最大值左边的子数组构建左子树&#xff0c;最大值右边的子数组构建右子树 nums数组中最少含有1个元素…

怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准

2023年12月27日&#xff0c;上海怿星电子科技有限公司测试实验室&#xff08;下称&#xff1a;EPT LABS&#xff09;通过CNAS实验室认可批准&#xff0c;并于2024年1月5日正式取得CNAS实验室认可证书&#xff08;注册号CNAS L19826&#xff09;&#xff0c;标志着怿星科技的实验…

48-DOM节点,innerHTML,innerText,outerHTML,outerText,静态获取,单机click,cssText

1.DOM基础 Document Object Module,文档对象模型,window对象,document文档,都可以获取和操作 1)文档节点 2)属性节点(标签内的属性href,src) 3)文本节点(标签内的文字) 4)注释节点 5)元素节点(标签) 2.获取元素节点 2.1通过标签名获取getElementsByTagName() …

运维平台介绍:视频智能运维平台的视频质量诊断分析和告警中心

目 录 一、视频智能运维平台介绍 &#xff08;一&#xff09;平台概述 &#xff08;二&#xff09;结构图 &#xff08;三&#xff09;功能介绍 1、运维监控 2、视频诊断 3、巡检管理 4、告警管理 5、资产管理 6、工单管理 7、运维…

StructuredStreaming输出模式和结果输出文件中

输出模式 #format指定输出位置 console&#xff1a;控制台 #append 不支持排序&#xff0c;不支持聚合&#xff0c; 每次输出数据都是最新的数据内容 #complete 必须聚合&#xff0c;支持聚合后排序 每次输出数据都会将原来的数据一起输出 #update 支持聚合&#xff0c;支持sel…

循环异步调取接口使用数组promiseList保存,Promise.all(promiseList)获取不到数组内容,then()返回空数组

在使用 vue vant2.13.2 技术栈的项目中&#xff0c;因为上传文件的接口是单文件上传&#xff0c;当使用批量上传时&#xff0c;只能循环调取接口&#xff1b;然后有校验内容&#xff1a;需要所有文件上传成功后才能保存&#xff0c;在文件上传不成功时点击保存按钮&#xff0c…

linux 安装ffmpeg

一、下载 ffmpeg-4.3.1 下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码&#xff1a;3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…

java数组在多线程中安全问题,HashMap是不安全的,Hashtable安全(但每次都加锁,效率低),ConcurrentHashMap完美

package com.controller;import com.myThread.AdminThread; import com.myThread.MyCallable; import com.myThread.MyRunnable; import org.springframework.web.bind.annotation.*;import java.util.concurrent.*; //上面引入*&#xff0c;所以这个可以注销 //import java.ut…

WEBDYNPRO FPM 框架

框架搭建 1、FPM_OVP_COMPONENT 1 METHOD change_toolbar_btn .2 * enabled "ABAP_TRUE可用 ABAP_FALSE不可用3 * visibility "01不可见 02可见4 DATA: ls_btn TYPE if_fpm_ovp>ty_s_toolbar_button.5 CHECK wd_this->mo_cnr IS BOUND.6 7 TRY .8 …

测试 ASP.NET Core 中间件

正常情况下&#xff0c;中间件会在主程序入口统一进行实例化&#xff0c;这样如果想单独测试某一个中间件就很不方便&#xff0c;为了能测试单个中间件&#xff0c;可以使用 TestServer 单独测试。 这样便可以&#xff1a; 实例化只包含需要测试的组件的应用管道。发送自定义请…

计算机网络编程

网络编程 文章目录 网络编程1 计算机网络1.1 什么是网络1.2 什么是计算机网络1.3 计算机网络发展的四个阶段 2 常用名词2.1 网络模型2.1.1 OSI模型2.1.2 TCP/IP模型 2.2 网络协议2.2.1 TCP/UDP2.2.2 IP 2.3 Port: 端口号 3 计算机网络编程3.1 InetAddress类3.2 基于TCP的Socket…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 &#x1f64a;前言&#xff1a;本文章为瑞_系列专栏之《Java开发手册》的工程结构篇&#xff0c;主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

前端面试题汇总大全(含答案)-- 持续更新

​一、HTML 篇 1. 简述一下你对 HTML 语义化的理解&#xff1f; 用正确的标签做正确的事情。 html 语义化让页面的内容结构化&#xff0c;结构更清晰&#xff0c;便于对浏览器、搜索引擎解析&#xff1b;即使在没有样式 CSS 情况下也以一种文档格式显示&#xff0c;并且是容易…