`从 tkinter 导入 * 将 aspose.pdf 导入为 ap 从 tkinter 导入文件对话框 import pandas as pd
input_pdf = filedialog.askopenfilename(filetypes=(("PDF 文件", "
.pdf"), ("所有文件", "
.
")))
output_file = filedialog.asksaveasfilename(defaultextension=".xlsx",
your text
filetypes=(("Excel 文件", "
.xlsx"), ("所有文件","
.
") ))
document = ap.Document(input_pdf)
save_option = ap.ExcelSaveOptions()
save_option.minimize_the_number_of_worksheets = True
print("Page Count:", str(len(document.pages)))
save_option.Number= (0, len(document.pages))
document.save(output_file, save_option)
`
问题出在这一行代码:
save_option.Number= (0, len(document.pages))
这行代码并不会像你预期的那样设置要转换的页码范围。
save_option.Number
属性用于设置
单个
工作表的索引,而不是页码范围。
为了转换所有页面,你需要迭代 PDF 文档的每一页,并将它们分别保存到 Excel 工作表中。
以下是如何修改代码以转换所有页面的方法:
from tkinter import *
import aspose.pdf as ap
from tkinter import filedialog
input_pdf = filedialog.askopenfilename(filetypes=(("PDF 文件", "*.pdf"), ("所有文件", "*.*")))
output_file = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=(("Excel 文件", "*.xlsx"), ("所有文件", "*.*")))
document = ap.Document(input_pdf)
save_option = ap.ExcelSaveOptions()
save_option.minimize_the_number_of_worksheets = False # 关闭合并工作表
# 迭代每一页并保存
for i in range(len(document.pages)):
save_option.page_index = i
save_option.page_count = 1
document.save(output_file.replace(".xlsx", f"_{i+1}.xlsx"), save_option)
代码解释:
-
关闭合并工作表:
save_option.minimize_the_number_of_worksheets = False
确保每页 PDF 都会被保存到一个独立的 Excel 工作表中。 -
循环遍历所有页面:
使用
for i in range(len(document.pages))
循环遍历文档中的所有页面。 -
设置要转换的页面:
使用
save_option.page_index = i
和save_option.page_count = 1
设置只转换当前循环到的页面。 -
保存文件:
使用
document.save()
方法保存文件,并通过在文件名中添加页码来区分不同的文件。
注意: 这段代码会将 PDF 文件的每一页保存到一个独立的 Excel 文件中。 如果你希望将所有页面保存到同一个 Excel 文件的不同工作表中,则需要使用更复杂的逻辑来操作 Excel 文件。
标签:python,user-interface From: 78837613