بلوک‌های XSL-FO (بلوک‌ها)

خروجی XSL-FO در منطقه بلوک قرار دارد.

صفحه، جریان و بلوک XSL-FO

بخش‌های محتوایی به سمت “صفحه” جاری می‌شوند و سپس به رسانه‌ها خروجی داده می‌شوند.

خروجی XSL-FO معمولاً در داخل عناصر <fo:block> قرار دارد، <fo:block> در داخل عناصر <fo:flow> قرار دارد، <fo:flow> در داخل عناصر <fo:page-sequence> قرار دارد:

<fo:page-sequence>
  <fo:flow flow-name="xsl-region-body">
    <fo:block>
      <!-- Output goes here -->
    </fo:block>
  </fo:flow>
</fo:page-sequence>

خصوصیات منطقه بلوک

بلوک‌ها در یک ترتیب توالی در مستطیل قرار دارند:

<fo:block border-width="1mm">
این بلوک خروجی اطراف آن یک لبه یک میلیمتر دارد.
</fo:block>

به دلیل اینکه منطقه بلوک مستطیل است، می‌تواند بسیاری از خصوصیات منطقه مشترک را به اشتراک بگذارد:

  • space before و space after
  • مargins
  • لبه
  • padding
  • space before

نمودار:

space before و space after منطقه خالی است که بین بلوک‌ها نقش جداسازی دارد.

مargins منطقه خالی بیرونی بلوک است.

لبه حلقه مستطیلی خارجی لبه‌های این منطقه. هر چهار لبه می‌تواند عرض متفاوتی داشته باشد. همچنین می‌تواند با رنگ‌های مختلف و تصاویر پس‌زمینه پر شود.

padding منطقه‌ای است که بین محدوده محتوا و لبه قرار دارد.

محتوامنطقه می‌تواند محتوای واقعی را شامل شود، مانند متن، تصاویر، گرافیک‌ها و غیره.

مargins بلوک

  • مargins
  • مargins بالا
  • مargins پایین
  • مargins چپ
  • مargins راست

لبه بلوک

خصوصیت رشتة لبه:

  • راسته لبه
  • راسته لبه پیش
  • راسته لبه پس
  • راسته لبه بالا
  • راسته لبه پایین
  • راسته لبه بالا (معادل border-before)
  • راسته لبه پایین (معادل border-after)
  • راسته لبه سمت چپ (معادل border-start)
  • راسته لبه سمت راست (معادل border-end)

خصوصیت رنگ لبه:

  • رنگ لبه
  • رنگ لبه پیش
  • رنگ لبه پس
  • رنگ لبه بالا
  • رنگ لبه پایین
  • رنگ لبه بالا (معادل border-before)
  • رنگ لبه پایین (معادل border-after)
  • border-left-color (معادل border-start)
  • border-right-color (معادل border-end)

ویژگی‌های عرض حاشیه:

  • border-width
  • border-before-width
  • border-after-width
  • border-start-width
  • border-end-width
  • border-top-width (معادل border-before)
  • border-bottom-width (معادل border-after)
  • border-left-width (معادل border-start)
  • border-right-width (معادل border-end)

پادگذاری بلوک

  • padding
  • padding-before
  • padding-after
  • padding-start
  • padding-end
  • padding-top (معادل padding-before)
  • padding-bottom (معادل padding-after)
  • padding-left (معادل padding-start)
  • padding-right (معادل padding-end)

پس‌زمینه بلوک

  • background-color
  • background-image
  • background-repeat
  • background-attachment (scroll یا fixed)

ویژگی‌های استایل بلوک:

این رشته خروجی می‌تواند به صورت جداگانه با استایل تغییر کند:

<fo:block
  font-size="12pt"
  font-family="sans-serif">
این بلوک خروجی با فونت 12pt sans-serif نوشته خواهد شد.
</fo:block>

ویژگی‌های فونت:

  • font-family
  • font-weight
  • font-style
  • font-size
  • font-variant

ویژگی‌های متن:

  • text-align
  • text-align-last
  • text-indent
  • start-indent
  • end-indent
  • wrap-option (تعریف جابجایی خودکار، پیچش کلمات)
  • break-before (تعریف خط‌شکن، شکاف‌های صفحه)
  • break-after (تعریف نشانه‌های صفحه‌آوری، break-after)
  • reference-orientation (تعریف چرخش متن در 90" درون)

مثال

<fo:block
    font-size="14pt" font-family="verdana" color="red"
    space-before="5mm" space-after="5mm">
W3School
</fo:block>
<fo:block
    text-indent="5mm"
    font-family="verdana" font-size="12pt"
    space-before="5mm" space-after="5mm">
در CodeW3C.com تمامی آموزش‌های ایجاد وب‌سایت را خواهید یافت که
نیاز داریم، از HTML و XHTML ابتدایی تا XML، XSL، چندرسانه‌ای پیشرفته
و WAP.
</fo:block>

نتیجه:

لطفاً به مثال بالا نگاه کنید، اگر بخواهید یک مدارک دارای بسیاری از عنوان‌ها و بخش‌ها ایجاد کنید، به مقدار زیادی کد نیاز خواهید داشت.

معمولاً، مدارک XSL-FO مانند آنچه که ما در لحظه قبل انجام دادیم، اطلاعات فرمتی و محتوای را ترکیب نمی‌کنند.

با کمی کمک از XSLT، ما می‌توانیم اطلاعات فرمتی را در قالب قرار دهیم و سپس محتوای خالص‌تری بنویسیم.

شما در فصل‌های بعدی این آموزش یاد خواهید گرفت که چگونه از قالب‌های XSLT برای ترکیب XSL-FO استفاده کنید.