การรวม 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 แผงโค้ดจะอัปเดตชื่อไฟล์ ตัวเรนเดอร์ อุปกรณ์เอาต์พุต และนามสกุลเมื่อมีการเปลี่ยนตัวเลือก คุณยังสามารถเรียกใช้การรวมที่กำหนดค่าไว้ทางออนไลน์เพื่อตรวจสอบผลลัพธ์ได้
using System.IO;
using Aspose.Html.Rendering;
using Aspose.Html.Rendering.Pdf;
// Open the MHTML files as streams in the required merge order.
using FileStream stream1 = File.OpenRead("first.mhtml");
using FileStream stream2 = File.OpenRead("second.mhtml");
// Create the renderer and the PDF output device.
using MhtmlRenderer renderer = new MhtmlRenderer();
using PdfDevice device = new PdfDevice("merged.pdf");
// Render the sources into one PDF file.
renderer.Render(device, stream1, stream2);
เวิร์กโฟลว์สำหรับรวมไฟล์ MHTML
ระบบเลือก PDF เป็นค่าเริ่มต้น ตัวเรนเดอร์ยังคงเป็น MhtmlRenderer ส่วนอุปกรณ์เอาต์พุตจะเปลี่ยนตามรูปแบบปลายทางที่เลือก
- เปิดไฟล์ต้นฉบับ
.mhtmlหรือ.mhtแต่ละไฟล์ด้วยFile.OpenRead()หรือระบุการใช้งานStreamอื่นที่อ่านได้ - จัดสตรีมตามลำดับที่ต้องการให้เนื้อหาที่เรนเดอร์แล้วปรากฏ
- สร้างอินสแตนซ์
MhtmlRenderer - สร้างอุปกรณ์เอาต์พุต เช่น
PdfDeviceสำหรับ PDF - ส่งอุปกรณ์และสตรีมไฟล์เก็บถาวรทั้งหมดไปยัง
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() หากแอปพลิเคชันต้องอ่านหรือถ่ายโอนผลลัพธ์ภายหลัง ให้เปิดสตรีมเอาต์พุตไว้จนกว่าการเรนเดอร์จะเสร็จสิ้น
เครื่องมือรวมไฟล์ที่เกี่ยวข้อง
เลือกรูปแบบต้นฉบับอื่นหรือกลับไปยังภาพรวมเครื่องมือรวมไฟล์