ความพร้อมใช้งานแบบอักษรและการทดแทน

Contents
[ ]

บทความเกี่ยวกับคอมพิวเตอร์ที่ยังไม่สมบูรณ์ เมื่อAspose.Wordsแสดงผลเอกสารจะพยายามเลือกแบบอักษรที่ระบุในเอกสาร.

อย่างไรก็ตามมีสถานการณ์ที่ไม่พบแบบอักษรที่แน่นอนและAspose.Wordsต้องใช้แบบอักษรที่คล้ายกันแทน Aspose.Wordsเลือกแบบอักษรตามกระบวนการต่อไปนี้:

  1. Aspose.Wordsพยายามหาแบบอักษรระหว่างแหล่งที่มาของแบบอักษรที่มีอยู่ด้วยชื่อแบบอักษรที่แน่นอน.
  2. Aspose.Wordsพยายามหาแบบอักษรที่ต้องการในแบบอักษรที่ฝังอยู่ในเอกสารต้นฉบับ รูปแบบเอกสารบางอย่างเช่นDOCXสามารถมีแบบอักษรแบบฝังตัวได้.
  3. หากAspose.Wordsไม่สามารถหาแบบอักษรที่ต้องการได้ด้วยชื่อที่ตรงกันและคุณสมบัติAltNameที่กำหนดไว้สำหรับแบบอักษรนี้Aspose.Wordsจะพบแบบอักษรที่กำหนดด้วยAltNameจากชั้นเรียนFontInfoซึ่งระบุข้อมูลแบบอักษร.
  4. หากAspose.Wordsไม่สามารถค้นหาแบบอักษรที่กำหนดได้และAltNameไม่ได้กำหนดด้วยกฎการแทนตัวอักษรจะถูกนำมาใช้ทีละตัวตามที่อธิบายไว้ด้านล่าง(เมื่อพบการแทนที่ที่เหมาะสมกระบวนการแทนที่ตัวอักษรจะหยุดลงและขั้นตอนต่อไปจะไม่ถูกดำเนินการ):
    1. Aspose.Wordsจะพยายามใช้OSการตั้งค่าแบบอักษร,ถ้าพวกเขามีอยู่,โดยใช้FontConfigยูทิลิตี้. คุณลักษณะที่ไม่ใช่Windowsนี้ต้องใช้กับFontConfig-เข้ากันได้OS เกือบทุกยูนิกซ์OSมีไลบรารีFontConfigที่ถูกออกแบบมาเพื่อให้การกำหนดค่าแบบอักษรทั้งระบบการปรับแ มารถติดตั้งได้อย่างง่ายดายโดยผู้ใช้
      Aspose.Wordsรู้วิธีการค้นหาข้อมูลและตีความผลลัพธ์FontConfigเพื่อวัตถุประสงค์ของตนเอง โดยค่าเริ่มต้นโปรแกรมอรรถประโยชน์FontConfigถูกปิดใช้งาน คุณสามารถเปิดใช้งานได้ดังนี้:
      C++
            fontSettings->get_SubstitutionSettings()->get_FontConfigSubstitution()->set_Enabled(true);
            
      
    2. ขั้นต่อไปคือกลไกที่เรียบง่ายแต่ทรงพลังอย่างเหลือเชื่อที่เรียกว่าTableSubstitutionRule โดยค่าเริ่มต้นคุณลักษณะนี้จะใช้งานอยู่และพร้อมใช้งานสำหรับOSใดๆ Aspose.Wordsใช้XMLตารางที่กำหนดกฎการทดแทนขั้นพื้นฐานที่แตกต่างกันOS ตามกฎการแทนที่ตารางรายการของชื่อตัวอักษรแทนที่จะถูกนำมาใช้
      XML
            <TableSubstitutionSettings xmlns="Aspose.Words"> 
      	<SubstitutesTable> 
      		<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" /></SubstitutesTable> 
            </TableSubstitutionSettings>
            
      OriginalFont-แบบอักษรที่จะถูกแทนที่,SubstituteFonts-รายการของตัวแปรทดแทน,คั่นด้วยเครื่องหมายจุลภาค. แบบอักษรแรกที่ใช้ได้ถูกนำมาใช้สำหรับการแทนที่
      คุณสมบัติหลักของกฎนี้คือความสามารถในการโหลดตารางทดแทนของคุณเองตามที่แสดงใ:
      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);
            
      
    3. กฎการแทนที่FontInfoจะถูกนำมาใช้หากกฎการแทนที่ตารางไม่สามารถหาแบบอักษรได้ กลไกนี้ถูกเปิดใช้งานโดยดีฟอลต์ Aspose.Wordsพบแบบอักษรที่เหมาะสมที่สุดตามข้อมูลแบบอักษรที่มีอยู่ในเอกสารเฉพาะ ข้อมูลนี้สามารถรับได้จากชั้นเรียนFontInfoดังที่แสดงด้านล่าง:
      C++
            System::SharedPtr<FontInfoCollection> fontInfos = doc->get_FontInfos();
            
      
      ผู้ใช้ไม่สามารถแทรกแซงในเวิร์กโฟลว์ของคุณลักษณะนี้จนกว่าพวกเขาจะตัดสินใจที่จะปิด:
      C++
            fontSettings->get_SubstitutionSettings()->get_FontInfoSubstitution()->set_Enabled(false);
            
      
      ถ้าFontInfoไม่พร้อมใช้งานสำหรับแบบอักษรที่หายไปกระบวนการจะหยุดลง.
    4. 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");
            
      
  5. ถ้าAspose.Wordsไม่สามารถทำการทดแทนแบบอักษรได้จะพยายามหาแบบอักษรที่มีอยู่ตัวแรกจากแหล่งแบบอักษรที่มีอยู่.
  6. สุดท้ายหากAspose.Wordsไม่พบแบบอักษรใดๆในแหล่งที่มาของแบบอักษรที่มีอยู่จะแสดงผลเอกสารโดยใช้แบบอักษรฟรีที่ฝังอยู่ในแอสเซมบลีAspose.Words.