gpt4 book ai didi

c# - iTextSharp 异常 : PDF header signature not found

转载 作者:可可西里 更新时间:2023-11-01 08:07:07 31 4
gpt4 key购买 nike

我正在使用 iTextSharp 阅读 PDF 文档的内容:

PdfReader reader = new PdfReader(pdfPath);
using (StringWriter output = new StringWriter())
{
for (int i = 1; i <= reader.NumberOfPages; i++)
output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()));

reader.Close();
pdfText = output.ToString();
}

99% 它工作正常。然而,有一个 PDF 文件有时会抛出这个异常:

PDF header signature not found. StackTrace: at
iTextSharp.text.pdf.PRTokeniser.CheckPdfHeader() at
iTextSharp.text.pdf.PdfReader.ReadPdf() at
iTextSharp.text.pdf.PdfReader..ctor(String filename, Byte[]> ownerPassword) at
Reader.PDF.DownloadPdf(String url) in

令人恼火的是我不能总是重现错误。有时有效,有时无效。有人遇到过这个问题吗?

最佳答案

经过一些研究,我发现这个问题要么与文件在 PDF 生成期间损坏有关,要么与文档中不符合 iTextSharp 中实现的 PDF 标准的对象相关的错误有关。它似乎也只有当您从磁盘读取 PDF 文件时才会发生。

我还没有找到问题的完整解决方案,只是找到了解决方法。我所做的是使用 PdfReader itextsharp 对象读取 PDF 文档,并查看在正常操作中读取文件之前是否发生错误或异常。

所以运行类似这样的东西:

private bool IsValidPdf(string filepath)
{
bool Ret = true;

PdfReader reader = null;

try
{
reader = new PdfReader(filepath);
}
catch
{
Ret = false;
}

return Ret;
}

关于c# - iTextSharp 异常 : PDF header signature not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621936/

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