คำถามที่พบบ่อย
หน้านี้ประกอบด้วยคำตอบสำหรับคำถามที่พบบ่อย โปรดเรียนรู้หน้าปัจจุบัน บางทีนี่อาจช่วยให้คุณสามารถแก้ไขปัญหาของคุณได้อย่างรวดเร็ว
หากคุณไม่พบคำตอบสำหรับคำถามของคุณ คุณสามารถถามได้ที่ฟอรัมสนับสนุน สำหรับข้อมูลเกี่ยวกับวิธีการรายงานคำถามหรือปัญหาของคุณอย่างถูกต้อง โปรดดูที่หน้า การสนับสนุนทางเทคนิค
ทั่วไป
ถาม: 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