La biblioteca PyMuPDF implementa la función de rotación de PDF

Este artículo describe una aplicación Python simple para convertir archivos PDF en archivos PDF girados 90 grados. El pdf del blog utilizado principalmente para exportar desde el sitio web csdn es horizontal, lo que parece inconveniente, así que pensé en usar Python para programar una función para convertir el pdf de horizontal a vertical.

Función

Esta herramienta de conversión de PDF tiene las siguientes características:

  1. Seleccionar archivo PDF: al hacer clic en el botón "Seleccionar archivo", los usuarios pueden seleccionar el archivo PDF para convertir.
  2. Convertir PDF: después de hacer clic en el botón "Convertir PDF", la herramienta abrirá el archivo PDF seleccionado y procesará cada página.
    • Si la orientación de la página es normal (0 grados), la herramienta rotará la página 90 grados.
    • Si la página ya se ha girado 90 grados en el sentido de las agujas del reloj (90 grados), la herramienta omitirá la página.
    • Se ignorarán otras páginas orientadas hacia el ángulo.
  3. Guardar PDF convertido: una vez completada la conversión, la herramienta guardará el archivo PDF convertido con "_converted" agregado al nombre del archivo original.
  4. Mensaje rápido: la herramienta muestra un mensaje de conversión completa para confirmar al usuario que la conversión se completó correctamente.
    C:\pythoncode\blog\pdfconvertoriginal.py
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

Instalar bibliotecas dependientes

Antes de ejecutar la herramienta, es necesario instalar las siguientes dependencias:

  • wxPython: Se utiliza para crear una interfaz GUI.
  • PyMuPDF: Se utiliza para procesar archivos PDF.

pipAmbas bibliotecas se pueden instalar usando el siguiente comando :

pip install wxPython PyMuPDF

Código

La siguiente es la implementación completa del código Python:

ejecutar herramienta

Guarde el código anterior como pdf_convert_tool.pyun archivo y luego ejecútelo. Se abrirá una ventana con dos botones "Elegir archivo" y "Convertir PDF".

  1. Haga clic en el botón "Elegir archivo" para seleccionar el archivo PDF a convertir.
  2. Haga clic en el botón "Convertir PDF" y la herramienta abrirá el archivo PDF seleccionado y rotará las páginas 90 grados.
  3. El archivo PDF convertido se guardará con "_converted" añadido al nombre del archivo original.

Resumir

Este artículo describe una aplicación Python simple para convertir archivos PDF en archivos PDF girados 90 grados. Lo sentimos, el formato Markdown no se puede mostrar en la interfaz de chat actual usando `wx. Te daré el contenido del blog en texto plano, que puedes copiar en un editor Markdown para darle formato.

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()

ejecutar herramienta

Guarde el código anterior como archivo pdf_convert_tool.py y luego ejecute el archivo. Se abrirá una ventana con dos botones "Elegir archivo" y "Convertir PDF".

  1. Haga clic en el botón "Elegir archivo" para seleccionar el archivo PDF a convertir.
  2. Haga clic en el botón "Convertir PDF" y la herramienta abrirá el archivo PDF seleccionado y rotará las páginas 90 grados.
  3. El archivo PDF convertido se guardará con "_converted" añadido al nombre del archivo original.

Resumir

Este artículo describe una aplicación Python simple para convertir archivos PDF en archivos PDF girados 90 grados. Al utilizar las bibliotecas wxPython y PyMuPDF, pudimos crear una herramienta con una interfaz de usuario sencilla para seleccionar y convertir archivos PDF. Puede modificar y ampliar el código según las necesidades reales para satisfacer más funciones y necesidades.

Supongo que te gusta

Origin blog.csdn.net/winniezhang/article/details/132332791
Recomendado
Clasificación