مستند PDF الذي تم إنشاؤه باستخدام Itext# يفتح في Foxit ولكن ليس Acrobat

StackOverflow https://stackoverflow.com/questions/4140623

  •  30-09-2019
  •  | 
  •  

سؤال

يولد طلبي مستندات PDF باستخدام Itext#. تفتح الملفات بشكل جيد وعرضت بشكل صحيح في قارئ Foxit ولكن في أدوبي أكروبات يخطئ مع:

There was an error processing page. There was a problem reading this document (109).

لماذا سيفتح الملف في واحد ولكن ليس الآخر؟

هل كانت مفيدة؟

المحلول

كان هذا الكود الخاص بي:

        var document = new Document(_pageSize, PageMargin, PageMargin, PageMargin, PageMargin);
        var writer = PdfWriter.GetInstance(document, output);
        writer.CloseStream = false;
        writer.PageEvent = new Footer(HeaderFont, _defaultFont.BaseFont, report.Name);
        document.Open();

        if (report.Results.Any())
            document.Add(CreateTable(report.Results, report.Types, report.RootType));
        else
            document.Add(new Paragraph("No results", _defaultFont));

        writer.Close();

بعد إضافة الخط document.Close(); قبل writer.Close(); الخط ، يظهر الآن في كليهما Foxit و بهلوان.

أعتقد أن الشيء الرئيسي في Itext# هو أن تكون حذراً للغاية من أن الكائنات مغلقة بشكل صحيح. ربما يعكس هذا أنها مكتبة متنقلة وليست مكتبة مصممة لـ .NET من الألف إلى الياء.

نصائح أخرى

بعض قراء PDF أكثر تسامحا في مناطق مختلفة من غيرها. ربما يتجاهل Foxit البتات في ملف PDF الذي لا يدعمه. إصدارات مختلفة من Acrobat خنق على أشياء مختلفة ، فقط لتطويع المياه. دون رؤية PDF المعني ، كل ما لدينا هو التخمين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top