המרת פורמט קבוע-עמוד
Aspose.Words ליישם את מנוע הפריסה של הדף שלו. לפני להעמיק את המפרט שלה, כדאי לדון תחילה מסמך ברמה גבוהה. כאשר חושבים על מסמך, משתמשים בדרך כלל לדמיין מספר של דפי נייר המכילים מילים, תמונות, טבלאות ו charts. מסמכים יכולים להיות מסוגים שונים, כגון טקסט, גליונות התפשטות, שקופיות, רישומים CAD, זרימות, ולכן, יכולים להיות פריסות שונות לחלוטין. רוב היישומים מאפשרים לשלוח מסמכים למדפסת; זה כאשר משתמש יכול באמת להציג את המראה הסופי של המסמך המיועד.
הצגת מסמך בבקשות שונות
יישומים שונים של צפייה במסמך או פרסום מאפשרים למשתמשים להיפתח (Adobe Acrobat, XPS Viewer, ולעתים לערוך (Adobe InDesign) מסמכים של פורמטים ספציפיים. יישומים אלה מייצרים בדרך כלל מסמך בפורמט שנקרא “תיקון דפי”. פורמט מסמך כזה מתאר בדיוק היכן מונח התוכן של מסמך על כל דף. באופן פנימי, PDF או XPS פורמט מכיל תיאור של כל דף, כמו גם הוראות ציור, המציין את הפריסה של התוכן בדף. זה דומה פורמטי תמונה, מתאר היכן התוכן מוצג או בצורת raster או וקטור.
לעומת זאת, כמה יישומי עריכת טקסט אינם תומכים בצפייה בדפים של מסמך. למשל, Microsoft Notepad תומך מעט מאוד פונקציות אחרות מאשר רק להציג, עריכה וטקסט הדפסה. התצפית החשובה כאן היא שיישומים כאלה לא יכולים להציג דפים של המסמך ולא לספר למשתמש כמה מהם יודפסו, רק לאפשר להציג את תוכן המסמך. ניתן לשמור את המסמך בפורמט טקסט רגיל וניתן לפתוח אותו על ידי יישומים רבים אחרים. באמצעות יישום המאפשר צפייה בתוכן בינארי של קובץ שרירותי ניתן לראות מה מאוחסן בקובץ המסמך - זה פשוט טקסט פשוט, אין בו שום דבר אחר.
יישומים מתוחכמים יותר לעריכת טקסט, כגון Microsoft Wordפד, שמור את המסמך בפורמט טקסט עשיר (RTF), אשר תומך בפונקציות פורמט יותר, כגון הוספת תמונות, עיצוב אופי, פיסקה שולי וחיתוך. עם זאת, פורמט RTF מכיל גם את התוכן של המסמך, ללא מידע על דפים.
Microsoft Word הוא היישום המתקדם ביותר לעריכת טקסט ב Windows היום. זה פורמטים בפורמט DOCX, המתאר את התוכן של המסמך באופן גמיש ובהרחבה, ומאפשר למשתמשים לציין גודל דף, אוריינטציה למקטע מסמך, ו, להיות יישום WYSIWYG אפילו להציג דפי מסמך על המסך. עם זאת, עדיין אין מידע לגבי האופן שבו התוכן של המסמך מוצג בעמודים הזמינים בקובץ המסמך. קובץ המסמך מתאר רק את התוכן עצמו, ואת הקשר של מסמך אובייקטים אחד לשני, יחד עם כמה מגבלות גיאומטריות. כתוצאה מכך, לפני הצגת מסמך, Microsoft Word קובע את המידע הזה עצמו. זה המקום שבו פריסת דף נכנסת למשחק.
מה זה Page Layout
פריסת דף מסמך היא מבנה נתונים, המתאר איפה אובייקט מסוים ממוקם על דפים עבור כל אובייקטי המסמך. בנוסף, מכיוון שלאובייקטים יש תכונות המשפיעות על הופעתם, כגון גודל גופן, גילוח או ציור אפקטים, אתה צריך לא רק לדעת היכן האובייקט הוא, אלא גם איזה שטח (s) של הדף הוא תופס, ואם זה יחול על דפים מרובים כך שאובייקטים אחרים לא חופפים את אותו אזור (s).
Aspose.Words יישום פריסת דף פונקציונליות פנימית המאפשרת לו לייצר את כל פורמטי העמוד הקבועים, כגון PDF, PDF, XPS, פורמטי תמונה שונים. ללא פריסת דף, המידע המאוחסן בקובץ מסמך העמוד הקבוע לא יהיה זמין וכל הפורמטים האלה לא יתמכו.
היחס בין מסמך לבין פריסת דף הוא די פשוט. בעוד מסמך מתאר את התוכן, פריסת העמוד המקביל מתאר את הגיאומטריה של תוכן זה. הערה, כי פריסת דף לא יכולה להתקיים ללא מסמך שכן לא יהיה תוכן למחשוב הגיאומטריה, אבל מסמך יכול להתקיים ללא פריסת דף. לדוגמה, כאשר מסמך DOCX מומר במסמך RTF, בדרך כלל אין צורך לדעת את הגיאומטריה, שכן אף פורמט אינו מאחסן אותה.
יצירת דף
יצירת פריסת דף יכולה להיות הליך יקר, הן מבחינת מהירות וזיכרון. זה נובע ממספר סיבות:
-
- המסמך עשוי להיות כמות גדולה של תוכן, אשר עשוי להיות מוצג על אלפי דפים. הגיאומטריה של כל אובייקט על כל דף צריך להיות מתואר, צריכת משאבי זיכרון.
-
- המסמך עשוי להיות כללים רבים, הצבת מגבלות על גיאומטריה. ניתן להשקיע זמן חישובי סביר, להבטיח שכל אימון הוא מרוצה
- כמה תכונות מסמך, למשל,
NUMPAGES
שדה, יצירת תלות חוזרת לערכי נכסים עתידיים, שאינם זמינים בעת חישוב. זה מוביל חישובים חוזרים ומוסיף בזמן חישוב.
בשל הסיבות הנ"ל, Aspose.Words ליצור פריסת דף רק כאשר זה הכרחי. סיבה טיפוסית לכך תהיה בקשה להפוך דפי מסמך או להשיג ערך שדה שתלוי במידע הזמין בפריסה בעמוד. סיבה פחות ברורה יכולה לייצא מסמך ל- HTML. אף על פי ש-HTML אינו פורמט קבוע של עמודים והוא אינו מתאר את הגיאומטריה של אובייקטים התוכן, הוא עדיין תומך בתמונות. תמונות כאלה עשויות להיות בצורת צורות שנוצרו Microsoft Word עם טקסט בפנים. לדוגמה, תרשים עם תוויות ציר ניתן לייצא ל- HTML כתמונה, אבל לפני שניתן לעשות זאת. Aspose.Words צריך להפוך את התמונה הזו, ולכן צריך לדעת איפה להציג את התווית. ראה את דוגמא הטבלה להלן:
Non-Geometric נכסים
בנוסף לטיפול במידע גאומטרי, פריסת דף אחראית גם לחישוב צבעים וסגנונות גבול. In In In Microsoft Word, צבע טקסט יכול להיות מוגדר כאוטומטי, מרמז כי בחירת הצבעים צריך להיות מבוסס על צבע הגילוח של התא או פסקה, או מבוסס על צבע הדף, שבו הטקסט מופיע.
הפריסה בעמוד מתארת איפה הטקסט יופיע ומה התוכן יימסר מאחורי זה, המאפשר חישוב צבע. ישנם חישובים ספציפיים אחרים שבוצעו על ידי פריסת הדף. לדוגמה, גבול אופקי בטבלה תלוי אם שורת שולחן נמשכת בעמודה של טקסט, ואם היא שבורה על פני עמודות. אם רצף ניתן אחרון בעמודה, הגבול התחתון משמש במקום אופקי.
In In In Aspose.Words משתמש יכול לבקש אם לבנות פריסת דף חדשה, או לעדכן קיים. שניהם יכולים להתבצע על ידי [UpdatePageLayout](https://reference.aspose.com/words/java/com.aspose.words/document/#updatePageLayout()שיטה, המסופקת על ידי Document מעמד. אם פריסת דף אינה קיימת, אך יש צורך בה (לדוגמה, כאשר המסמך ייצוא לתבנית דפית קבועה), Aspose.Words באופן אוטומטי נקרא שיטה זו. עם זאת, אם קיימת כבר פריסת דף, Aspose.Words ישתמשו במשאבים הקיימים כדי להימנע מצריכת המשאבים הדרושים כדי לעדכן אותם. במקרה זה, המשתמש צריך להתקשר UpdatePageLayout
שיטה, כדי להבטיח כי פריסת העמוד היא עד תאריך עם מודל המסמך.
מבנה דינמי
תהליך יצירת פריסת העמוד כולל את השלבים הבאים:
-
- Conversion - enumerating התוכן של מודל המסמך והכנת אובייקטים הפריסה המקבילים.
-
- Build - סידור אובייקטים הפריסה לייצג את התוכן של המסמך על דפים.
-
- Reflow עדכון סידור אובייקטים כדי לספק מגבלות גיאומטריה.
- • יצירת אובייקטים פריסה לתוך הצגת דף קבועה והשלמת מידע צבע *.
- בניית וזרימה של תוכן צורה * - צעד נדרש אם המסמך מכיל צורות עם תוכן טקסט מקונן.
הערה, כי פריסת העמוד היא מבנה דינמי, אשר ניתן לבנות באופן חלקי. הדבר נחוץ במיוחד כאשר אי אפשר לחשב ערכי שדה מבלי לבנות מחדש את מבנה הפריסה של המסמך. השדה יכול להתייחס למיקום של אובייקט בעמוד, ובמקביל ערך השדה עצמו ניתן גם על הדף, המשפיע על המיקום של האובייקט הנזכר. פריסת דף לא ניתן לבנות בהליכה אחת, כי ערכי שדה עדיין לא יהיו זמינים בעת מיקום בדף.
שקול את התרחיש האופייני כאשר NUMPAGES
שדה מופיע למרגלות העמוד הראשון במסמך. הערך של שדה זה הוא המספר הכולל של דפים. על מנת למקם את השדה בדף, יש לדעת את ערכו. אם רק העמוד הראשון נבנה כעת, המספר הכולל של דפים עדיין לא ידוע. במקרה זה, פריסת העמוד צריכה להשתמש בערך ברירת המחדל ולאחר מכן לחזור לשדה זה ולשנות את ערכו על פי חישובים בפועל. עם זאת, שינוי ערך השדה עשוי להשפיע על תוכן מסמך אחר בדף ובסופו של דבר לגרום דף חדש להיות נספח או דף קיים הוסר, ובכך להפוך את הערך המובא מיושן. בעיה זו ניתן לפתור על ידי הפיכתה לאפשרית לעדכן את פריסת הדף הקיימת.
בעת יצירת פריסה, ניתן גם להגדיר LayoutOptions תכונות המשפיעות על הפלט של המסמך בדפים.
שמירה על פורמט קבוע-עמוד
לאחר פריסת העמוד בנויה והגאומטריה של חפצים ומיקומה על הדף מחושבים, ניתן לשמור את המסמך בפורמט קבוע בעמוד נתמך על ידי Aspose.Words. בעת שמירת מסמכים לפורמטי דף קבועים, ניתן להשתמש באפשרויות הניתוק המשותף לכל הפורמטים הללו. הם מאפשרים לשלוט:
- התקדמות של שמירת מסמך בעמוד (Page-by-page)PageSavingCallback.
- קבוצה של דמויות המשמשות למספריםNumeralFormat.
- שחקן metafile (MetafileRenderingOptions. לפרטים נוספים, ראה Handling Windows metafiles מאמר.
- שיעור איכות עבור דיכוי תמונות JPEG, הערך של אשר עשוי להיות שונה במקצת, בהתאם לתבנית שמירת שנבחרה (JpegQuality.
- אופטימיזציה של גרפיקה וקטורית ב Aspose.Words תפוקה (OptimizeOutput.
- אפשרויות גרפיות בעת שמירת Tiff, Png, Bmp, Jpeg, Emf פורמטים (UseAntiAliasing, UseHighQualityRendering.
- שמור את המסמך באפורה (ColorMode.
- מעבר בין שכפול של צורות DrawingML וצורות נפילה (DmlRenderingMode.
- מעבר בין DML אפקטים להפוך מודים (DmlEffectsRenderingMode.
הדוגמה להלן ממחישה כיצד לחסוך מסמך בפורמט JPEG באמצעות פורמט JPEG Save
שיטה וקביעת אפשרויות: