מהו קובץ XSL-FO?
XSL-FO (אובייקטי עיצוב XSL) היא שפת גיליון סגנונות רבת עוצמה לעיצוב מסמכי XML. הסמנטיקה של הצורה התוחמת של נייר והדפסה באה לידי ביטוי באמצעות XSL-FO כאשר המידות קבועות. בניגוד ל-HTML, המייצג את הסמנטיקה של הצורה הבלתי מוגבלת של חלון דפדפן עם ממדים משתנים. מסמכי ה-XML המעוצבים על ידי XSL-FO משמשים בעיקר ליצירת קבצי PDF. XSL (שפת גיליון סגנונות להרחבה) היא קבוצה של טכנולוגיות W3C מלאות בתכונות שנועדו לעצב לעיצוב והחלפה של מסמכי XML ו-XSL-FO חלק משפה זו. XSLT ו-Xpath הם גם חלקים אחרים של XSL.
מוצע להמיר תחילה מסמכי XML ל-XSL-FO, PDF הוא דוגמה לקריטריון זה. ב-PDF, התוצאות מוצגות באמצעות XSLTfirst, ולאחר מכן בפורמט XSL-FO. באופן זה, ניתן לעצב מסמכי XML באופן אקראי. למרות ש-XSL-FO מנצל את היתרון של שימוש במאפיינים של גיליון סגנונות מדורגים (CSS) והרחבתם היכן שנדרש עבור הפורמט האמיתי, הוא מכיל את אספקת תבניות העמוד הנקראות עמוד מאסטר בטרמינולוגיה של XSL-FO. XSL-FO מספק גם עיצוב עבור מסמכים מתוחכמים למדי ותומך ביצירת אינדקס.
היסטוריה ומושגים בסיסיים
בינואר 2012 עודכנה טיוטת העבודה של XSL-FO בפעם האחרונה, ובנובמבר 2013, קבוצת העבודה שלו נסגרה. גיליון סגנונות XSL מציין הצגת מחלקה של מסמכי XML על ידי תיאור האופן שבו מופע של המחלקה הופך למסמך XML המשתמש באוצר המילים של העיצוב. XSL-FO היא שפת מצגות משולבת ואין לה סימונים סמנטיים המשמשים ב-HTML. יתרה מכך, שפה זו מאחסנת את כל נתוני המסמך בתוך עצמה, בניגוד ל-CSS שמשנה את הגדרות ברירת המחדל של מסמך HTML או XML חיצוני.
הקריטריונים הכלליים של שימוש ב-XSL-FO הוא שהמשתמש כותב מסמך בשפת XML במקום לכתוב ב-FO. לאחר מכן, מתרחשת טרנספורמציה של XSLT. טרנספורמציה XSLT זו אחראית להמרה של XML ל-XSL-FO. ברגע שמסמך ה-XSL-FO נוצר, הוא מועבר לאפליקציה הנקראת מעבד FO. מעבדי FO אחראים להפיכת מסמך זה למסמך קריא וגם להדפסה. קבצי PDF או PS הם דוגמאות לפלט הנפוץ ביותר של XSL-FO. אבל זה לא אומר שמעבד FO יכול לייצר רק את שני סוגי הפורמט האלה כפלט. חלק ממעבדי ה-FO יכולים להוציא בקבצי RTF או אפילו חלון יכול להופיע ב-GUI של המשתמש, חלון זה מציג את רצף העמוד ואת תוכנו.
מסמך XSL-FO שונה מ-PDF או PS במובן זה שהוא לא מגדיר בסופו של דבר את פריסת הטקסט בדפים שונים. אולי, זה מעצב את הדפים וקובע את המקומות להצגת התוכן. יתר על כן, מעבד FO מארגן את הטקסט בתוך הגבולות שצוינו במסמך ה-FO. מפרט זה אפילו מאפשר למעבדי FO שונים להתנהג בהתאם לדפים שנוצרו כתוצאה מכך. דוגמה להתנהגות כזו היא מיקוף, מעבדי FO מעטים יכולים למקף מילים על מנת לחסוך מקום בעת מעבר שורה, בעוד שמעבדים מסוימים אינם בוחרים באפשרות זו. זה תלוי במעבדים לבחור אלגוריתמי מיקוף שונים התואמים את הדרישות שלהם. אלגוריתמי מיקוף אלו עשויים להיות פשוטים מאוד או אולי מורכבים יותר. במצבים מסוימים, מפרט XSL-FO מטיל סנקציות מפורשות על מעבדי FO, במידה מסוימת של בחירה בהקשר לפריסה.
וריאציה זו בין מעבדי FO מייצרת תוצאות משתנות, שלעתים קרובות המעבדים אינם מודאגים לגביהן. מכיוון שהמיקוד הכללי של XSL-FO הוא הפקת מסמכים מדופפים/מודפסים. מסמכי XSL-FO עצמם פועלים בדרך כלל כמתווכים, תפקידם העיקרי הוא ליצור קבצי PDF או מסמך שניתן להדפיס כפלט להפצה. ב-HTML/CSS או XSL-FO, הפצת ה-PDF כתוצאה סופית במקום הזנת שפת העיצוב מצביעה על כך שהמקלטים נשארים לא מושפעים מהרבגוניות שנוצרת כתוצאה מהבדלים בין מתורגמני שפת העיצוב. מצד שני, ברור שאין דרך קלה, שמסמך יכול למלא את הצרכים השונים של הנמענים, למשל גודל עמוד משתנה או גודל גופן רצוי, או התאמה לדף או להדפסה.
פורמט קובץ XSLFO
מסמכי SL-FO הם בעצם מסמכי XML, אבל הם לא עוקבים אחר סכימה כלשהי. במקומו, מסמכי SL-FO עוקבים אחר התחביר המוגדר במפרט השפה שלהם. ישנם שני סעיפים הנדרשים בכל מסמך XSL-FO:
- קטע המציין רשימה של פריסות עמודים עם תווית.
- קטע עם כל הפרטים של נתוני המסמך, עם סימון, הקובע את הצגת התוכן בדפים שונים באמצעות פריסות עמודים שונות.
מאפייני העמוד מוזכרים בפריסות העמוד, שיכולות להגדיר את הארגון של הטקסט, כדי לעמוד במוסכמות עבור השפה הספציפית. יתרה מזאת, גודל העמוד, השוליים ורצפי העמודים שלהם (שמחייבים מאפיינים שונים עבור הדפים האי-זוגיים והזוגיים) מוגדרים גם הם על ידי פריסות העמוד.
חלק הנתונים של המסמך מחולק לסדרה של זרימות, כאשר כל זרימה מחוברת לפריסת עמוד. הזרימות מצרפות בהן רשימה של בלוקים. רשימת בלוקים זו עשויה להכיל תכונות סימון מוטבעות או רשימה של נתוני טקסט, או אולי שניהם בו-זמנית. שוליים של המסמך עשויים להציג גם את מספרי העמודים או כותרות הפרקים. הפונקציונליות של הבלוקים ושל האלמנטים המוטבעים נשארת זהה לזו של ה-CSS, עם זאת, חלק מכללי הריפוד והשוליים שונים בין FO ל-CSS.
כיוון כיוון העמוד מוגדר כולו עבור הרחבת בלוקים ו-inlines, ובכך גורם למסמכי FO לפעול תחת השפות השונות מאנגלית. השפה של מפרט ה-FO משתמשת במילים התחלה וסוף ולא שמאל וימין לתיאור ההוראות. סימון התוכן הבסיסי וכללי המעבר הבסיסיים של XSL-FO לקוחים מ-CSS. השפה של XSL-FO מסכימה למפרטים הבאים.
מספר עמודות
עמוד יכול לכלול מספר עמודות ובלוקים והוא יכול להתרחב מעמודה אחת לאחרת כברירת מחדל. למספר עמודים מותר להיות רוחב ומספר עמודות שונים. כל מאפייני ה-FO עומדים במגבלות של דף מרובה עמודות.
רשימות
רשימת XSL-FO נוצרת על ידי שתי קבוצות של בלוקים מסודרים לחי אחר לסת. מבחינה קונספטואלית, ברשימה, בלוק משמאל מציין מספר, תבליט או מחרוזת טקסט, בעוד שהגוש בצד ימין עשוי לעבוד כמצופה. המספור של רשימות XSL-FO נעשה בדרך כלל על ידי ה-XSLT.
טבלאות
טבלת FO דומה לטבלת HTML/CSS. המשתמש יכול לבחור את שורות הנתונים, מידע הסגנון, צבע הרקע עבור כל תא בודד. באמצעות מידע סגנון מובהק, למשתמש יש את ההרשאה לבחור את השורה הראשונה כשורה של כותרת טבלה. ניתן ליידע את מעבד ה-FO באופן מפורש לגבי מפרט החלל של כל עמודה, או להתאים אוטומטית את הטקסט בטבלה.
יצירת אינדקס
ל-XSL-FO 1.1 תכונות שעוזרות ליצור אינדקס באמצעות הפניה לאלמנטים מסומנים כהלכה.
יתרונות
- מתאים לפרסום מבוסס תוכן
- קלות שימוש
- זול