การแก้ไขปัญหา Aspose.Words FOSS for .NET

การแก้ไขปัญหา Aspose.Words FOSS for .NET

หน้านี้ครอบคลุมปัญหาทั่วไปที่พบเมื่อสร้างและใช้ Aspose.Words FOSS สำหรับ .NET และวิธีการแก้ไข.


ปัญหาในการสร้างและติดตั้ง

dotnet add package Aspose.Words ไม่สามารถหาแพคเกจได้

คำสั่งนั้นชี้ไปที่แพคเกจเชิงพาณิชย์ Aspose.Words ไม่ใช่เวอร์ชัน FOSS — รหัสแพคเกจ FOSS คือ Aspose.Words.FOSS:

dotnet add package Aspose.Words.FOSS

หรืออีกทางหนึ่ง ให้เรียกใช้ git clone เพื่อรับซอร์สโค้ด แล้ว cd ไปยังโฟลเดอร์ที่โคลนไว้และเรียกใช้ dotnet build กับโซลูชัน:

git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release

จากนั้นให้เพิ่มการอ้างอิงโครงการไปยัง Aspose.Words.csproj จากแอปพลิเคชันของคุณเองแทนการอ้างอิงแพ็กเกจ.

การอ้างอิงโครงการไม่สามารถแก้ไขได้หลังจากทำการโคลน

ยืนยันว่าการอ้างอิงชี้ไปที่ Aspose.Words.csproj ภายในโฟลเดอร์ Aspose.Words-FOSS-for-.NET/Aspose.Words/ ที่ถูกโคลนไว้ และว่าโซลูชันได้สร้างสำเร็จแล้วก่อน (dotnet build Aspose.Words.sln -c Release). ไลบรารีนี้ใช้ .NET Standard 2.0 ดังนั้น SDK ใด ๆ ที่มุ่งเป้าไปที่ .NET Framework 4.6.2+ หรือ .NET 6/8/10 ก็สามารถอ้างอิงได้.


ปัญหาในการโหลด

UnsupportedFileFormatException ขณะโหลดเอกสาร

UnsupportedFileFormatException ถูกขว้างขึ้นในระหว่างการโหลดเมื่อรูปแบบไฟล์ไม่ถูกจดจำหรือไม่รองรับโดยรุ่นนี้ รูปแบบการโหลดของรุ่นนี้คือ DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, และข้อความธรรมดา — การส่งพาธที่ไม่รองรับเช่น input.doc ไปยังคอนสตรัคเตอร์ Document จะทำให้เกิดข้อยกเว้นนี้แทนที่จะคืนเอกสารที่โหลดแล้ว:

using Aspose.Words;

try
{
    Document doc = new Document("input.doc");
}
catch (UnsupportedFileFormatException ex)
{
    Console.WriteLine("Format not supported by this edition: " + ex.Message);
}

การดักจับ UnsupportedFileFormatException รอบคอนสตรัคเตอร์ Document จะทำให้คุณสามารถรายงานข้อความที่ชัดเจนแทนการปล่อยให้ข้อยกเว้นแพร่กระจายเป็นสแต็กเทรซแบบดิบ.

FileCorruptedException บนไฟล์ที่ดูเหมือนว่าจะถูกต้อง

FileCorruptedException ถูกโยนในระหว่างการโหลดเมื่อไฟล์ดูเหมือนจะเสียหายและไม่สามารถแยกวิเคราะห์ได้ — ตัวอย่างเช่น ไฟล์ .docx ที่ไม่ใช่แพ็กเกจ OOXML แบบ ZIP ที่ถูกต้อง หรือไฟล์ที่ถูกตัดตอนระหว่างการถ่ายโอน ให้รับไฟล์ใหม่จากแหล่งที่มาและยืนยันว่าเปิดได้อย่างถูกต้องก่อนที่จะโหลดด้วย Document.

IncorrectPasswordException เมื่อเปิดเอกสารที่ได้รับการป้องกัน

ข้อความนี้จะถูกโยนเมื่อเอกสารถูกเข้ารหัสด้วยรหัสผ่านและรหัสผ่านที่ส่งให้กับ overload LoadOptions ของคอนสตรัคเตอร์ Document ขาดหายหรือไม่ถูกต้อง ให้ใส่รหัสผ่านที่ถูกต้องผ่าน LoadOptions.Password ก่อนทำการโหลด.


ปัญหาในการบันทึกและส่งออก

การทำ Document.Save() ไปเป็น PDF, XPS หรือส่วนขยายรูปภาพล้มเหลว

รุ่นนี้ไม่มีระบบย่อยการจัดหน้ากระดาษและการเรนเดอร์ ดังนั้น Document.Save() ไม่สามารถส่งออกเป็น PDF, XPS หรือรูปแบบภาพได้.

บันทึกเป็น DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown หรือ plain text แทน — นั่นคือรูปแบบที่ฉบับนี้จริง ๆ แล้วเขียนได้. เวอร์ชันเชิงพาณิชย์ Aspose.Words for .NET เพิ่มการส่งออกเป็น PDF, XPS, และรูปภาพ.

หมายเลขหน้าและรายการในสารบัญจะแสดงค่าเป็น 0 เสมอ

Aspose.Words FOSS สำหรับ .NET มีเครื่องประมวลผลการประเมินฟิลด์เต็มรูปแบบ ดังนั้นฟิลด์เนื้อหาเช่น DATE และ DOCPROPERTY จะอัปเดตอย่างถูกต้อง ฟิลด์ที่ขึ้นกับการจัดหน้า — หมายเลขหน้า, NUMPAGES, และรายการในสารบัญ — จะประเมินเป็นค่าแทนที่ 0 แทนค่าที่คำนวณได้ เนื่องจากรุ่นนี้ไม่ได้รวมเครื่องมือจัดหน้าที่โดยปกติจะทำการแบ่งหน้าให้เอกสาร นี่เป็นพฤติกรรมที่คาดหวังในรุ่นนี้ ไม่ใช่บั๊ก.


ปัญหาลายเซ็นดิจิทัล

การลงลายเซ็นเอกสารไม่มีผล

DigitalSignatureUtil.Sign() และ API การลงลายเซ็นที่เกี่ยวข้องมีอยู่ในโมเดลวัตถุเพื่อความเข้ากันทางโครงสร้างกับผลิตภัณฑ์เชิงพาณิชย์ แต่การสร้างลายเซ็นใหม่ไม่ทำงานในรุ่น FOSS นี้ — การเรียกใช้งานจะไม่สร้างผลลัพธ์ที่มีลายเซ็น รุ่นนี้สามารถตรวจสอบและยืนยันลายเซ็นที่แนบอยู่ในเอกสารผ่าน Document.DigitalSignatures และ DigitalSignatureUtil.LoadSignatures() ได้ แต่กระบวนการลงลายเซ็นต้องใช้ Aspose.Words เชิงพาณิชย์สำหรับ .NET.


ปัญหาแบบอักษร

แบบอักษรที่ฝังไว้มีขนาดใหญ่กว่าที่คาดไว้

เมื่อเปิดใช้งาน EmbedTrueTypeFonts แบบอักษรจะถูกฝังเป็นไฟล์เต็มแทนที่จะทำการย่อยเฉพาะ glyph ที่ใช้จริงในเอกสาร ดังนั้นไฟล์ที่บันทึกซึ่งฝังแบบอักษรจึงมีขนาดใหญ่กว่าผลลัพธ์ที่เทียบเท่าจากผลิตภัณฑ์เชิงพาณิชย์ ไม่มีกลวิธีแก้ไขในรุ่นนี้ — การย่อยแบบอักษรที่ฝังไว้ไม่ได้รวมอยู่.


ดูเพิ่มเติม

 ภาษาไทย