gpt4 book ai didi

Ruby - 如何将 EOF 标记添加到 PDF 文件中或以其他方式绕过 PDF::Reader::MalformedPDFError: PDF 不包含 EOF 标记

转载 作者:行者123 更新时间:2023-12-04 16:21:15 25 4
gpt4 key购买 nike

我正在使用 Mechanize ruby gem 单击网络上的按钮下载 PDF 文件并将其保存到本地文件系统。

URL = "www.my-site.com"
agent = Mechanize.new
agent.pluggable_parser.pdf = Mechanize::File # FYI I have also tried Mechanize::FileSaver and Mechanize::Download here

page = agent.get(URL)
form = page.forms.first
button = page.form.button_with(:value => "Some Button Text")

local_file = "path/to/file.pdf"
response = agent.submit(form, button)
response.save_as(local_file)

但是当我尝试使用 PDF::Reader 阅读此 PDF 文件时gem,我收到错误“PDF 不包含 EOF 标记”。
reader = PDF::Reader.new(local_file) # this also happens if I try to use PDF::Reader.new(response.body) and PDF::Reader.new(response.body_io) depending on the different pluggable_parser configurations mentioned above
#> PDF::Reader::MalformedPDFError: PDF does not contain EOF marker

我可以在本地保存 PDF 并查看它,它看起来不错,但是 PDF::Reader gem 提示它缺少 EOF 标记。

所以我的问题是:有没有办法可以在 PDF 中添加一个 EOF 标记或其他东西来解决这个错误,以便我可以解析 PDF?

谢谢。

相关(未回答)问题: PDF does not contain EOF marker (PDF::Reader::MalformedPDFError) with pdf-reader

相关文档:
  • http://mechanize.rubyforge.org/Mechanize/File.html
  • http://mechanize.rubyforge.org/Mechanize/Download.html
  • http://mechanize.rubyforge.org/Mechanize/FileSaver.html
  • https://github.com/yob/pdf-reader

  • 编辑:

    我在下载的文件内容中间的某处找到了 EOF 标记,然后是一些看起来像 HTML 的东西,我似乎无法弄清楚如何摆脱它们。我想隔离 PDF 内容然后解析它,但仍然遇到问题。这是我正在使用的完整脚本:
    https://gist.github.com/s2t2/c6766846d024edd696586b2bc7fee0bf

    最佳答案

    问题似乎与您正在访问的网站有关:http://employmentsummary.abaquestionnaire.org

    在响应末尾添加 HTML 数据。

    但是,您可以通过搜索第一个子字符串 %EOF 来截断响应。然后删除所有数据。

    IE。:

    pdf_data = result.body
    pdf_data.slice!(0, pdf_data.index("%EOL").to_i + 4)
    if(pdf_data.length <= 4)
    # handle error
    else
    # save/send pdf_data
    end

    关于Ruby - 如何将 EOF 标记添加到 PDF 文件中或以其他方式绕过 PDF::Reader::MalformedPDFError: PDF 不包含 EOF 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43152017/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com