忽略 CombinePdf 异常

Ignore a CombinePdf exception

提问人:Steph 提问时间:6/15/2022 更新时间:1/31/2023 访问量:321

问:

我只想跳过 CombinePdf::P arsingError(不支持可选内容 PDF 文件,并且无法安全地提取其页面。 当我在 begin/rescue 中上传 PDF 文件但它不起作用时,我该怎么办?

begin
  FileManager::PdfValidation.new(uploaded_files)
rescue ParsingError => e
end
Ruby-on-Rails Ruby 异常 组合-PDF

评论

1赞 user1934428 6/15/2022
我不知道combine-pdf,但如果你写的是真的,那应该是.还是我错过了什么?rescue CombinePdf::ParsingError

答:

1赞 gettalong 6/16/2022 #1

如果您查看 combine_pdf 的代码,您会发现可以解析具有可选内容的文件。

此外,README 还指出:

有时,即使可以解析 PDF(即,当 PDF 可选内容存在时),CombinePDF 也会引发异常......我发现最好谨慎行事,尽管对于可选内容 PDF,使用 CombinePDF.load(pdf_file, allow_optional_content: true) 可以避免例外。

你可以试试。

或者,根据您的用例,您可以尝试 pdf-reader(如果您只想从 PDF 中读取某些内容)或 HexaPDF(这是一个功能齐全的 PDF 库;我是HexaPDF的作者)。

1赞 Bruno De Freitas Barros 1/31/2023 #2

试试这个:

CombinePDF.load("your_file.pdf", unsafe: true, allow_optional_content: true)

来源:https://github.com/boazsegev/combine_pdf/issues/28#issuecomment-1376413479