python 10个PDF处理神器脚本(非常详细)零基础入门到精通,收藏这一篇就够了

901 篇文章 36 订阅
209 篇文章 4 订阅

亲爱的读者们,👋 在日常工作中,PDF文件无处不在,从文档共享到合同签署,它几乎覆盖了所有行业。而Python,作为强大的编程语言,提供了丰富的库来帮助我们轻松处理PDF文件。今天,我将分享10个实用的Python脚本,涵盖PDF的创建、编辑、提取信息以及转换等操作,让你在处理PDF文件时游刃有余。🌟

代码示例

1. PDF文件合并

from PyPDF2 import PdfMerger``def merge_pdfs(paths, output):`    `merger = PdfMerger()`    `for pdf in paths:`        `merger.append(pdf)`    `merger.write(output)`    `merger.close()``merge_pdfs(["doc1.pdf", "doc2.pdf"], "merged.pdf")

2. PDF页面分割

from PyPDF2 import PdfReader, PdfWriter``def split_pdf(input_pdf, start_page, end_page, output_pdf):`    `reader = PdfReader(input_pdf)`    `writer = PdfWriter()`    `for i in range(start_page, end_page + 1):`        `writer.add_page(reader.pages[i])`    `with open(output_pdf, "wb") as fp:`        `writer.write(fp)``split_pdf("large_document.pdf", 10, 20, "pages_10_to_20.pdf")

3. 文本提取

from PyPDF2 import PdfReader``def extract_text(pdf_path):`    `reader = PdfReader(pdf_path)`    `text = ""`    `for page in reader.pages:`        `text += page.extract_text()`    `return text``text = extract_text("example.pdf")``print(text)

4. 创建PDF

from fpdf import FPDF``def create_pdf(output):`    `pdf = FPDF()`    `pdf.add_page()`    `pdf.set_font("Arial", size=12)`    `pdf.cell(200, 10, txt="Hello, world!", ln=True)`    `pdf.output(output)``create_pdf("hello_world.pdf")

5. 添加水印

from PyPDF2 import PdfReader, PdfWriter, PdfMerger``def add_watermark(input_pdf, watermark_pdf, output_pdf):`    `base = PdfReader(input_pdf).pages[0]`    `watermark = PdfReader(watermark_pdf).pages[0]`    `packet = io.BytesIO()`    `can = canvas.Canvas(packet, pagesize=letter)`    `can.saveState()`    `can.translate(cmmtopage[0], cmmtopage[1])`    `can.drawInlineImage(watermark, 0, 0, width=watermark.mediabox.getWidth(), height=watermark.mediabox.getHeight())`    `can.restoreState()`    `can.save()`    `packet.seek(0)`    `new_pdf = PdfReader(packet)`    `output = PdfMerger()`    `output.append(base)`    `output.merge(1, new_pdf)`    `output.write(output_pdf)``add_watermark("original.pdf", "watermark.pdf", "watermarked.pdf")

请注意,上述add_watermark函数中的水印添加逻辑使用了PyPDF2的底层方法,这可能需要进一步调整以适应具体需求。

6. PDF转图片

from pdf2image import convert_from_path``def pdf_to_images(pdf_path, output_folder):`    `images = convert_from_path(pdf_path)`    `for i, image in enumerate(images):`        `image.save(f"{output_folder}/page_{i}.jpg", "JPEG")``pdf_to_images("example.pdf", "images")

7. 图片转PDF

from PIL import Image``def images_to_pdf(image_paths, output_pdf):`    `images = [Image.open(x) for x in image_paths]`    `images[0].save(output_pdf, save_all=True, append_images=images[1:])``images_to_pdf(["image1.jpg", "image2.jpg"], "images.pdf")

8. 旋转PDF页面

from PyPDF2 import PdfWriter, PdfReader``def rotate_pages(pdf_path, output_pdf):`    `pdf_writer = PdfWriter()`    `pdf = PdfReader(pdf_path)`    `for page in pdf.pages:`        `page.rotate(90)`        `pdf_writer.add_page(page)`    `with open(output_pdf, "wb") as out:`        `pdf_writer.write(out)``rotate_pages("example.pdf", "rotated.pdf")

9. PDF元数据修改

from PyPDF2 import PdfWriter, PdfReader``def modify_metadata(input_pdf, output_pdf, title="New Title"):`    `pdf = PdfReader(input_pdf)`    `pdf.Writer = PdfWriter()`    `info = pdf.Writer._info`    `info.title = title`    `pdf.Writer.write(output_pdf)``modify_metadata("example.pdf", "modified.pdf", "Updated Title")

10. 密码保护PDF

from PyPDF2 import PdfWriter, PdfReader``def encrypt_pdf(input_pdf, output_pdf, password):`    `pdf = PdfReader(input_pdf)`    `pdf_writer = PdfWriter()`    `pdf_writer.append_pages_from_reader(pdf)`    `pdf_writer.encrypt(user_pwd=password, owner_pwd=None, use_128bit=True)`    `with open(output_pdf, "wb") as fh:`        `pdf_writer.write(fh)``encrypt_pdf("example.pdf", "protected.pdf", "mysecretpassword")

总结

以上就是今天的分享,这10个脚本涵盖了PDF处理的各个方面,从基本的文本提取到复杂的页面旋转和密码保护。无论你是初学者还是经验丰富的开发者,掌握这些技巧都将极大地提升你处理PDF文件的能力。🚀

在实际应用中,记得根据自己的需求对脚本进行适当的调整和优化。Python的强大之处在于其灵活性和可扩展性,这意味着你可以基于这些基础脚本创建更复杂、更个性化的PDF处理工具。🌟

注意:上述脚本使用了多个不同的Python库,包括PyPDF2, fpdf, pdf2image, 和Pillow。在运行之前,请确保已经通过pip安装了这些库。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值