PyMuPDF`库实现PDF旋转功能

这篇具有很好参考价值的文章主要介绍了PyMuPDF`库实现PDF旋转功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。主要用于csdn网站中导出的博客pdf是横向的,看起来不是很方便,才想到用python编制一个将pdf从横向转为纵向的功能。

功能

该PDF转换工具具有以下功能:

  1. 选择PDF文件:通过点击“选择文件”按钮,用户可以选择要转换的PDF文件。
  2. 转换PDF:点击“转换PDF”按钮后,工具将打开所选的PDF文件,并对每个页面进行处理。
    • 如果页面的朝向是正常方向(0度),工具将将页面旋转90度。
    • 如果页面已经顺时针旋转90度(90度),工具将跳过该页面。
    • 其他朝向角度的页面将被忽略。
  3. 保存转换后的PDF:转换完成后,工具将保存转换后的PDF文件,并在原始文件名后面添加"_converted"。
  4. 提示消息:工具会显示转换完成的提示消息,以向用户确认转换已成功完成。
    C:\pythoncode\blog\pdfconvertoriginal.py
    PyMuPDF`库实现PDF旋转功能,pdf,python,pymupdf,旋转
    PyMuPDF`库实现PDF旋转功能,pdf,python,pymupdf,旋转

安装依赖库

在运行该工具之前,需要安装以下依赖库:

  • wxPython:用于创建GUI界面。
  • PyMuPDF:用于处理PDF文件。

可以使用以下命令使用pip安装这两个库:

pip install wxPython PyMuPDF

代码实现

下面是完整的Python代码实现:

运行工具

保存上述代码为pdf_convert_tool.py文件,然后运行该文件。将会打开一个窗口,窗口中有"选择文件"和"转换PDF"两个按钮。

  1. 点击"选择文件"按钮,选择要转换的PDF文件。
  2. 点击"转换PDF"按钮,工具将打开所选的PDF文件,并将页面旋转90度。
  3. 转换后的PDF文件将保存在原始文件名后面添加"_converted"的形式。

总结

本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。通过使用`wx很抱歉,Markdown格式在当前聊天界面无法显示。我将为您提供纯文本格式的博客内容,您可以将其复制到Markdown编辑器中进行格式化。

PDF转换工具

本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。该工具使用了wxPython和PyMuPDF库。

功能

该PDF转换工具具有以下功能:

1. 选择PDF文件:通过点击“选择文件”按钮,用户可以选择要转换的PDF文件。
2. 转换PDF:点击“转换PDF”按钮后,工具将打开所选的PDF文件,并对每个页面进行处理。
   - 如果页面的朝向是正常方向(0度),工具将将页面旋转90度。
   - 如果页面已经顺时针旋转90度(90度),工具将跳过该页面。
   - 其他朝向角度的页面将被忽略。
3. 保存转换后的PDF:转换完成后,工具将保存转换后的PDF文件,并在原始文件名后面添加"_converted"。
4. 提示消息:工具会显示转换完成的提示消息,以向用户确认转换已成功完成。

安装依赖库

在运行该工具之前,需要安装以下依赖库:

- wxPython:用于创建GUI界面。
- PyMuPDF:用于处理PDF文件。

可以使用以下命令使用pip安装这两个库:

pip install wxPython PyMuPDF

代码实现

下面是完整的Python代码实现:

```python
import wx
import fitz

class MainFrame(wx.Frame):
    def __init__(self, parent, title):
        super(MainFrame, self).__init__(parent, title=title, size=(400, 200))
        self.panel = wx.Panel(self)
        self.file_path = None

        self.select_file_btn = wx.Button(self.panel, label="选择文件", pos=(20, 20))
        self.select_file_btn.Bind(wx.EVT_BUTTON, self.on_select_file)

        self.convert_btn = wx.Button(self.panel, label="转换PDF", pos=(20, 60))
        self.convert_btn.Bind(wx.EVT_BUTTON, self.on_convert)

    def on_select_file(self, event):
        dlg = wx.FileDialog(self, "选择文件", wildcard="PDF files (*.pdf)|*.pdf", style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        if dlg.ShowModal() == wx.ID_OK:
            self.file_path = dlg.GetPath()
        dlg.Destroy()

    def on_convert(self, event):
        if self.file_path is None:
            wx.MessageBox("请先选择文件!", "错误", wx.OK | wx.ICON_ERROR)
            return

        self.convert_pdf(self.file_path)

        wx.MessageBox("转换完成!", "提示", wx.OK | wx.ICON_INFORMATION)
    
    # def convert_pdf(self, pdf_path):
    #     doc = fitz.open(pdf_path)
    #     for page in doc:
    #         pix = page.get_pixmap()
    #         if pix.width > pix.height:
    #             pix = pix.rotate(90)
    #             page.set_pixmap(pix)

    #         watermark = page.search_for("watermark")
    #         for mark in watermark:
    #             page.delete_mark(mark)
    def convert_pdf(self, pdf_path):
        doc = fitz.open(pdf_path)
        for page in doc:
            if page.rotation == 0:
                # 当前页面朝向为正常方向,需要旋转
                page.set_rotation(90)
            elif page.rotation == 90:
                # 当前页面朝向已经是顺时针旋转90度,不需要旋转
                continue
            else:
                # 其他朝向角度,暂不处理
                continue
        # doc.save(output_path)
        # doc.close()
        output_path = pdf_path.replace(".pdf", "_converted.pdf")
        doc.save(output_path)
        doc.close()

if __name__ == "__main__":
    app = wx.App()
    frame = MainFrame(None, "PDF转换工具")
    frame.Show()
    app.MainLoop()

运行工具

保存上述代码为pdf_convert_tool.py文件,然后运行该文件。将会打开一个窗口,窗口中有"选择文件"和"转换PDF"两个按钮。

  1. 点击"选择文件"按钮,选择要转换的PDF文件。
  2. 点击"转换PDF"按钮,工具将打开所选的PDF文件,并将页面旋转90度。
  3. 转换后的PDF文件将保存在原始文件名后面添加"_converted"的形式。

总结

本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。通过使用wxPython和PyMuPDF库,我们能够创建一个具有简单用户界面的工具,方便用户选择和转换PDF文件。您可以根据实际需求对代码进行修改和扩展,以满足更多功能和需求。文章来源地址https://www.toymoban.com/news/detail-661819.html

到了这里,关于PyMuPDF`库实现PDF旋转功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动化小技巧23——PDF文件拆分为单独页面(PyMuPDF)

    其实编辑PDF用Adobe就行,它功能超级齐全,可是这玩意要收费...去弄免费破解版,找资源又得半天,所以用python来拆分PDF文件吧,可以批量化处理。 至于为什么不用WPS.....别问,问就是不想开会员。 脚本代码 先安装PyMuPDF库, 代码:  把输入路径和输出路径都改一下就行了,整

    2024年02月07日
    浏览(66)
  • 使用PyMuPDF添加PDF水印

    使用Python添加PDF水印的博客文章。 C:pythoncodenewpdfwatermark.py 在日常工作中,我们经常需要对PDF文件进行处理。其中一项常见的需求是向PDF文件添加水印,以保护文件的版权或标识文件的来源。本文将介绍如何使用Python编程语言和PyMuPDF库在PDF文件中添加水印。 在开始之前,确

    2024年02月11日
    浏览(76)
  • 工具分享 | PDF文档解析工具PyMuPDF

    1 需求描述 最近工作需要 从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格) ,经过调研,找到了一个功能强大的解析工具MuPDF,对应的Python包是 PyMuPDF 。本篇博客记录使用它来实现具体功能。 官方文档:https://pymupdf.readthedocs.io/en/latest/index.html 2 利用书签中标

    2024年02月11日
    浏览(106)
  • Python自动化小技巧21——实现PDF转word功能(程序制作)

    案例背景 为什么这个年代PDF转word,某wps居然还要收费.....很多软件都可以实现这个功能,但是效果都有好有坏,而且有的还付费,很麻烦。 那就用python实现这个功能吧,然后把代码打包为.exe的程序,这样随便在哪个电脑上都能运行,给那些没有python环境的人一个便利。 代码

    2024年02月11日
    浏览(51)
  • AttributeError: ‘Document‘ object has no attribute ‘pageCount‘ PyMuPDF库

    这可能是由于PyMuPDF库更新导致的,里面的一些函数名发生了变化   将  pageCount改为 page_count 将preRotate改为prerotate 将getPixmap改为get_pixmap 将writePNG改为_writeIMG   或者直接安装老版本的这个库,也能解决一切问题      

    2024年02月10日
    浏览(53)
  • 微信小程序实现PDF预览功能——pdf.js(含源码解析)

    前言 前一段时间遇到了一个需求,关于 pdf 文件的预览,客户要求如下: 只能在微信小程序内预览,不能调起本地浏览器预览; 需要让用户强制阅读 10s 后才算阅读完成,进而进行下一步操作; 用户不能下载预览的 pdf 文件; 因为一些原因(此处省略一万字🐎),这个项目

    2023年04月09日
    浏览(41)
  • Java实现PDF导出功能

    一、添加依赖 二、实现示例代码 如下代码中使用了 【SIMYOU.TTF】幼圆字体,根据需要可以自行下载 三、效果展示 对应目录下生成test.pdf 文件 生成效果如下所示:

    2024年02月15日
    浏览(50)
  • vue实现pdf预览功能

    背景:材料上传之后点击预览实现在浏览器上预览的效果 效果如下: 实现代码如下: //预览和下载操作 后台返回的流文件格式

    2024年02月13日
    浏览(42)
  • vue 实现 pdf 预览功能

    Vue.js 是一种用于构建用户界面的渐进式框架。它具有以下特点: 易学易用:Vue.js 的 API 设计简单直观,使得开发者可以快速上手。 响应式数据绑定:Vue.js 使用了响应式的数据绑定机制,当数据发生变化时,页面会自动更新。 组件化开发:Vue.js 支持组件化开发,将界面拆分

    2024年02月12日
    浏览(40)
  • 关于word转pdf功能实现

    遇到word转pdf相关的问题,记录一下相关的使用 spire.doc是一款国产的,专业的 Java Word 组件,使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中. 其中的免费版本, 有特殊限制,在加载或保存 Word 文档时,要求 Word 文档不超过 500 个段落

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包