我正在使用iTextSharp dll版本4.1.2.0进行pdf合并。但它导致最终合并的pdf中的某些页面空白。但是这个问题在最新的dll中没有出现。 我使用.net框架1.1,所以我不能使用最新的DLL因为它不支持。 那么,请提出建议,我应该为此做些什么。
由于
答案 0 :(得分:0)
是的,我有一些解决方案,“如果我们将使用最新的dll那么它没问题,但是如果我们使用支持.net框架1.1的dll可能会在最新的dll之前。
在我的情况下的问题是一些pdf已损坏且无法正确解析,这就是为什么它会抛出异常为“尝试读取流过末尾”。我在网上发现有些pdf有在EOF Marker之后还有一些字符,那就是问题。所以,我们必须从文件中删除所有字符并在新创建的pdf文件中进行测试。它对我有用。
public void RemoveExtraBytes(string ofilepath,nfilepath)
{
string oldfilePath =ofilepath;
string newFilePath="nfilepath";
WebClient client = new WebClient();
byte[] buffer = client.DownloadData(filePath);
string str;
int position = 0;
str = ASCIIEncoding.ASCII.GetString(buffer);
if (str.Contains("%%EOF"))
{
position = str.LastIndexOf("%%EOF");
}
Stream stream = new System.IO.FileStream(newfilepath, FileMode.Create);
stream.Write(buffer, 0, position);
stream.Close();
}