คำถามที่พบบ่อย

หน้านี้ประกอบด้วยคำตอบสำหรับคำถามที่พบบ่อย โปรดเรียนรู้หน้าปัจจุบัน บางทีนี่อาจช่วยให้คุณสามารถแก้ไขปัญหาของคุณได้อย่างรวดเร็ว

หากคุณไม่พบคำตอบสำหรับคำถามของคุณ คุณสามารถถามได้ที่ฟอรัมสนับสนุน สำหรับข้อมูลเกี่ยวกับวิธีการรายงานคำถามหรือปัญหาของคุณอย่างถูกต้อง โปรดดูที่หน้า การสนับสนุนทางเทคนิค

ทั่วไป

ถาม: Aspose.Words คืออะไร

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

รายละเอียดสามารถพบได้ในเอกสารของเรา


ถาม: “Aspose.Words ไม่จำเป็นต้องมีแอปพลิเคชันบุคคลที่สาม” หมายความว่าอย่างไร

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


ถาม: Aspose.Words รองรับแพลตฟอร์มใดบ้าง

Aspose.Words สำหรับ .NET ครอบคลุมสภาพแวดล้อมการพัฒนาและแพลตฟอร์มการปรับใช้งานยอดนิยมส่วนใหญ่ API สามารถใช้ในการพัฒนาแอปพลิเคชันสำหรับระบบปฏิบัติการที่หลากหลาย เช่น Windows, Linux และ Mac OS และแพลตฟอร์มต่างๆ

โปรดดูรายละเอียดที่หน้า ภาพรวมผลิตภัณฑ์ และส่วน แพลตฟอร์มและความสามารถ Interoperability


ถาม: Aspose.Words รองรับรูปแบบเอกสารใดบ้าง

Aspose.Words สำหรับ .NET รองรับรูปแบบเอกสารยอดนิยมส่วนใหญ่ เช่น DOC, DOCX, HTML, Markdown, PDF, XML และอื่นๆ

คุณสามารถดูรายการรูปแบบที่รองรับทั้งหมดได้ที่หน้า รูปแบบเอกสารที่รองรับ


ถาม: ฉันจะทดลองใช้ Aspose.Words ฟรีได้อย่างไร

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

ดูหน้า การออกใบอนุญาตและการสมัครสมาชิก สำหรับข้อมูลเพิ่มเติม


ถาม: ฉันจะซื้อ Aspose.Words ได้อย่างไร

หากต้องการซื้อใบอนุญาต Aspose.Words คุณต้องไปที่หน้า ซื้อ เลือกผลิตภัณฑ์ “Aspose.Words” และประเภทใบอนุญาตที่เหมาะกับคุณ จากนั้นเพิ่มใบอนุญาตลงในรถเข็นของคุณและปฏิบัติตามคำแนะนำในรถเข็นช็อปปิ้ง

หลังจากซื้อแล้ว ให้ยื่นขอใบอนุญาตตามที่อธิบายไว้ในส่วน ใบอนุญาตที่ซื้อ

รายละเอียดเกี่ยวกับวิธีการติดตั้ง Aspose.Words สามารถอ่านได้ในหน้า การติดตั้ง


ถาม: ฉันจะได้รับการสนับสนุนได้อย่างไร

ใช้ฟอรัมสนับสนุนทางเทคนิคฟรี หากต้องการรายละเอียดเกี่ยวกับวิธีการรายงานปัญหาอย่างถูกต้องและสิ่งที่ต้องทำก่อนติดต่อฟอรัม โปรดดูที่หน้า การสนับสนุนทางเทคนิค

การแสดงผลเอกสาร

ถาม: เหตุใดเค้าโครงและแบบอักษรในเอกสารเอาต์พุตจึงแตกต่างจากต้นฉบับ

แบบอักษรอาจไม่พร้อมใช้งาน หรือรูปแบบแบบอักษรได้รับการสนับสนุนโดย Microsoft Word แต่ไม่สนับสนุนโดย Aspose.Words Aspose.Words จะดำเนินการ จัดการและแทนที่แบบอักษร TrueType

หากต้องการตรวจสอบว่าแบบอักษรหายไปหรือไม่:

  • ใน Aspose.Words ให้ใช้คำเตือนการแทนที่แบบอักษร (สำหรับรายละเอียด โปรดดูส่วน “วิธีรับรู้ว่าแบบอักษรถูกแทนที่” ของบทความ จัดการและแทนที่แบบอักษร TrueType)
  • ใน Microsoft Word ให้เปิดกล่องโต้ตอบ “การทดแทนแบบอักษร” (ไฟล์ → ตัวเลือก → ขั้นสูง → การทดแทนแบบอักษร)

ถาม: ฉันควรจัดเก็บแบบอักษรสำหรับแอปพลิเคชัน ASP.NET ไว้ที่ใด

ใน APS.NET ไม่มีสิทธิ์เข้าถึงโฟลเดอร์แบบอักษรของระบบด้วยความน่าเชื่อถือระดับปานกลาง ผู้ใช้จะต้องจัดเก็บแบบอักษรไว้ในโฟลเดอร์ของตนเอง


ถาม: เหตุใดแบบอักษรสำรองจึงไม่ทำงานบนแพลตฟอร์มที่ไม่ใช่ Windows และอักขระ Unicode จึงถูกแทนที่ด้วย .notdef glyph

เรามักจะเห็น .notdef glyph แทนอักขระ Unicode บางตัว โดยปกติจะเป็นกล่องหรือ glyph คำถาม

เนื่องจากการตั้งค่าทางเลือกของ Microsoft Office จะถูกเลือกไว้ตามค่าเริ่มต้น และไม่มีแบบอักษรของ Microsoft Office ผู้ใช้ต้องติดตั้งแบบอักษร Microsoft Office หรือแก้ไขการตั้งค่าทางเลือก


ถาม: เหตุใดข้อความสคริปต์ที่ซับซ้อน เช่น ไทยหรือฮีบรู จึงแสดงไม่ถูกต้องด้วยเหตุผลบางประการ เช่น ตำแหน่งตัวกำกับเสียงหรืออักษรควบไม่ถูกต้อง

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


ถาม: ฉันจำเป็นต้องมีไฟล์ลิขสิทธิ์สำหรับแบบอักษรที่ฉันใช้หรือไม่

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

Mail Merge ที่ซ้อนกัน

ถาม: เหตุใดจึงไม่มีฟิลด์ที่ผสานในเอาต์พุตที่สร้างขึ้น

ชื่อเดิมของเขตข้อมูลผสานจะยังคงเหมือนเดิมโดยไม่ต้องถูกแทนที่ด้วยข้อมูลที่จำเป็นจากแหล่งข้อมูล จากนั้น:

  • ตรวจสอบว่าข้อมูลถูกโหลดลงในตารางอย่างถูกต้อง: ตั้งค่า TableName อย่างถูกต้องด้วยคีย์หลักและความสัมพันธ์ที่จำเป็นทั้งหมด
  • ตรวจสอบว่าช่องผสานได้รับการตั้งชื่ออย่างถูกต้อง ใช้วิธี GetFieldNames เพื่อรับชื่อช่องผสานทั้งหมด และตรวจสอบให้แน่ใจว่าชื่อของช่องผสานในเทมเพลตของคุณตรงกับชื่อในแหล่งข้อมูลของคุณ

ถาม: เหตุใดผลลัพธ์ของการผสานที่ซ้อนกันจึงไม่แสดงข้อมูลจากตารางลูกสำหรับรายการแรกในตารางหลัก แต่แสดงรายการทั้งหมดสำหรับรายการสุดท้ายในตารางหลัก แม้แต่รายการที่ไม่ได้เชื่อมโยงกับตารางหลักด้วยซ้ำ

เนื่องจากพื้นที่ที่ผสานในเทมเพลตมีรูปแบบไม่ถูกต้อง ซึ่งอาจทำให้ขอบเขต mail merge ที่ซ้อนกันทั้งหมดหยุดแสดงสิ่งใดเลยได้ แท็กเปิด StartTable และแท็กปิด EndTable ต้องตรงกันและอยู่ในแถวหรือเซลล์เดียวกัน ตัวอย่างเช่น หากคุณเริ่มซ้อนขอบเขตการผสานในเซลล์ของตาราง คุณต้องสิ้นสุดขอบเขตการผสานในแถวเดียวกันกับเซลล์แรก


ถาม: เหตุใดแต่ละรายการจากตารางหลักจึงแสดงทุกรายการในตารางลูก แม้แต่รายการที่ไม่ได้เชื่อมโยงกับรายการนั้นจริงๆ ด้วย

เนื่องจากไม่มีการตั้งค่าความสัมพันธ์ระหว่างตารางหลักและตารางรองหรือมีการตั้งค่าไม่ถูกต้อง มีความจำเป็นต้อง:

  • ตรวจสอบความสมบูรณ์ของข้อมูลภายใน DataSet ของคุณ และใช้ออบเจ็กต์ DataRelation เพื่อแสดงความสัมพันธ์ระหว่างผู้ปกครองและเด็กระหว่างตารางข้อมูลที่เกี่ยวข้อง
  • ตรวจสอบส่วน “วิธีตั้งค่าความสัมพันธ์ข้อมูลใน Mail Merge ที่ซ้อนกันพร้อมภูมิภาค” ในบทความ Mail Merge ที่ซ้อนกันกับภูมิภาค

ถาม: เหตุใดจึงมีข้อยกเว้น: “System.ArgumentException: ข้อจำกัดนี้ไม่สามารถเปิดใช้งานได้เนื่องจากค่าบางค่าไม่ได้มีค่าพาเรนต์ที่สอดคล้องกัน” ขณะดำเนินการ mail merge ที่ซ้อนกัน

สิ่งนี้เกิดขึ้นเนื่องจากไม่ใช่ทุกบันทึกหลักที่มีบันทึกลูก ดังนั้นแหล่งข้อมูลของคุณจึงไม่ตรงกับเกณฑ์ต่อไปนี้: ทุกแถวในตารางหลักควรมีความสัมพันธ์แบบหนึ่งต่อหนึ่งกับแถวของตารางลูกโดยยึดตามหลักและ กุญแจต่างประเทศ

ปิดใช้งานข้อจำกัดคีย์ต่างประเทศเมื่อคุณสร้าง DataRelation

ผนวกหรือแทรกเอกสาร

ถาม: เหตุใดเนื้อหาที่ต่อท้ายเอกสารจึงไม่ปรากฏในหน้าเดียวกัน

ผลลัพธ์การผนวกจะปรากฏในหน้าแยกต่างหาก เนื่องจากความแตกต่างในการตั้งค่า PageSetup สำหรับส่วนที่ผนวกเอกสารเข้าด้วยกัน ทำการตั้งค่า PageSetup ที่เหมือนกันสำหรับส่วนที่ต่อท้ายเอกสารเข้าด้วยกัน

แปลงเอกสาร

ถาม: วิธีแปลง PDF เป็น Word

ง่ายมาก เพียงโหลดเอกสารลงในโมเดลและบันทึกเป็นรูปแบบที่รองรับ

ตัวอย่างโค้ดต่อไปนี้แสดงกระบวนการแปลงไฟล์ PDF เป็น DOC:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

// Save the file into MS document format
pdfDocument.Save(_dataDir + "PDFToDOC_out.doc", SaveFormat.Doc); // .Docx, .Rtf, .WordML, etc.

ถาม: วิธีแปลง DOCX เป็น PDF

มันง่ายมากเช่นกัน เพียงโหลดเอกสารลงในโมเดลและบันทึกเป็นรูปแบบที่รองรับ

ตัวอย่างโค้ดต่อไปนี้แสดงกระบวนการแปลงไฟล์ DOCX เป็น PDF:

// Open the source DOCX document.
Document doc = new Document(_dataDir + "input.docx");

// Save the file to PDF format.
doc.Save(_dataDir + "output.pdf", SaveFormat.Pdf);

จัดการด้วยเอกสาร

ถาม: จะแบ่งเอกสารทีละหน้าได้อย่างไร

Aspose.Words ช่วยให้คุณสามารถแบ่งเอกสารหลายหน้าทีละหน้า

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแบ่งเอกสารและบันทึกแต่ละหน้าเป็นเอกสารแยกต่างหาก:

Document doc = new Document(MyDir + "Big document.docx");

int pageCount = doc.PageCount;

for (int page = 0; page < pageCount; page++)
{
	// Save each page as a separate document.
	Document extractedPage = doc.ExtractPages(page, 1);
	extractedPage.Save(ArtifactsDir + $"SplitDocument.PageByPage_{page + 1}.docx");
}

ถาม: วิธีการเปิดข้อมูลที่เข้ารหัส เอกสาร?

คุณสามารถลองเปิดเอกสารที่เข้ารหัสโดยไม่ต้องใช้รหัสผ่าน ซึ่งอาจทำให้เกิดข้อยกเว้นได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปิดเอกสารที่เข้ารหัสด้วยรหัสผ่าน:

// Create a document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Hello world!");

//OoxmlSaveOptions only applies to Docx, Docm, Dotx, Dotm, or FlatOpc formats.
OoxmlSaveOptions options = new OoxmlSaveOptions(SaveFormat.Docx);

// Set a password with which the document will be encrypted, and which will be required to open it.
options.Password = "MyPassword";
doc.Save(ArtifactsDir + "OoxmlSaveOptions.SaveAsDocx.docx", options);

// Open the encrypted document by passing the correct password in a `LoadOptions` object.
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Password.docx", new LoadOptions("MyPassword"));

Assert.AreEqual("Hello world!", doc.GetText().Trim());

ถาม: จะพิมพ์เอกสารได้อย่างไร?

โค้ดเพียงสองบรรทัด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการพิมพ์เอกสารได้สองวิธี:

Document doc = new Document(MyDir + "PrintMe.docx");

// Below are two ways of printing our document.
// 1 -  Print using the default printer:
doc.Print();

// 2 -  Specify a printer that we wish to print the document with by name:
string myPrinter = PrinterSettings.InstalledPrinters[4];

doc.Print(myPrinter);

ถาม: จะแก้ไขเอกสาร PDF ได้อย่างไร

เพียงโหลด PDF ลงในโมเดลเอกสาร Aspose.Words แล้วทำการเปลี่ยนแปลง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแก้ไขเอกสาร:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

DocumentBuilder builder = new DocumentBuilder(pdfDocument);
builder.MoveToDocumentEnd();
builder.Writeln("New paragraph with text");

pdfDocument.Save(_dataDir + "out.pdf", SaveFormat.Pdf);

Docker

ถาม: จะใช้ Aspose.Words ใน Docker ได้อย่างไร

หากต้องการคำตอบโดยละเอียด โปรดดูบทความ วิธีเรียกใช้ Aspose.Words ในรูปแบบ Docker