itextsharp ونقل بعض البيانات إلى الصفحة التالية

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

  •  29-09-2019
  •  | 
  •  

سؤال

أقوم بإنشاء فاتورة باستخدام itextsharp. يعرض ذلك بشكل جيد ولكن في وقت ما ، عندما تكون عناصر الفاتورة أكبر في الكمية ، يتم تقسيم الجزء الموجز (الذي يعرض المجموع الفرعي والضريبة والخصومات والمجموع الكبير وما إلى ذلك). يعرض البعض في الصفحة الحالية وبعض التحركات إلى الصفحة التالية. كنت أفكر في نقل جزء ملخص كامل إلى الصفحة التالية ، إذا لم يكن الارتفاع الحالي غير كافٍ لذلك.

ومع ذلك ، للقيام بذلك ، أحتاج إلى معرفة مقدار ارتفاع الصفحة (بعد عرض محتوى الصفحة الحالي). أتساءل عما إذا كان شخص ما يعرف كيفية حساب الارتفاع الأيسر الحالي للصفحة؟ أو إذا كان هناك خاصية في pdfptable والتي قد تجبر الجدول على طباعة نفسها ككل ولا تدعها تنقسم عبر صفحات متعددة! أعتقد أنه إذا كان الخيار الثاني متاحًا ، فسيكون الأمر سهلاً.

باختصار ، أحتاج إلى معرفة ما إذا كان من الممكن حساب ارتفاع الصفحة المتبقية ، وأيضًا إذا كان ذلك ممكنًا لإجبار الجدول على عدم الانقسام عبر صفحات متعددة.

شكرا لك. samesers

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

المحلول

يمكنك ضبط SplitLate إلى false لتجنب كسر الصفحة التلقائية في بيانات الخلية يتجاوز الحد.

......
table.addCell(cellData);

table.SplitLate = false;
......

نصائح أخرى

أقترح عليك استخدام جدول متداخل لقسم الملخص الخاص بك. لا أعتقد أن itext ستقسم خلية معينة على حدود الصفحة ، لذلك سيبقى كل شيء في تلك الخلية (حتى لو كان هناك طاولة متداخلة مع خلايا خاصة بها) على نفس الصفحة.

استخدم صف خلية الطاولة حتى يتطلب صفًا كاملًا من تلقاء نفسه.

لست متأكدًا ، لكنني أراهن بيرة.

ما هو الكائن الذي تستخدمه لإضافة بياناتك إلى PDF؟ multicolumntext ، فقرة ، عبارة؟

يجب أن تكون قادرًا على استخدام Document.Pagesize.height الخاصية لإرجاع ارتفاع الصفحة.

ثم استخدم pdfptable.height لإرجاع ارتفاع الجدول الخاص بك.

لذا ، فقط استخدم المستند المنطقي. pagesize.hight - الجدول.

يحتوي الكائن PDFPTable على خصائص تدعى SPLITLATE و SPLICTROWS. أعتقد أنه يمكنك استخدام هذه الخصائص محاولة والحفاظ على الجدول في صفحة واحدة.

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