Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words ต้องใช้แบบอักษร TrueType สำหรับงานที่หลากหลาย รวมถึงการเรนเดอร์เอกสารเป็นรูปแบบหน้าตายตัว เช่น PDF หรือ XPS เมื่อ Aspose.Words เรนเดอร์เอกสาร จะต้องทำการฝังและฝังชุดย่อยของแบบอักษร TrueType ลงในเอกสารผลลัพธ์ ซึ่งเป็นแนวทางปฏิบัติปกติในการสร้างเอกสาร รวมถึงรูปแบบ PDF หรือ XPS ยอดนิยม เพื่อให้แน่ใจว่าเอกสารจะปรากฏต่อผู้ดูทุกคนเหมือนกัน นอกจากนี้ ข้อกำหนด XPS กำหนดให้ฝังแบบอักษรในเอกสารเสมอ
เพื่อให้แน่ใจว่า Aspose.Words วัดอักขระได้อย่างแม่นยำและฝังแบบอักษรที่เกี่ยวข้องได้สำเร็จ ต้องเป็นไปตามเงื่อนไขต่อไปนี้:
โปรดทราบว่าแบบอักษรในเอกสารแสดงถึงเอนทิตี เช่น นามสกุล สไตล์ ขนาด สี ซึ่งแตกต่างจากเอนทิตีแบบอักษร TrueType (แบบอักษรจริง) Aspose.Words แก้ไขแบบอักษรในเอกสารเป็นแบบอักษรจริงในบางขั้นตอนของการประมวลผล ซึ่งช่วยให้ทำงานบางอย่างได้ โดยส่วนใหญ่เป็นงานคำนวณขนาดข้อความระหว่างการสร้างเลย์เอาต์และการฝัง/การตั้งค่าย่อยเป็นรูปแบบเพจคงที่ งานอื่นๆ ที่ไม่ค่อยได้รับความนิยม เช่น การแก้ไขแบบอักษรและการทดแทนในขณะที่โหลด HTML หรือการฝัง/การตั้งค่าย่อยเป็นรูปแบบโฟลว์บางรูปแบบ ก็ถูกเปิดใช้งานเช่นเดียวกัน
กลไกการจัดการแบบอักษรที่มีอยู่ทั้งหมดมีอยู่ในคลาส FontSettings คลาสนี้มีหน้าที่รับผิดชอบในการดึงฟอนต์ภายในแหล่งฟอนต์ที่กำหนด รวมถึงกระบวนการแทนที่ฟอนต์ ดังที่อธิบายไว้ด้านล่าง
แบบอักษรจะถูกแยกวิเคราะห์ในหลายขั้นตอน:
เมื่อ Aspose.Words พบแบบอักษรในเอกสารเป็นครั้งแรก เอกสารจะพยายามรับข้อมูลแบบอักษรพื้นฐาน เช่น ชื่อเต็มของแบบอักษร นามสกุล เวอร์ชัน สไตล์ จากไฟล์แบบอักษรที่อยู่ในแหล่งแบบอักษรแต่ละแหล่ง หลังจากที่ดึงข้อมูลแบบอักษรทั้งหมดแล้ว Aspose.Words จะใช้รายละเอียดเหล่านี้เพื่อค้นหาข้อมูลแบบอักษรที่ต้องการหรือการแทนที่ที่เหมาะสมสำหรับแบบอักษรที่ร้องขอ
เนื่องจากขั้นตอนที่อธิบายไว้ข้างต้นใช้เวลานาน จึงอาจส่งผลเสียต่อประสิทธิภาพของแอปพลิเคชันตั้งแต่เปิดตัวครั้งแรก อย่างไรก็ตาม แต่ละอินสแตนซ์ของ FontSettings จะมีแคชของตัวเอง ซึ่งอาจลดเวลาการประมวลผลของเอกสารที่ตามมาได้ ตัวอย่างเช่น คุณสามารถแชร์อินสแตนซ์ของคลาส FontSettings ระหว่างเอกสารต่างๆ ได้ ซึ่งช่วยให้คุณเพิ่มความเร็วในการโหลดเอกสารได้ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้:
ในกรณีที่ไม่ได้กำหนด FontSettings ไว้อย่างชัดเจน Aspose.Words จะใช้อินสแตนซ์ FontSettings เริ่มต้น อินสแตนซ์นี้ยังแชร์ระหว่างเอกสารต่างๆ โดยอัตโนมัติด้วย และสามารถแยกออกมาได้ดังต่อไปนี้:
หากคุณแน่ใจว่าเอกสารที่กำลังประมวลผลทั้งหมดต้องใช้การตั้งค่าแบบอักษรเดียวกัน ขอแนะนำให้ตั้งค่าและใช้อินสแตนซ์ FontSettings เริ่มต้น สมมติว่าคุณต้องใช้แหล่งแบบอักษรเดียวกันสำหรับเอกสารทั้งหมดของคุณ ในกรณีนี้ คุณสามารถแก้ไขอินสแตนซ์เริ่มต้นได้ดังนี้:
ข้อความในเอกสารสามารถจัดรูปแบบด้วยแบบอักษรต่างๆ เช่น Arial, Times New Roman, Verdana และอื่นๆ เมื่อ Aspose.Words แสดงผลเอกสาร Aspose.Words จะพยายามเลือกแบบอักษรที่ระบุไว้ในเอกสาร
อย่างไรก็ตาม มีบางสถานการณ์ที่ไม่พบแบบอักษรที่ตรงกันทุกประการ และ Aspose.Words ต้องแทนที่ด้วยแบบอักษรที่คล้ายกันแทน Aspose.Words เลือกแบบอักษรตามกระบวนการต่อไปนี้:
FontConfig ที่ได้รับการออกแบบมาเพื่อให้การกำหนดค่าแบบอักษรทั่วทั้งระบบ การปรับแต่ง และการเข้าถึงแอปพลิเคชัน มิฉะนั้น ผู้ใช้สามารถติดตั้งไลบรารีนี้ได้อย่างง่ายดาย
Aspose.Words รู้วิธีสืบค้นข้อมูลและตีความผลลัพธ์ FontConfig เพื่อจุดประสงค์ของตนเอง ตามค่าเริ่มต้น ยูทิลิตี FontConfig จะถูกปิดใช้งาน คุณสามารถเปิดใช้งานได้ดังนี้: fontSettings.SubstitutionSettings.FontConfigSubstitution.Enabled = true;
FontConfig <TableSubstitutionSettings xmlns="Aspose.Words">
<SubstitutesTable>
<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" />
…
</SubstitutesTable>
</TableSubstitutionSettings>
fontSettings.SubstitutionSettings.TableSubstitution.Load("Table.xml");
fontSettings.SubstitutionSettings.TableSubstitution.Enabled = false;
FontInfoCollection fontInfos = doc.FontInfos;
fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = false;
FontInfo ล้มเหลวเช่นกัน กฎนี้ยังเปิดใช้งานตามค่าเริ่มต้นด้วย ตามกฎนี้ Aspose.Words จะพยายามใช้แบบอักษรเริ่มต้นที่ระบุในคุณสมบัติ DefaultFontName หากผู้ใช้ไม่ได้เลือกแบบอักษรเริ่มต้นของตนเอง ระบบจะใช้ “Times New Roman” เป็นแบบอักษรเริ่มต้น กฎนี้สามารถปิดใช้งานได้ดังที่แสดงด้านล่าง: fontSettings.SubstitutionSettings.DefaultFontSubstitution.Enabled = false;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
หากมี FontInfo กฎการแทนที่ FontInfo จะแก้ไขแบบอักษรและแทนที่กฎแบบอักษรเริ่มต้นเสมอ หากคุณต้องการใช้กฎแบบอักษรเริ่มต้น คุณควรปิดใช้งาน กฎการทดแทน FontInfo โปรดทราบว่า กฎการแทนที่ FontConfig จะแก้ไขแบบอักษรในกรณีส่วนใหญ่ และจะแทนที่กฎอื่นๆ ทั้งหมด
บางครั้งอาจไม่ชัดเจนว่าเหตุใดเค้าโครงเอกสารจึงเปลี่ยนไป หรือเหตุใดแบบอักษรบางตัวจึงไม่ดูตามที่คาดไว้ ในกรณีเช่นนี้ ข้อความเตือนการแทนที่แบบอักษรที่อินเทอร์เฟซ IWarningCallback นำมาใช้จะช่วยได้ มีประเภทคำเตือน FontSubstitution และรูปแบบข้อความคำอธิบายมาตรฐาน “Font ‘
มีกลไกที่แตกต่างกัน 2 ประการที่ใช้ใน Aspose.Words ได้แก่ การทดแทนแบบอักษรและทางเลือกแบบอักษร การทดแทนแบบอักษรจะใช้เมื่อไม่พบแบบอักษรที่ระบุในเอกสารในแหล่งแบบอักษรตามที่อธิบายไว้ในส่วนข้างต้น กลไกการใช้ทางเลือกแบบอักษรจะใช้เมื่อแก้ไขแบบอักษร แต่ไม่มีอักขระเฉพาะ ในกรณีนี้ Aspose.Words จะพยายามใช้แบบอักษรสำรองแบบใดแบบหนึ่งสำหรับอักขระ
มีวิธี BuildAutomatic ที่สร้างการตั้งค่าทางเลือกโดยอัตโนมัติโดยการสแกนแบบอักษรที่มีอยู่ เนื่องจากวิธีนี้อาจทำให้เกิดการตั้งค่าทางเลือกที่ไม่เหมาะสม คุณสามารถควบคุมลักษณะการทำงานของทางเลือกแบบอักษรได้ โดยใช้คุณสมบัติของคลาส FontFallbackSettings คลาสนี้ระบุการตั้งค่ากลไกการใช้ทางเลือกแบบอักษร คุณสามารถรับอินสแตนซ์ของคลาส FontFallbackSettings ได้ดังนี้:
.NET
FontFallbackSettings settings = fontSettings.FallbackSettings;
ในทำนองเดียวกันกับ กฎการทดแทนตาราง กลไกนี้ใช้ตาราง XML สำหรับการกำหนดค่า ตาราง XML เหล่านี้สามารถโหลดและบันทึกได้ด้วยวิธีต่อไปนี้:
.NET
fontSettings.FallbackSettings.Load("MyNewFallbackTable.xml");
fontSettings.FallbackSettings.Save("Current_FallbackTable.xml");
รุ่น Aspose.Words ประกอบด้วย 2 ตาราง: MsOfficeFallbackSetting.xml และ NotoFallbackSetting.xml
ตาราง MsOfficeFallbackSetting กำหนดกลยุทธ์การแทนที่สำหรับช่วงอักขระ ซึ่งคล้ายกับกลยุทธ์ที่ใช้โดย Microsoft Word ดังนั้นกลยุทธ์นี้จึงต้องติดตั้งฟอนต์ Microsoft Office สามารถเปิดใช้งาน MsOfficeFallbackSetting ได้โดยใช้วิธีการต่อไปนี้:
.NET
fontSettings.FallbackSettings.LoadMsOfficeFallbackSettings();
ตาราง NotoFallbackSetting ถูกสร้างขึ้นเพื่อใช้กับแบบอักษร Google Noto โดยเฉพาะ (ดูเพิ่มเติมเกี่ยวกับการตั้งค่าแบบอักษร Google Noto ในส่วนถัดไป) และสามารถเปิดใช้งานได้ดังต่อไปนี้:
.NET
fontSettings.FallbackSettings.LoadNotoFallbackSettings();
ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีการโหลดการตั้งค่าทางเลือกแบบอักษรจากไฟล์ XML:
ในตัวอย่างโค้ดข้างต้น มีการใช้ไฟล์ XML ต่อไปนี้:
<FontFallbackSettings xmlns="Aspose.Words">
<FallbackTable>
<!-- Fallback table consists of the rules. Each rule defines the fallback fonts which Aspose.Words should use for specified Unicode ranges and base fonts. Rules are checked one by one and the first applicable fallback font is used. If none of the rules are applicable then ".notdef" glyph (missing glyph) from the base font will be used. -->
<!-- This rule defines that "Vijaya" fallback font should be used for "U+0B80..U+0BFF Tamil" Unicode block. -->
<Rule Ranges="0B80-0BFF" FallbackFonts="Vijaya"/>
<!-- This rule defines that "Segoe UI Emoji" and "Segoe UI Symbol" fallback fonts should be used for "U+1F300..U+1F5FF Miscellaneous Symbols and Pictographs", "U+1F600..U+1F64F Emoticons" Unicode blocks. If "Segoe UI Emoji" font does not contains the glyph for the requested Unicode code point then "Segoe UI Symbol" will be checked. -->
<Rule Ranges="1F300-1F64F" FallbackFonts="Segoe UI Emoji, Segoe UI Symbol"/>
<!-- This rule defines that "Arial" fallback font should be used for "U+2000..U+206F General Punctuation", "U+2070..U+209F Superscripts and Subscripts" Unicode blocks and specific "U+20B9 INDIAN RUPEE SIGN" code point. -->
<Rule Ranges="2000-206F, 2070-209F, 20B9" FallbackFonts="Arial" />
<!-- These rules defines that for "U+3040..U+309F Hiragana" Unicode block "MS Gothic" fallback font should be used if base font is "Times New Roman" and "MS Mincho" fallback font for all other base fonts. -->
<Rule Ranges="3040-309F" FallbackFonts="MS Gothic" BaseFonts="Times New Roman"/>
<Rule Ranges="3040-309F" FallbackFonts="MS Mincho"/>
<!-- This rule defines that "Arial Unicode MS" fallback font should be used if applicable fallback font was not found by previous rules. -->
<Rule FallbackFonts="Arial Unicode MS"/>
</FallbackTable>
</FontFallbackSettings>Aspose.Words มีการตั้งค่าทางเลือกแบบอักษรที่กำหนดไว้ล่วงหน้าสำหรับแบบอักษร Google Noto แบบอักษรเหล่านี้เป็นแบบอักษรฟรีที่ได้รับอนุญาตภายใต้ SIL Open Font License ซึ่งสามารถดาวน์โหลดได้จากแบบอักษร Google Noto คลาส FontFallbackSettings มีเมธอด LoadNotoFallbackSettings โหลดการตั้งค่าทางเลือกที่กำหนดไว้ล่วงหน้าซึ่งใช้แบบอักษร Google Noto ดังแสดงในตัวอย่างโค้ดด้านล่าง:
Aspose.Words พยายามค้นหาแบบอักษร TrueType บนระบบไฟล์โดยอัตโนมัติ โดยปกติแล้ว คุณสามารถใช้ลักษณะการทำงานเริ่มต้นของ Aspose.Words เพื่อค้นหาแบบอักษร TrueType ได้ แต่บางครั้งคุณจำเป็นต้องระบุโฟลเดอร์ของคุณเองที่มีแบบอักษร TrueType หัวข้อ ระบุตำแหน่งแบบอักษร TrueType อธิบายวิธีการและตำแหน่งที่ Aspose.Words ค้นหาแบบอักษร ตลอดจนวิธีระบุตำแหน่งแบบอักษรของคุณเอง
การประมวลผลรูปแบบแบบอักษรใน Aspose.Words และ Microsoft Word มีความแตกต่างบางประการดังที่แสดงในตารางด้านล่าง:
| Microsoft Word | Aspose.Words | |
|---|---|---|
| แบบอักษร TrueType และแบบอักษร OpenType พร้อมโครงร่าง TrueType | ได้รับการสนับสนุน. | ได้รับการสนับสนุน. |
| แบบอักษร OpenType พร้อมโครงร่าง PostScript | รองรับสถานการณ์ส่วนใหญ่ ไม่รองรับการฝังในรูปแบบหน้าตายตัว เช่น PDF และ XPS ข้อความจะถูกแทนที่ด้วยภาพบิตแมป | รองรับสถานการณ์ส่วนใหญ่ รวมถึงการฝังในรูปแบบเพจคงที่ |
| การเปลี่ยนแปลงแบบอักษร OpenType | รองรับเฉพาะอินสแตนซ์ที่มีชื่อเท่านั้น ไม่รองรับรูปแบบต่อเนื่อง | รองรับอินสแตนซ์เริ่มต้นเท่านั้น ไม่รองรับอินสแตนซ์ที่มีชื่อและรูปแบบต่อเนื่อง |
| แบบอักษร Type1 | รองรับในเวอร์ชัน Windows ก่อนปี 2013 และบนเวอร์ชัน MacOS การสนับสนุนถูกยกเลิกในเวอร์ชัน Windows ตั้งแต่ปี 2013 เป็นต้นไป | ไม่รองรับ. |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.