การรวม MHTML ใน C# ทำงานอย่างไร

Aspose.HTML for .NET เรนเดอร์สตรีมไฟล์เก็บถาวร MHTML หรือ MHT หลายรายการผ่าน MhtmlRenderer ตัวเดียว และเขียนเนื้อหาไปยังอุปกรณ์เอาต์พุตร่วม ส่งสตรีมไปยัง MhtmlRenderer.Render() ตามลำดับที่ต้องการเพื่อสร้างผลลัพธ์ PDF, XPS, DOCX หรือ TIFF เพียงรายการเดียว เวิร์กโฟลว์นี้รวมเนื้อหาที่เรนเดอร์จากไฟล์เก็บถาวร แต่ไม่ได้สร้างไฟล์เก็บถาวร MHTML ใหม่ที่แก้ไขได้


รวม MHTML ใน C# พร้อมตัวอย่างแบบโต้ตอบ

ใช้ตัวอย่างแบบโต้ตอบเพื่อกำหนดลำดับไฟล์เก็บถาวรและสร้างเวิร์กโฟลว์ C# ที่ตรงกัน เพิ่มไฟล์ MHTML หรือ MHT ตามลำดับที่ต้องการ แล้วเลือก PDF, XPS, DOCX หรือ TIFF แผงโค้ดจะอัปเดตชื่อไฟล์ ตัวเรนเดอร์ อุปกรณ์เอาต์พุต และนามสกุลเมื่อมีการเปลี่ยนตัวเลือก คุณยังสามารถเรียกใช้การรวมที่กำหนดค่าไว้ทางออนไลน์เพื่อตรวจสอบผลลัพธ์ได้

เวิร์กโฟลว์สำหรับรวมไฟล์ MHTML

ระบบเลือก PDF เป็นค่าเริ่มต้น ตัวเรนเดอร์ยังคงเป็น MhtmlRenderer ส่วนอุปกรณ์เอาต์พุตจะเปลี่ยนตามรูปแบบปลายทางที่เลือก

  1. เปิดไฟล์ต้นฉบับ .mhtml หรือ .mht แต่ละไฟล์ด้วย File.OpenRead() หรือระบุการใช้งาน Stream อื่นที่อ่านได้
  2. จัดสตรีมตามลำดับที่ต้องการให้เนื้อหาที่เรนเดอร์แล้วปรากฏ
  3. สร้างอินสแตนซ์ MhtmlRenderer
  4. สร้างอุปกรณ์เอาต์พุต เช่น PdfDevice สำหรับ PDF
  5. ส่งอุปกรณ์และสตรีมไฟล์เก็บถาวรทั้งหมดไปยัง MhtmlRenderer.Render()

เลือกรูปแบบเอาต์พุตสำหรับการรวม MHTML

  • PDF – สร้างเอกสารเค้าโครงคงที่สำหรับการเผยแพร่หรือการพิมพ์
  • XPS – เรนเดอร์ไฟล์เก็บถาวรเว็บเป็นเอกสาร XPS
  • DOCX – สร้างเอกสารที่เปิดได้ใน Microsoft Word หรือโปรแกรมแก้ไขอื่นที่รองรับ
  • TIFF – บันทึกหน้าที่รวมและเรนเดอร์แล้วเป็นเอาต์พุตภาพแรสเตอร์

โค้ด C# ที่สร้างขึ้นจะเลือก PdfDevice, XpsDevice, DocDevice หรือ ImageDevice ตามรูปแบบปลายทาง ดูการตั้งค่าหน้า ภาพ และเอกสารได้ใน อุปกรณ์เรนเดอร์ใน C#


ข้อควรรู้เมื่อรวมไฟล์ MHTML

  • ลำดับต้นฉบับกำหนดลำดับผลลัพธ์ ไฟล์เก็บถาวรจะถูกเรนเดอร์ตามลำดับสตรีมที่ส่งไปยัง MhtmlRenderer.Render()
  • เปิดสตรีมอินพุตแต่ละรายการไว้ อย่าปล่อยสตรีมก่อนที่ตัวเรนเดอร์จะเขียนเอาต์พุตที่รวมแล้วเสร็จ
  • ผลลัพธ์ไม่ใช่ไฟล์เก็บถาวร MHTML ใหม่ ส่วน MIME จะถูกตีความและเรนเดอร์ แต่ไม่ถูกรวมเป็นไฟล์เก็บถาวรเว็บใหม่ที่แก้ไขได้
  • การตั้งค่าเค้าโครงเป็นของอุปกรณ์เอาต์พุต กำหนดขนาดหน้า ระยะขอบ ความละเอียด และตัวเลือกเฉพาะปลายทางอื่นผ่านคลาสตัวเลือกการเรนเดอร์ที่ตรงกัน

ติดตั้ง Aspose.HTML for .NET

ติดตั้ง Aspose.HTML for .NET จาก NuGet ด้วย .NET CLI:

dotnet add package Aspose.HTML

คุณยังสามารถใช้หน้าต่าง NuGet Package Manager หรือเรียกใช้ Install-Package Aspose.HTML ใน Package Manager Console ได้ ดูรายละเอียดการตั้งค่าใน คู่มือการติดตั้ง หรือขอ ใบอนุญาตชั่วคราว เพื่อประเมิน API โดยไม่มีข้อจำกัดของเวอร์ชันทดลอง


คำถามที่พบบ่อยเกี่ยวกับการรวมไฟล์ MHTML

1. ไฟล์อินพุต MHTML และ MHT แตกต่างกันหรือไม่?

MHTML และ MHT เป็นนามสกุลที่ใช้ทั่วไปสำหรับรูปแบบไฟล์เก็บถาวรเว็บ MIME HTML เดียวกัน MhtmlRenderer ประมวลผลสตรีมทั้งสองด้วยเวิร์กโฟลว์เดียวกัน เมื่อโครงสร้าง MIME และส่วนที่อ้างอิงถูกต้อง

2. ฉันสามารถจำกัดเวลาสำหรับการเรนเดอร์ MHTML ได้หรือไม่?

ได้ ใช้โอเวอร์โหลด MhtmlRenderer.Render() ที่รับ TimeSpan หรือ CancellationToken การจำกัดเวลามีประโยชน์เมื่อไฟล์เก็บถาวรมีหน้า สคริปต์ หรือทรัพยากรที่ซับซ้อนซึ่งอาจทำให้การดำเนินการล่าช้า

3. ภาพ สไตล์ และแบบอักษรที่ฝังอยู่จะรวมอยู่ในเอาต์พุตหรือไม่?

ตัวเรนเดอร์ใช้ส่วน MIME ที่ถูกต้องซึ่งหน้าในไฟล์เก็บถาวรอ้างอิง ส่วนที่หายไป ค่า Content-Location ที่ไม่ถูกต้อง หรือทรัพยากรภายนอกที่ไม่พร้อมใช้งานอาจทำให้สไตล์ ภาพ หรือแบบอักษรหายไปจากเอาต์พุต

4. ฉันสามารถส่งเอกสาร HTML และสตรีม MHTML ในการเรียกเรนเดอร์ครั้งเดียวได้หรือไม่?

ไม่ได้ MhtmlRenderer ต้องการสตรีม MHTML ส่วน HtmlRenderer ต้องการออบเจ็กต์ HTMLDocument ให้ใช้ตัวเรนเดอร์ที่ตรงกับต้นฉบับ หรือปรับอินพุตให้อยู่ในรูปแบบเดียวกันด้วยเวิร์กโฟลว์แยกก่อน

5. ฉันสามารถเขียน PDF ที่รวมแล้วลงในสตรีมได้หรือไม่?

ได้ สร้าง PdfDevice ด้วย Stream ที่เขียนได้ แล้วส่งอุปกรณ์และสตรีม MHTML ไปยัง MhtmlRenderer.Render() หากแอปพลิเคชันต้องอ่านหรือถ่ายโอนผลลัพธ์ภายหลัง ให้เปิดสตรีมเอาต์พุตไว้จนกว่าการเรนเดอร์จะเสร็จสิ้น

เครื่องมือรวมไฟล์ที่เกี่ยวข้อง

เลือกรูปแบบต้นฉบับอื่นหรือกลับไปยังภาพรวมเครื่องมือรวมไฟล์