ความพร้อมใช้งานแบบอักษรและการทดแทน
Contents
[
Hide
]
บทความเกี่ยวกับคอมพิวเตอร์ที่ยังไม่สมบูรณ์ เมื่อAspose.Wordsแสดงผลเอกสารจะพยายามเลือกแบบอักษรที่ระบุในเอกสาร.
อย่างไรก็ตามมีสถานการณ์ที่ไม่พบแบบอักษรที่แน่นอนและAspose.Wordsต้องใช้แบบอักษรที่คล้ายกันแทน Aspose.Wordsเลือกแบบอักษรตามกระบวนการต่อไปนี้:
- Aspose.Wordsพยายามหาแบบอักษรระหว่างแหล่งที่มาของแบบอักษรที่มีอยู่ด้วยชื่อแบบอักษรที่แน่นอน.
- Aspose.Wordsพยายามหาแบบอักษรที่ต้องการในแบบอักษรที่ฝังอยู่ในเอกสารต้นฉบับ รูปแบบเอกสารบางอย่างเช่นDOCXสามารถมีแบบอักษรแบบฝังตัวได้.
- หากAspose.Wordsไม่สามารถหาแบบอักษรที่ต้องการได้ด้วยชื่อที่ตรงกันและคุณสมบัติAltNameที่กำหนดไว้สำหรับแบบอักษรนี้Aspose.Wordsจะพบแบบอักษรที่กำหนดด้วยAltNameจากชั้นเรียนFontInfoซึ่งระบุข้อมูลแบบอักษร.
- หากAspose.Wordsไม่สามารถค้นหาแบบอักษรที่กำหนดได้และAltNameไม่ได้กำหนดด้วยกฎการแทนตัวอักษรจะถูกนำมาใช้ทีละตัวตามที่อธิบายไว้ด้านล่าง(เมื่อพบการแทนที่ที่เหมาะสมกระบวนการแทนที่ตัวอักษรจะหยุดลงและขั้นตอนต่อไปจะไม่ถูกดำเนินการ):
- Aspose.Wordsจะพยายามใช้OSการตั้งค่าแบบอักษร,ถ้าพวกเขามีอยู่,โดยใช้
FontConfig
ยูทิลิตี้. คุณลักษณะที่ไม่ใช่Windowsนี้ต้องใช้กับFontConfig-เข้ากันได้OS เกือบทุกยูนิกซ์OSมีไลบรารีFontConfig
ที่ถูกออกแบบมาเพื่อให้การกำหนดค่าแบบอักษรทั้งระบบการปรับแ มารถติดตั้งได้อย่างง่ายดายโดยผู้ใช้
Aspose.Wordsรู้วิธีการค้นหาข้อมูลและตีความผลลัพธ์FontConfigเพื่อวัตถุประสงค์ของตนเอง โดยค่าเริ่มต้นโปรแกรมอรรถประโยชน์FontConfig
ถูกปิดใช้งาน คุณสามารถเปิดใช้งานได้ดังนี้:
C++fontSettings->get_SubstitutionSettings()->get_FontConfigSubstitution()->set_Enabled(true);
- ขั้นต่อไปคือกลไกที่เรียบง่ายแต่ทรงพลังอย่างเหลือเชื่อที่เรียกว่าTableSubstitutionRule โดยค่าเริ่มต้นคุณลักษณะนี้จะใช้งานอยู่และพร้อมใช้งานสำหรับOSใดๆ Aspose.Wordsใช้XMLตารางที่กำหนดกฎการทดแทนขั้นพื้นฐานที่แตกต่างกันOS ตามกฎการแทนที่ตารางรายการของชื่อตัวอักษรแทนที่จะถูกนำมาใช้
XMLOriginalFont-แบบอักษรที่จะถูกแทนที่,SubstituteFonts-รายการของตัวแปรทดแทน,คั่นด้วยเครื่องหมายจุลภาค. แบบอักษรแรกที่ใช้ได้ถูกนำมาใช้สำหรับการแทนที่<TableSubstitutionSettings xmlns="Aspose.Words"> <SubstitutesTable> <Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" /> … </SubstitutesTable> </TableSubstitutionSettings>
คุณสมบัติหลักของกฎนี้คือความสามารถในการโหลดตารางทดแทนของคุณเองตามที่แสดงใ:
C++คุณสามารถใช้เป็นพื้นฐานตารางที่มีอยู่จากโถหรือบันทึกโปรแกรมในลักษณะต่อไปนี้:fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Load(u"Table.xml");
C++แม้จะมีความยืดหยุ่นของกลไกนี้มีบางกรณีเมื่อมันจะดีกว่าที่จะปิดการใช้งานดังที่แสดงด้านล่:fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Save(u"MyTable.xml");
C++fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->set_Enabled(false);
- กฎการแทนที่FontInfoจะถูกนำมาใช้หากกฎการแทนที่ตารางไม่สามารถหาแบบอักษรได้ กลไกนี้ถูกเปิดใช้งานโดยดีฟอลต์ Aspose.Wordsพบแบบอักษรที่เหมาะสมที่สุดตามข้อมูลแบบอักษรที่มีอยู่ในเอกสารเฉพาะ ข้อมูลนี้สามารถรับได้จากชั้นเรียนFontInfoดังที่แสดงด้านล่าง:
C++ผู้ใช้ไม่สามารถแทรกแซงในเวิร์กโฟลว์ของคุณลักษณะนี้จนกว่าพวกเขาจะตัดสินใจที่จะปิด:System::SharedPtr<FontInfoCollection> fontInfos = doc->get_FontInfos();
C++ถ้าFontInfoไม่พร้อมใช้งานสำหรับแบบอักษรที่หายไปกระบวนการจะหยุดลง.fontSettings->get_SubstitutionSettings()->get_FontInfoSubstitution()->set_Enabled(false);
- DefaultFontกฎการแทนที่จะถูกนำมาใช้ในกรณีที่การแทนที่
FontInfo
ล้มเหลวเช่นกัน กฏนี้ถูกเปิดใช้งานโดยค่าเริ่มต้น ตามกฎนี้Aspose.Wordsจะพยายามใช้แบบอักษรดีฟอลต์ที่ระบุไว้ในคุณสมบัติDefaultFontName หากผู้ใช้ยังไม่ได้เลือกแบบอักษรเริ่มต้นของตัวเองแล้ว"ครั้งโรมันใหม่"จะถูกใช้เป็นแบบอัก กฎนี้สามารถปิดใช้งานได้ตามที่แสดงด้านล่าง:
C++เมื่อต้องการตรวจสอบแบบอักษรปริยายปัจจุบันให้ใช้:fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_Enabled(false);
C++ในการตั้งค่าตัวเลือกการเปลี่ยนของคุณเอง,นำไปใช้:fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->get_DefaultFontName();
C++fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_DefaultFontName(u"Arial");
- Aspose.Wordsจะพยายามใช้OSการตั้งค่าแบบอักษร,ถ้าพวกเขามีอยู่,โดยใช้
- ถ้าAspose.Wordsไม่สามารถทำการทดแทนแบบอักษรได้จะพยายามหาแบบอักษรที่มีอยู่ตัวแรกจากแหล่งแบบอักษรที่มีอยู่.
- สุดท้ายหากAspose.Wordsไม่พบแบบอักษรใดๆในแหล่งที่มาของแบบอักษรที่มีอยู่จะแสดงผลเอกสารโดยใช้แบบอักษรฟรีที่ฝังอยู่ในแอสเซมบลีAspose.Words.
ถ้าFontInfoมีอยู่FontInfo substitution ruleจะแก้ไขแบบอักษรและแทนที่กฎแบบอักษรเริ่มต้น ถ้าคุณต้องการใช้กฎแบบอักษรเริ่มต้นคุณควรปิดใช้งานFontInfo substitution rule โปรดทราบว่าFontConfig substitution ruleจะแก้ไขแบบอักษรในกรณีส่วนใหญ่และจะแทนที่กฎอื่นๆทั้งหมด.