本文介紹了一個簡單的Python應(yīng)用程序,用于將PDF文件轉(zhuǎn)換為旋轉(zhuǎn)90度的PDF文件。主要用于csdn網(wǎng)站中導(dǎo)出的博客pdf是橫向的,看起來不是很方便,才想到用python編制一個將pdf從橫向轉(zhuǎn)為縱向的功能。
功能
該P(yáng)DF轉(zhuǎn)換工具具有以下功能:
- 選擇PDF文件:通過點(diǎn)擊“選擇文件”按鈕,用戶可以選擇要轉(zhuǎn)換的PDF文件。
- 轉(zhuǎn)換PDF:點(diǎn)擊“轉(zhuǎn)換PDF”按鈕后,工具將打開所選的PDF文件,并對每個頁面進(jìn)行處理。
- 如果頁面的朝向是正常方向(0度),工具將將頁面旋轉(zhuǎn)90度。
- 如果頁面已經(jīng)順時針旋轉(zhuǎn)90度(90度),工具將跳過該頁面。
- 其他朝向角度的頁面將被忽略。
- 保存轉(zhuǎn)換后的PDF:轉(zhuǎn)換完成后,工具將保存轉(zhuǎn)換后的PDF文件,并在原始文件名后面添加"_converted"。
- 提示消息:工具會顯示轉(zhuǎn)換完成的提示消息,以向用戶確認(rèn)轉(zhuǎn)換已成功完成。
C:\pythoncode\blog\pdfconvertoriginal.py
安裝依賴庫
在運(yùn)行該工具之前,需要安裝以下依賴庫:
-
wxPython
:用于創(chuàng)建GUI界面。 -
PyMuPDF
:用于處理PDF文件。
可以使用以下命令使用pip
安裝這兩個庫:
pip install wxPython PyMuPDF
代碼實(shí)現(xiàn)
下面是完整的Python代碼實(shí)現(xiàn):
運(yùn)行工具
保存上述代碼為pdf_convert_tool.py
文件,然后運(yùn)行該文件。將會打開一個窗口,窗口中有"選擇文件"和"轉(zhuǎn)換PDF"兩個按鈕。
- 點(diǎn)擊"選擇文件"按鈕,選擇要轉(zhuǎn)換的PDF文件。
- 點(diǎn)擊"轉(zhuǎn)換PDF"按鈕,工具將打開所選的PDF文件,并將頁面旋轉(zhuǎn)90度。
- 轉(zhuǎn)換后的PDF文件將保存在原始文件名后面添加"_converted"的形式。
總結(jié)
本文介紹了一個簡單的Python應(yīng)用程序,用于將PDF文件轉(zhuǎn)換為旋轉(zhuǎn)90度的PDF文件。通過使用`wx很抱歉,Markdown格式在當(dāng)前聊天界面無法顯示。我將為您提供純文本格式的博客內(nèi)容,您可以將其復(fù)制到Markdown編輯器中進(jìn)行格式化。
PDF轉(zhuǎn)換工具
本文介紹了一個簡單的Python應(yīng)用程序,用于將PDF文件轉(zhuǎn)換為旋轉(zhuǎn)90度的PDF文件。該工具使用了wxPython和PyMuPDF庫。
功能
該P(yáng)DF轉(zhuǎn)換工具具有以下功能:
1. 選擇PDF文件:通過點(diǎn)擊“選擇文件”按鈕,用戶可以選擇要轉(zhuǎn)換的PDF文件。
2. 轉(zhuǎn)換PDF:點(diǎn)擊“轉(zhuǎn)換PDF”按鈕后,工具將打開所選的PDF文件,并對每個頁面進(jìn)行處理。
- 如果頁面的朝向是正常方向(0度),工具將將頁面旋轉(zhuǎn)90度。
- 如果頁面已經(jīng)順時針旋轉(zhuǎn)90度(90度),工具將跳過該頁面。
- 其他朝向角度的頁面將被忽略。
3. 保存轉(zhuǎn)換后的PDF:轉(zhuǎn)換完成后,工具將保存轉(zhuǎn)換后的PDF文件,并在原始文件名后面添加"_converted"。
4. 提示消息:工具會顯示轉(zhuǎn)換完成的提示消息,以向用戶確認(rèn)轉(zhuǎn)換已成功完成。
安裝依賴庫
在運(yùn)行該工具之前,需要安裝以下依賴庫:
- wxPython:用于創(chuàng)建GUI界面。
- PyMuPDF:用于處理PDF文件。
可以使用以下命令使用pip安裝這兩個庫:
pip install wxPython PyMuPDF
代碼實(shí)現(xiàn)
下面是完整的Python代碼實(shí)現(xiàn):
```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="轉(zhuǎn)換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("轉(zhuǎn)換完成!", "提示", 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:
# 當(dāng)前頁面朝向?yàn)檎7较?,需要旋轉(zhuǎn)
page.set_rotation(90)
elif page.rotation == 90:
# 當(dāng)前頁面朝向已經(jīng)是順時針旋轉(zhuǎn)90度,不需要旋轉(zhuǎn)
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轉(zhuǎn)換工具")
frame.Show()
app.MainLoop()
運(yùn)行工具
保存上述代碼為pdf_convert_tool.py文件,然后運(yùn)行該文件。將會打開一個窗口,窗口中有"選擇文件"和"轉(zhuǎn)換PDF"兩個按鈕。
- 點(diǎn)擊"選擇文件"按鈕,選擇要轉(zhuǎn)換的PDF文件。
- 點(diǎn)擊"轉(zhuǎn)換PDF"按鈕,工具將打開所選的PDF文件,并將頁面旋轉(zhuǎn)90度。
- 轉(zhuǎn)換后的PDF文件將保存在原始文件名后面添加"_converted"的形式。
總結(jié)文章來源:http://www.zghlxwxcb.cn/news/detail-661819.html
本文介紹了一個簡單的Python應(yīng)用程序,用于將PDF文件轉(zhuǎn)換為旋轉(zhuǎn)90度的PDF文件。通過使用wxPython和PyMuPDF庫,我們能夠創(chuàng)建一個具有簡單用戶界面的工具,方便用戶選擇和轉(zhuǎn)換PDF文件。您可以根據(jù)實(shí)際需求對代碼進(jìn)行修改和擴(kuò)展,以滿足更多功能和需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-661819.html
到了這里,關(guān)于PyMuPDF`庫實(shí)現(xiàn)PDF旋轉(zhuǎn)功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!