كيف يمكنني استخدام العوامات مع XSL-FO في C# (NFOP)؟
سؤال
سؤال: هل يدعم NFOP يطفو؟
خلفية: لدي شرط إنشاء تقرير قابل للطباعة ، يحتوي على أرقام الصفحات وشعار الشركة وجدول البيانات. التقرير مخصص لمشروع قائم على الويب ، وفي البداية كنت أفكر في القيام بذلك في HTML النقي مع ورقة أنماط طباعة CSS ، ولكن يبدو أن أرقام الصفحات وتقسيم خلايا الجدول مشكلة.
ولهذا السبب ، قررت أن أذهب إلى مسار توليد PDF ، باستخدام XSL لإنشاء XSL-FO واستخدام NFOP لإنشاء PDF. ومع ذلك ، يبدو أن NFOP لا يدعم <fo:float>
جزء من XSL-FO؟
مما يقل ما يلي:
<fo:block>
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
يضيء أدناه الرسم بالكامل:
<fo:block>
<fo:float float="start">
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
</fo:float>
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
يتمثل الحل البديل الذي أستخدمه في الوقت الحالي في إنشاء حاوية كتلة منفصلة ، يتم وضعها على الإطلاق إلى المكان الذي يجب أن تظهر فيه الصورة العائمة ، والتأكد من عدم حجب المحتوى الآخر ، ولكن من السهل الحفاظ على تعويم بسيط.
المحلول
NFOP (أحدث إصدار في مارس 2008) هو .NET Port of Apache FOP (آخر إصدار في يوليو 2010). لم يدعم Apache FOP مطلقًا: Float (انظر http://xmlgraphics.apache.org/fop/compliance.html#fo-object-float).
لذا فإن إجابة سؤالك هي: لا ، FO: تعويم للأسف غير مدعوم.