吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1349|回复: 16
收起左侧

[经验求助] Python 有些不懂,求会的大佬们帮忙看看哪里 出错了 -_-||

[复制链接]
aniu 发表于 2024-4-7 13:46
40吾爱币
invalid pdf header: b'{"typ'
EOF marker not found
Traceback (most recent call last):
  File "D: xxxx\main.py", line 43, in <module>
    pdfDownload(book_data, user.book_id, user_agent)
  File "D:xxx\download.py", line 58, in pdfDownload
    pdf_reader = PdfReader(temp_pdf_file)
  File "D:\Python\Python39\lib\site-packages\pypdf\_reader.py", line 332, in __init__
    self.read(stream)
  File "D:\Python\Python39\lib\site-packages\pypdf\_reader.py", line 1554, in read
    self._find_eof_marker(stream)
  File "D:\Python\Python39\lib\site-packages\pypdf\_reader.py", line 1625, in _find_eof_marker
    line = read_previous_line(stream)
  File "D:\Python\Python39\lib\site-packages\pypdf\_utils.py", line 268, in read_previous_line
    raise PdfStreamError(STREAM_TRUNCATED_PREMATURELY)
pypdf.errors.PdfStreamError: Stream has ended unexpectedly

最佳答案

查看完整内容

用pypdf库合并吧 [mw_shl_code=python,false]# 创建PDF文件写入器 merger = PdfMerger() # 将所有PDF文件添加到写入器中 for pdf in pdf_files: merger.append(pdf) # 将合并后的PDF文件保存到磁盘上 # "wb" 以二进制写方式打开,只能写文件。如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件。 with open(mergeFileName, 'wb') as output: # 写入合并后的PDF文件 merger.write(out ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cattie 发表于 2024-4-7 13:46
aniu 发表于 2024-4-7 15:53
我看了能下载每页PDF 并且能打开,是不是不能合并PDF。

用pypdf库合并吧
[Python] 纯文本查看 复制代码
# 创建PDF文件写入器
merger = PdfMerger()

# 将所有PDF文件添加到写入器中
for pdf in pdf_files:
    merger.append(pdf)


# 将合并后的PDF文件保存到磁盘上
# "wb" 以二进制写方式打开,只能写文件。如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件。
with open(mergeFileName, 'wb') as output:
    # 写入合并后的PDF文件
    merger.write(output)
    merger.close()
帅帅糖爸 发表于 2024-4-7 13:50
这段代码报错提示表明在处理 PDF 文件时发生了错误。具体错误信息如下:
  • invalid pdf header 表示无效的 PDF 头。
  • EOF marker not found 表示未找到文件末尾的标记。


错误[color=var(--color-neutral-100, black)]堆栈
跟踪显示在 main.py 文件的第 43 行和 download.py 文件的第 58 行调用了 pdfDownload 函数,该函数在 pypdf _reader.py 文件中初始化 PdfReader 时出现问题。


可能的原因包括:

  • PDF 文件本身存在问题,可能是损坏或不完整。
  • 读取 PDF 文件的代码逻辑有错误。


为了解决这个问题,你可以尝试以下步骤:

  • 确保 PDF 文件的完整性和正确性。
  • 检查相关代码,特别是与读取 PDF 文件相关的部分,确保代码逻辑正确。
  • 尝试使用其他 PDF 处理库或工具,以确定是否是库的问题。


如果问题仍然存在,你可能需要进一步调查 PDF 文件的来源和性质,或者寻求更多的技术支持。

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
aniu + 2 + 1 谢谢@Thanks!

查看全部评分

helian147 发表于 2024-4-7 13:52
 楼主| aniu 发表于 2024-4-7 13:53
帅帅糖爸 发表于 2024-4-7 13:50
这段代码报错提示表明在处理 PDF 文件时发生了错误。具体错误信息如下:
  • invalid pdf header 表示无 ...

  • 感觉是 chatgpt出的答案,来个具体可行的办法更好,我看下有没其他更好的答案,谢谢您
    Arcticlyc 发表于 2024-4-7 13:54
    本帖最后由 Arcticlyc 于 2024-4-7 13:55 编辑

    你的 pdf_reader = PdfReader(temp_pdf_file) 这条代码似乎正在尝试读取一个字节形式的 pdf,
    invalid pdf header: b'{"typ'

    根据报错看,你的 temp_pdf_file 貌似并不是有效的 pdf (可能需要检查 temp_pdf_file 是否是你预期的 pdf 文件)

    免费评分

    参与人数 1吾爱币 +1 热心值 +1 收起 理由
    aniu + 1 + 1 谢谢@Thanks!

    查看全部评分

    Maxhaha 发表于 2024-4-7 14:57
    你这是下载文件然后读pdf么?你看下你下载的pdf格式是否是正确的  

    免费评分

    参与人数 1热心值 +1 收起 理由
    aniu + 1 谢谢@Thanks!

    查看全部评分

    cattie 发表于 2024-4-7 14:57
    PDF文件头有问题,然后找不到文件结束标记
    得检测一下加载的PDF文件是不是有效的,
    如果是下载器需要写入内容的话,你需要给他输入一个空的pdf文档,而不是一个0字节的空文件。

    免费评分

    参与人数 1吾爱币 +3 热心值 +1 收起 理由
    aniu + 3 + 1 谢谢@Thanks!

    查看全部评分

    aib0 发表于 2024-4-7 15:01
    你这个读取的PDF文档能用阅读器打开么?
    ChaosSPY1946021 发表于 2024-4-7 15:23
    这个错误信息提示的是,当尝试使用pypdf库读取一个PDF文件时,发现文件内容不符合有效的PDF文件头部格式,并且没有在文件中找到EOF(End Of File)标记。这通常表明PDF文件可能已损坏、不完整或者根本就不是一个PDF文件。

    在你的代码里,pdf_reader = PdfReader(temp_pdf_file)这行代码尝试打开一个临时PDF文件temp_pdf_file。但是,由于文件内容不是有效的PDF格式,所以pypdf库无法正确处理,最终抛出了PdfStreamError异常。

    免费评分

    参与人数 1热心值 +1 收起 理由
    aniu + 1 谢谢@Thanks!

    查看全部评分

    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则

    返回列表

    RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2024-12-15 21:34

    Powered by Discuz!

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表