iTextSharp dll 4.1.2.0 проблема, приводящая к пустым страницам в объединенном PDF - PullRequest
0 голосов
/ 09 января 2012

Я использую iTextSharp dll версии 4.1.2.0 для слияния PDF. Но это приводит к тому, что некоторые страницы остаются пустыми в окончательном объединенном PDF.но эта проблема не присутствует в своей последней DLL.Я использую .net Framework 1.1, поэтому я не могу использовать последний DLL, потому что он не поддерживает.Итак, пожалуйста, дайте предложение, что я должен сделать для этого.

Спасибо

1 Ответ

0 голосов
/ 17 января 2012

Да, у меня есть такие решения, как «если мы будем использовать последнюю DLL, тогда все в порядке, нет проблем, но что, если мы используем DLL, которая поддерживает .net framework 1.1, которая может быть до последней 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();
}
...