如何将PyPDF2.PdfReader.pages[0].extractText()的内容写入新pdf文件
时间: 2023-12-06 20:45:29 浏览: 191
你可以使用PyPDF2库创建一个新的PDF文档,并将extractText()的内容添加到其中。以下是一个示例代码:
```python
import PyPDF2
# 打开现有PDF文件
pdf_file = open('existing_file.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# 获取第一页文本内容
page_text = pdf_reader.pages[0].extractText()
# 创建新的PDF文件
output_pdf = PyPDF2.PdfFileWriter()
# 创建新的页面并添加文本内容
new_page = PyPDF2.pdf.PageObject.createBlankPage(None, 612, 792) # 612和792是页面的宽度和高度(单位为点)
new_page.mergePage(PyPDF2.pdf.PageObject.createFromString(page_text))
output_pdf.addPage(new_page)
# 将新的PDF文件保存到磁盘
with open('new_file.pdf', 'wb') as f:
output_pdf.write(f)
```
在上面的示例中,我们打开了一个现有的PDF文件并从第一页提取了文本内容。然后,我们使用PyPDF2创建了一个新的PDF文件,并将文本内容添加到一个新的页面中。最后,我们将新PDF文件保存到磁盘。
相关问题
PyPDF2.errors.DeprecationError: PdfFileReader is deprecated and was removed in PyPDF2 3.0.0. Use PdfReader instead.
是的,由于 PyPDF2 库的更新,PdfFileReader 已经被 PdfReader 取代。下面是一个示例代码,可以实现将 PDF 文件中的所有汉字去除:
```python
import PyPDF2
pdf_file = open('example.pdf', 'rb')
pdf_reader = PyPDF2.PdfReader(pdf_file)
pdf_writer = PyPDF2.PdfWriter()
for page_num in range(pdf_reader.numPages):
page = pdf_reader.pages[page_num]
content = page.extract_text()
content_without_chinese = ''.join(c for c in content if not ('\u4e00' <= c <= '\u9fff'))
new_page = PyPDF2.pdf.Page.create()
new_page.add_text(content_without_chinese)
pdf_writer.add_page(new_page)
pdf_output_file = open('example_output.pdf', 'wb')
pdf_writer.write(pdf_output_file)
pdf_file.close()
pdf_output_file.close()
```
在这个示例中,我们使用了 PdfReader 和 PdfWriter 对象来读取和写入 PDF 文件。遍历 PDF 文件中的每一页后,我们提取每一页的文本内容并去除其中的汉字。然后,我们创建一个新的 PDF 页面,并将去除了汉字的文本内容添加到该页面中。最后,我们将新建的页面添加到一个 PdfWriter 对象中,并将 PdfWriter 对象中的所有页面写入到一个新的 PDF 文件中。
import PyPDF2 import pandas as pd # 打开PDF文件 pdf_file = open('example.pdf', 'rb') # 创建PDF阅读器对象 pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 获取PDF页面数 num_pages = pdf_reader.numPages # 提取每个页面的文本内容 text_list = [] for page in range(num_pages): pdf_page = pdf_reader.getPage(page) text = pdf_page.extractText() text_list.append(text) # 将文本转换为pandas数据帧 df = pd.DataFrame(text_list) # 将数据写入Excel文件 df.to_excel('example.xlsx', index=False, header=False)
这是一个Python脚本,用于将一个名为"example.pdf"的PDF文件转换成一个名为"example.xlsx"的Excel文件,并且使用了PyPDF2和pandas两个Python库。具体实现过程如下:
1. 导入PyPDF2和pandas库
```
import PyPDF2
import pandas as pd
```
2. 打开PDF文件
```
pdf_file = open('example.pdf', 'rb')
```
其中,'rb'表示以二进制格式读取文件。
3. 创建PDF阅读器对象
```
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
```
4. 获取PDF页面数
```
num_pages = pdf_reader.numPages
```
5. 提取每个页面的文本内容
```
text_list = []
for page in range(num_pages):
pdf_page = pdf_reader.getPage(page)
text = pdf_page.extractText()
text_list.append(text)
```
其中,getPage()方法获取指定页面的内容,extractText()方法将内容提取为纯文本格式,并将每页的文本内容存储在一个列表中。
6. 将文本转换为pandas数据帧
```
df = pd.DataFrame(text_list)
```
将列表转换成pandas数据帧,其中每个元素作为一个单元格。
7. 将数据写入Excel文件
```
df.to_excel('example.xlsx', index=False, header=False)
```
将pandas数据帧写入名为"example.xlsx"的Excel文件中,其中index=False表示不写入行索引,header=False表示不写入列头。
阅读全文