首页 > 系统相关 >linux下拆分PDF、批量裁剪图片及合并为PDF操作

linux下拆分PDF、批量裁剪图片及合并为PDF操作

时间:2023-05-10 10:34:32浏览次数:41  
标签:linux files 裁剪 file PDF pdf path png

好久不碰代码,文件操作啥的快忘光了(你丫本来就没怎么学吧!)我先放两串代码在这QAQ

拆分PDF

pdftoppm -png ?.pdf s

批量裁剪图片

裁剪图片指令,这个指令是ImageMagick带的一个什么东西,单位电脑能装

convert src.png -crop 长x高+起始像素点横坐标+起始像素低纵坐标 dest.png

然后用ROCEDU教我的无敌Python糊弄糊弄就好啦

import os
for i in range(9):
    a="s-0"+str(i+1)+".png"
    b="d-0"+str(i+1)+".png"
    c="convert "+a+" -crop 630x930+60+0 "+b
    print(c)
    os.system(c)

由于PDF拆分时,生成文件名称会自动在个位前补零,所以要稍微改动一下下。

合成PDF

网上随便找了一个跑跑

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PIL import Image
import os

def combine_imgs_pdf(folder_path, pdf_file_path):
    """
    合成文件夹下的所有图片为pdf
    Args:
        folder_path (str): 源文件夹
        pdf_file_path (str): 输出路径
    """
    files = os.listdir(folder_path)
    png_files = []
    sources = []
    for file in files:
        if 'png' in file or 'jpg' or 'JPG' or 'PNG' in file:
            png_files.append(folder_path + file)
    png_files.sort()
    output = Image.open(png_files[0])
    if output.mode == "RGBA":
       output = output.convert("RGB")
    png_files.pop(0)
    for file in png_files:
        png_file = Image.open(file)
        if png_file.mode == "RGBA":            
           png_file = png_file.convert("RGB")
        sources.append(png_file)
    output.save(pdf_file_path, "pdf", save_all=True, append_images=sources)

if __name__ == "__main__":
    folder = r"/home/uos/Downloads/a/d/"
    pdfFile = r"/home/uos/Downloads/a/d/t.pdf"
    combine_imgs_pdf(folder, pdfFile)

倒数2.3行要改成自己的路径

标签:linux,files,裁剪,file,PDF,pdf,path,png
From: https://www.cnblogs.com/Ziggy29/p/17387213.html

相关文章

  • Linux安装gitbook
    Linux安装gitbook下载nodejs包wgethttps://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.gz解压tar-zxvfnode-v12.16.1-linux-x64.tar.gz建立软连接[root@VM-16-13-centos~]#lsnode-v12.16.1-linux-x64node-v12.16.1-linux-x64.tar.......
  • rocky linux: 禁止使用root登录ssh,只允许指定用户(Rocky Linux 9.1)
    一,配置可以sudo的用户参考这个:https://www.cnblogs.com/architectforest/p/17386259.html二,禁止使用root登录ssh1,配置ssh[root@img~]#vi/etc/ssh/sshd_config配置内容:设置PermitRootLogin值为no#PermitRootLoginyesPermitRootLoginno新增一行:AllowUsers......
  • Java使用wkhtmltopdf实现HTML转pdf
    wkhtmltopdf设置全屏:wkhtmltopdf--disable-smart-shrinking--page-sizeA4-B0-L0-R0-T0test.htmloutput.pdf-B-T-R-L是有效果的,$snappy->setOption('margin-top','0mm');$snappy->setOption('margin-left','0mm'......
  • Linux系统的内存摘要
    通过free-m查看系统内存使用情况total:总内存大小。used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。free:空闲的内存大小。shared:进程间共享内存(一般不会用,可以忽略)。buffers:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。cached......
  • Java获取当前路径(Linux+Windows)
    Java获取当前路径(Linux+Windows)获取当前路径(兼容Linux、Windows):StringcurPath=System.getProperty("user.dir");log.info("===========当前路径===========curPath:{}",curPath);输出结果:===========当前路径===========curPath:/home/lizhm......
  • ChatPDF/ChatDOC实现原理解析
    1)把PDF切分成小的文本片段,通过OpenAI的Ada模型创建Embedding放到本地或远程向量数据库。2)把用户的提问也创建成Embedding,用它和之前创建的PDF向量比对,通过语义相似性搜索(余弦算法),找到最相关的文本片段。比关键词搜索好的一点是不要求关键词包含,也能发现文本相关性,比如汽车和公路......
  • Linux的这七大认识误区,你千万别有!
    本文罗列了大家对Linux的七大认识误区,看看其中那个是你也出现过的。千万别让这些先入为主的观点断送了你体验新事物的机会。Linux的受众群体并不大。对还是错?错!大错而特错。我承认,Linux的实际用户数量很难统计,因为其免费开放下载且并未由单一企业进行控制。没有明确的销......
  • Linux的这七大认识误区,你千万别有!
    本文罗列了大家对Linux的七大认识误区,看看其中那个是你也出现过的。千万别让这些先入为主的观点断送了你体验新事物的机会。Linux的受众群体并不大。对还是错?错!大错而特错。我承认,Linux的实际用户数量很难统计,因为其免费开放下载且并未由单一企业进行控制。没有明确的销......
  • Linux的这七大认识误区,你千万别有!
    本文罗列了大家对Linux的七大认识误区,看看其中那个是你也出现过的。千万别让这些先入为主的观点断送了你体验新事物的机会。Linux的受众群体并不大。对还是错?错!大错而特错。我承认,Linux的实际用户数量很难统计,因为其免费开放下载且并未由单一企业进行控制。没有明确的销......
  • Linux的开发环境
    Linux的开发环境通常会包括以下方面:1.编程语言解释器或编译器:例如Python、Java、C++等等。2.集成开发环境(IDE):例如Eclipse、NetBeans、VisualStudioCode等等。3.版本控制系统:例如Git或SVN。4.构建工具:例如Maven或Gradle。5.调试器:例如gdb、valgrind等等。6.数据库:......