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

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

บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูลโปรดช่วยพัฒนาบทความนี้โด บโครงร่างและเป็นผลให้ลักษณะที่ปรากฏของไฟล์ที่ส่งออกตัวอย่างเช่นในรูปแบบ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-C
auto doc = MakeObject<Document>(MyDir + u"German text.docx");
Hyphenation::RegisterDictionary(u"en-US", MyDir + u"hyph_en_US.dic");
Hyphenation::RegisterDictionary(u"de-CH", MyDir + u"hyph_de_CH.dic");
doc->Save(ArtifactsDir + u"WorkingWithHyphenation.HyphenateWordsOfLanguages.pdf");

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

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto doc = MakeObject<Document>(MyDir + u"German text.docx");
SharedPtr<System::IO::Stream> stream = System::IO::File::OpenRead(MyDir + u"hyph_de_CH.dic");
Hyphenation::RegisterDictionary(u"de-CH", stream);
doc->Save(ArtifactsDir + u"WorkingWithHyphenation.LoadHyphenationDictionaryForLanguage.pdf");

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

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

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
class CustomHyphenationCallback : public IHyphenationCallback
{
public:
void RequestDictionary(String language) override
{
String dictionaryFolder = MyDir;
String dictionaryFullFileName;
if (language == u"en-US")
{
dictionaryFullFileName = System::IO::Path::Combine(dictionaryFolder, u"hyph_en_US.dic");
}
else if (language == u"de-CH")
{
dictionaryFullFileName = System::IO::Path::Combine(dictionaryFolder, u"hyph_de_CH.dic");
}
else
{
throw System::Exception(String::Format(u"Missing hyphenation dictionary for {0}.", language));
}
// Register dictionary for requested language.
Hyphenation::RegisterDictionary(language, dictionaryFullFileName);
}
};
void HyphenationCallback()
{
{
auto __finally_guard_0 = ::System::MakeScopeGuard([]() { Hyphenation::set_Callback(nullptr); });
try
{
// Register hyphenation callback.
Hyphenation::set_Callback(MakeObject<WorkingWithHyphenation::CustomHyphenationCallback>());
auto document = MakeObject<Document>(MyDir + u"German text.docx");
document->Save(ArtifactsDir + u"WorkingWithHyphenation.HyphenationCallback.pdf");
}
catch (System::Exception& e)
{
ASSERT_TRUE(e->get_Message().StartsWith(u"Missing hyphenation dictionary"));
std::cout << e->get_Message() << std::endl;
}
}
}

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

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

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

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

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

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

ดูเพิ่มเติม