שמירת וייצוא מסמכים
שמירה וייצוא של מסמכים
Document.Save כותב מסמך לקובץ או זרם בפורמט יעד. הפורמט נגזר או מהרחבה של הקובץ, ניתן במפורש כערך SaveFormat, או מונחה על ידי תת-מחלקה של SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions או TxtSaveOptions — לשליטה ספציפית לפורמט. מדריך זה מכסה את העומסים Save, את המונה SaveFormat, אפשרויות שמירה של OOXML, ייצוא ל-Markdown וטקסט פשוט, וכן זיהוי פורמט לפני המרה.
שמירה עם Document.Save
הקריאה הפשוטה ביותר, Document.Save(fileName), מניחה את פורמט היעד מהרחבת הקובץ. Save(fileName, saveFormat) מגדיר במפורש את הפורמט ללא קשר להרחבה, ו-Save(fileName, saveOptions) (או העומסים המתאימים של Stream) מקבלת תת-מחלקה של SaveOptions להגדרות ספציפיות לפורמט. SaveOptions.CreateSaveOptions(saveFormat) היא מפעל סטטי שמחזיר את תת-המחלקה המתאימה של אפשרויות עבור SaveFormat נתון עם ערכי ברירת המחדל שכבר הוגדרו.
בחירת פורמט עם SaveFormat
ה-enum SaveFormat מונה כל מזהה של פורמט שמירה שהספרייה מזהה. Document.Save כותב במלואו גם אל וגם מתוך פורמטי המסמכים הליבתיים של גרסה זו — DOCX, DOCM, DOTX, DOTM, ו-Flat OPC (כולל גרסאות המאפשרות מקרו ותבניות) — וכן Markdown וטקסט פשוט. FileFormatUtil.SaveFormatToExtension(saveFormat) ו-ExtensionToSaveFormat(extension) ממירים בין ה-enum למחרוזת של הרחבת קובץ.
קיימים ערכי SaveFormat מסוימים ב-enum לשם שלמות API, אך הם מתייחסים לפורמטים שהגרסה המוקטנת והקוד-פתוח הזאת לא מיישמת קורא או כותב פעילים עבורם — ניסיון לשמור לאחד מהם יפיק פלט שאינו שקול למסמך המקורי. השתמשו רק בפורמטים שהוזכרו למעלה לקבלת סיבוב-חזרה אמין.
אפשרויות OOXML: DOCX, DOCM, DOTX, DOTM, ו-Flat OPC
OoxmlSaveOptions מגדיר שמירה לכל אחד מתבניות ה-Open XML. המאפיין SaveFormat שלו בוחר איזו גרסה ספציפית לכתוב; Password מגדיר סיסמת פתיחה לקובץ השמור (עצמאית מהמגבלות לעריכה של Document.Protect); Compliance בוחר את רמת הקפדנות של OOXML; ו-CompressionLevel / Zip64Mode שולטות באריזת ZIP הבסיסית. בנה אחת עם new OoxmlSaveOptions(saveFormat) או דרך SaveOptions.CreateSaveOptions(saveFormat).
ייצוא ל-Markdown
MarkdownSaveOptions שולל ייצוא ל-Markdown: ListExportMode ו-LinkExportMode קובעים איך רשימות וקישורים מוצגים, ImagesFolder / ImagesFolderAlias שולטות היכן נכתבות תמונות שהופקו וכיצד הן מצוטטות, ExportImagesAsBase64 משבצות אותן באופן פנימי במקום זאת, ו-TableContentAlignment משפיעה על סימון הטבלה שנוצר. העבר מופע של MarkdownSaveOptions ל-Document.Save(fileName, saveOptions) עם שם קובץ .md, או הגדר את SaveFormat שלו במפורש.
ייצוא לטקסט פשוט
TxtSaveOptions (דרך TxtSaveOptionsBase הבסיס שלו, משותף עם MarkdownSaveOptions) שולט בייצוא לטקסט פשוט: Encoding מגדיר את קידוד התווים, ParagraphBreak מגדיר את מחרוזת סיום השורה, MaxCharactersPerLine מקפל שורות ארוכות, SimplifyListLabels מנרמל את תווי רשימות/מספרים לתווים פשוטים, ו-PreserveTableLayout מנסה לשמור על יישור עמודות הטבלה באמצעות רווחים.
זיהוי פורמט לפני המרה
לפני המרת קובץ שהפורמט שלו אינך יודע מראש, FileFormatUtil.DetectFileFormat(fileName) מחזיר FileFormatInfo עם ה-LoadFormat שזוהה. יש לשלב זאת עם FileFormatUtil.LoadFormatToSaveFormat(loadFormat) כדי להחליט האם ניתן לבצע מסלול חוזר דרך הפורמטים הנתמכים בגרסה זו לפני ניסיון Document.Save.
טיפים ושיטות עבודה מומלצות
- השתמש ב-
Save(fileName, saveOptions)במקום העומס הפשוט שלSave(fileName, saveFormat)בכל פעם שאתה צריך לשלוט בהתנהגות ספציפית לפורמט כגון עיצוב רשימות ב-Markdown או דחיסת OOXML. - הגדר את
OoxmlSaveOptions.Passwordלקובץ שמוגן בסיסמה פתוחה; זה נפרד מ-Document.Protect, שמגביל עריכה אך אינו מצפין את הקובץ. - בחר ב-
MarkdownSaveOptions.ExportImagesAsBase64לקובץ Markdown יחיד ומאוחד, או ב-ImagesFolderכאשר אתה רוצה תיקייה של קבצי תמונה מחולצים יחד עם קובץ ה-Markdown. - קרא ל-
SaveOptions.CreateSaveOptions(saveFormat)במקום לבחור את מחלקת האפשרויות הקונקרטית ידנית כאשר פורמט היעד נקבע בזמן ריצה. - אמת פורמט יעד עם
FileFormatUtilלפני ההמרה במקום להסתמך על סיומת קובץ בלבד, שעלולה להיות שגויה או מבלבלת.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
Save(fileName) בוחר את הפורמט הלא נכון | סיומת הקובץ אינה תואמת את הפורמט המיועד | השתמש ב-Save(fileName, saveFormat) או ב-Save(fileName, saveOptions) כדי לציין במפורש את הפורמט |
| קובץ OOXML שנשמר אינו נפתח עם סיסמה | OoxmlSaveOptions.Password לא הוגדר לפני השמירה | בנה OoxmlSaveOptions, הגדר Password, והעבר אותו ל-Save |
| ייצוא Markdown מפזר קבצי תמונה באופן בלתי צפוי | התנהגות ברירת המחדל של MarkdownSaveOptions מחלץ תמונות לקבצים | הגדר ExportImagesAsBase64 = true עבור קובץ יחיד עצמאי, או הגדר ImagesFolder כדי לשלוט היכן התמונות יישמרו |
| ייצוא טקסט רגיל מאבד יישור של עמודות הטבלה | TxtSaveOptions.PreserveTableLayout נשאר בברירת המחדל שלו | הגדר PreserveTableLayout = true לפני השמירה |
FAQ
איך לשמור מסמך בפורמט ספציפי ללא קשר לסיומת הקובץ שלו?
הפעל את Save(fileName, saveFormat) עם ערך SaveFormat מפורש, או Save(fileName, saveOptions) עם תת-מחלקה SaveOptions תואמת.
אילו פורמטים גרסה זו קוראת וכותבת משני הכיוונים?
DOCX, DOCM, DOTX, DOTM, Flat OPC (כולל גרסאות עם מקרו ותבניות), Markdown, וטקסט רגיל.
איך להגן על קובץ שמור באמצעות סיסמה?
הגדר את Password במופע של OoxmlSaveOptions והעבר אותו ל-Document.Save(fileName, saveOptions).
איך לשלוט בסיומות השורות בקובץ טקסט מיוצא?
הגדר את ParagraphBreak במופע של TxtSaveOptions לפני השמירה.
איך אני בודק באיזה פורמט קובץ הוא לפני ההמרה שלו?
קרא ל-FileFormatUtil.DetectFileFormat(fileName) וקרא את ה-FileFormatInfo.LoadFormat שהוחזר.
סיכום API Reference
| מחלקה/מתודה | תיאור |
|---|---|
Document.Save | כותב את המסמך לקובץ, זרם, או יעד פלט בפורמט שנבחר. |
SaveFormat | Enum שמזהה את פורמט היעד לפעולת שמירה. |
SaveOptions | מחלקה בסיסית מופשטת לתצורת שמירה ספציפית לפורמט; CreateSaveOptions(saveFormat) מחזירה את תת-המחלקה המתאימה. |
OoxmlSaveOptions | אפשרויות עבור DOCX, DOCM, DOTX, DOTM, ו-Flat OPC — סיסמה, תאימות, דחיסה. |
MarkdownSaveOptions | אפשרויות לייצוא Markdown — עיבוד רשימות/קישורים, טיפול בתמונות. |
TxtSaveOptions / TxtSaveOptionsBase | אפשרויות לייצוא טקסט רגיל — קידוד, מעברי שורה, פריסת טבלה. |
FileFormatUtil.DetectFileFormat | מזהה את פורמט הקובץ לפני טעינתו או המרתו. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | ממיר בין ערך SaveFormat לבין סיומת קובץ. |