การทำงานกับยัติภังค์

บางครั้งก็เป็นสิ่งจำเป็นที่จะใช้ยัติภังค์สำหรับการจัดขนาดกะทัดรัดมากขึ้นของข้อความในเ บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูลโปรดช่วยพัฒนาบทความนี้โด.

บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูลโปรดช่วยพัฒนาบทความนี้โด บโครงร่างและเป็นผลให้ลักษณะที่ปรากฏของไฟล์ที่ส่งออกตัวอย่างเช่นในรูปแบบPDF.

สำหรับการแยกคำที่ถูกต้องพจนานุกรมยัติภังค์เฉพาะภาษาจะใช้ Aspose.Wordsใช้อัลกอริทึมขั้นสูงเพื่อทำงานกับพจนานุกรมดังกล่าวและช่วยให้คุณได้รับยัติภังค์เช่นเดียวกับในMicrosoft Word.

พจนานุกรมยัติภังค์

เนื่องจากภาษาที่แตกต่างกันใช้บรรทัดฐานที่แตกต่างกันและกฎสำหรับการยัติภังค์คำทาง Aspose.Wordsใช้OpenOfficeพจนานุกรม.

สำหรับการตรวจสอบการสะกดOpenOfficeใช้ Hunspellห้องสมุด ซึ่งเป็นลักษณะทั่วไปของอัลกอริทึมยัติภังค์ของเท็กซ์ อัลกอริทึมนี้อนุญาตให้ใช้ยัติภังค์ที่ไม่ได้มาตรฐานโดยอัตโนมัติโดยใช้รูปแบบมาตรฐานการแข่งขันและรูปแบบยัติภังค์ที่กำหนดเอง Hunspellใช้ ยัติภังค์ สำหรับยัติภังค์.

อัลกอริทึมยัติภังค์

Aspose.Wordsใช้ อัลกอริทึมยัติภังค์เท็กซ์ และสามารถนำมาใช้พจนานุกรมยัติภังค์OpenOffice.

คุณลักษณะต่อไปนี้ของAspose.Wordsอัลกอริทึมควรนำมาพิจารณา:

  • พารามิเตอร์ระยะยัติภังค์(LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) ระบุไว้ในพจนานุกรมยัติภังค์จะถูกละเว้น Aspose.Wordsใช้ชุดพารามิเตอร์ระยะทางของตัวเองขึ้นอยู่กับโหมดความเข้ากันได้ของเอกสาร.
  • อัลกอริทึมยัติภังค์ในAspose.Wordsรองรับ ยัติภังค์คอมโพสิต. อย่างไรก็ตามAspose.Wordsแบ่งลำดับอักขระที่มีอักขระผสมตามตัวอักษรและที่ไม่ใช่ตัวอักษรเป็นส่วนตั. โปรดทราบว่าMicrosoft Wordตรรกะของยัติภังค์ของคำผสมขึ้นอยู่กับโหมดความเข้ากันได้ของเอกสาร.
  • อัลกอริทึมยัติภังค์ในAspose.Wordsไม่ใช้ ยัติภังค์ที่ไม่ได้มาตรฐาน. รูปแบบที่ไม่ได้มาตรฐานจะถูกละเว้น.

กำลังโหลดพจนานุกรมยัติภังค์

เมื่อต้องการใช้คุณลักษณะยัติภังค์ให้ลงทะเบียนพจนานุกรมยัติภังค์ก่อนตัวอย่างรหัสต่อไปนี้แสดงวิธีการโหลดพจนานุกรมยัติภังค์สำหรับภาษาที่ระบุจากไฟล์:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "in.docx");
Hyphenation.registerDictionary("en-US", dataDir + "hyph_en_US.dic");
Hyphenation.registerDictionary("de-CH", dataDir + "hyph_de_CH.dic");
doc.save(dataDir + "LoadHyphenationDictionaryFromFile_Out.pdf");

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการโหลดพจนานุกรมยัติภังค์สำหรับภาษาที่ระบุจากสตรีม:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "in.docx");
InputStream stream = new FileInputStream(dataDir + "hyph_de_CH.dic");
Hyphenation.registerDictionary("de-CH", stream);
doc.save(dataDir + "LoadHyphenationDictionaryFromStream_Out.pdf");

เป็นทางเลือกในการลงทะเบียนก่อนพจนานุกรมยัติภังค์ก็เป็นไปได้ที่จะลงทะเบียนพจนานุกรมยัติภังค์ที่จำเป็นเท่านั้น"ตามคำขอ" เพื่อให้บรรลุที่,ใช้อินเตอร์เฟซIHyphenationCallbackและใช้การเรียกกลับแบบคงที่Callback.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการใช้อินเตอร์เฟซIHyphenationCallback:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
public static void hyphenationCallback() {
try {
// Register hyphenation callback.
Hyphenation.setCallback(new CustomHyphenationCallback());
Document document = new Document(dataDir + "in.docx");
document.save(dataDir + "LoadHyphenationDictionaryFromStream_Out.pdf");
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
Hyphenation.setCallback(null);
}
}
static class CustomHyphenationCallback implements IHyphenationCallback {
public void requestDictionary(String language) throws Exception {
String dictionaryFolder = dataDir;
String dictionaryFullFileName;
switch (language) {
case "en-US":
dictionaryFullFileName = new File(dictionaryFolder, "hyph_en_US.dic").getPath();
break;
case "de-CH":
dictionaryFullFileName = new File(dictionaryFolder, "hyph_de_CH.dic").getPath();
break;
default:
throw new Exception("Missing hyphenation dictionary for " + language);
}
// Register dictionary for requested language.
Hyphenation.registerDictionary(language, dictionaryFullFileName);
}
}

ผลกระทบของยัติภังค์ในรูปแบบ

เมื่อแบ่งข้อความเป็นบรรทัดAspose.Wordsจะตรวจสอบแต่ละคำว่าพอดีกับบรรทัดปัจจุบันหรือไม่ ถ้าคำอื่นยาวเกินไปจนสุดบรรทัดโดยค่าเริ่มต้นAspose.Wordsย้ายคำนั้นไปยังจุดเริ่มต้นของบรรทัดถัดไปแ.

อย่างไรก็ตามคุณลักษณะการยัติภังค์สามารถใช้ในAspose.Wordsเพื่อแทรกยัติภังค์เป็นคำเพื่อขจัดช่องว่างในข้อความที่ถูกต้องหรือเพื่อรักษาความยาวบรรทัดที่เท่ากันในคอลัมน์แคบ นี้สามารถเห็นได้ชัดมีผลต่อจำนวนบรรทัดและดังนั้นจึงจำนวนของหน้า. นการใช้ฟังก์ชันยัติภังค์มีผลต่อการจัดวางเอกสาร.

ยัติภังค์และเหตุผล(เอช&เจ)

Microsoft Wordมีตรรกะที่ซับซ้อนสำหรับการเลือกเบรกพอยต์ถ้าข้อความเป็นธรรมและมีการเปิดใช้ยัติภังค์ ในระยะสั้นMicrosoft Wordอาจชอบที่จะหดตัวหรือยืดช่องว่างเพื่อหลีกเลี่ยงการยัติภังค์บรรทัด ส่วนใหญ่อาจจะตรรกะนี้จะขึ้นอยู่กับ บทความของนูธ.

Aspose.Wordsใช้อัลกอริทึมเอชแอนด์เจของตัวเองที่ให้ผลลัพธ์เช่นเดียวกับMicrosoft Wordและมีการแบ่งบรรทัดที่เหมือน.

ดูเพิ่มเติม