แปลง XPS เป็น BMP ใน C#

การแปลงไฟล์ XPS เป็นภาพ BMP ใน C# เป็นความต้องการทั่วไปเมื่อคุณต้องการแยกตัวแทนทางภาพของเอกสาร XPS เพื่อการพิมพ์ การเก็บข้อมูล หรือการรวมเข้ากับกระบวนการประมวลผลภาพ โดยใช้ Conholdate.Total for .NET งานนี้จะกลายเป็นเรื่องง่ายและมีประสิทธิภาพ


ทำไมต้องแปลง XPS เป็น BMP?

นี่คือเหตุผลบางประการที่คุณอาจต้องการแปลง XPS เป็น BMP:

  • คุณภาพสูง: BMP รักษาความซื่อสัตย์ของภาพทั้งหมด เหมาะสำหรับการพิมพ์หรือการออกแบบงาน
  • การแชร์ที่ง่ายขึ้น: รูปภาพ BMP สามารถเปิดและดูได้ง่ายในหลายแพลตฟอร์ม
  • การดึงข้อมูล: ดึงเนื้อหาระดับหน้าเพื่อการวิเคราะห์หรือ OCR.
  • การประมวลผลชุด: แปลงหลายหน้าหรือเอกสารในครั้งเดียวโดยใช้การทำงานอัตโนมัติของ .NET.

แปลง XPS เป็น BMP ใน C#

ทำตามขั้นตอนด้านล่างเพื่อทำการแปลง:

  1. โหลดเอกสาร XPS โดยใช้คลาส XpsDocument
  2. สร้างและตั้งค่าตัวอย่างของ BmpSaveOptions
  3. เรียกใช้วิธี SaveAsImage เพื่อสร้างอาร์เรย์ไบต์รูปภาพ BMP.
  4. ทำซ้ำผ่านแต่ละหน้าและบันทึกรูปภาพลงในดิสก์。

แปลง XPS เป็น BMP ใน C#

// Define the working directory.
string dataDir = "/Desktop";
string outputFileName = dataDir + "XPStoImage_out.bmp";

// Instantiate an instance of the XpsLoadOptions class.  
// Load XPS document from the XPS file by initializing an instance of the XpsDocument class. 
XpsDocument document = new XpsDocument(dataDir + "input.xps", new XpsLoadOptions());

// Initialize BmpSaveOptions object with necessary parameters. 
BmpSaveOptions options = new BmpSaveOptions()
{
    SmoothingMode = SmoothingMode.HighQuality,
    Resolution = 300,
    PageNumbers = new int[] { 1, 2, 6 }
};

// Invoke SaveAsImage method to save XPS document to the images byte arrays. 
byte[][][] imagesBytes = document.SaveAsImage(options);

// Iterate through document partitions (fixed documents, in XPS terms)
for (int i = 0; i < imagesBytes.Length; i++)
{
    // Iterate through partition pages
   for (int j = 0; j < imagesBytes[i].Length; j++)
    {
        // Initialize image output stream
        using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) + Path.DirectorySeparatorChar +
            Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) +
            Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write))
            // Write image 
            imageStream.Write(imagesBytes[i][j], 0, imagesBytes[i][j].Length);
    }
}

โค้ดนี้แสดงถึงกระบวนการที่สมบูรณ์สำหรับการแปลงเอกสาร XPS เป็นภาพ BMP ใน C# ไฟล์ XPS ถูกโหลดโดยใช้คลาส XpsDocument พร้อมกับ XpsLoadOptions เพื่อเตรียมพร้อมสำหรับการเรนเดอร์ จากนั้นวัตถุ BmpSaveOptions จะถูกจัดเตรียมซึ่งคุณสามารถตั้งค่าความละเอียดของภาพ โหมดการทำให้เรียบ และหน้าที่เฉพาะที่จะถูกแปลง สิ่งนี้ทำให้แน่ใจว่าทุกหน้าถูกบันทึกแยกกันโดยมีการติดป้ายกำกับที่ชัดเจน ทำให้จัดการและใช้งานภาพที่สร้างขึ้นในแอปพลิเคชันอื่น ๆ ได้ง่าย โดยรวมแล้ว วิธีนี้ให้วิธีการที่มีประสิทธิภาพสูงในการดึงข้อมูลและรักษาเนื้อหา XPS ในรูปแบบ BMP

ข้อสรุป

การแปลงเอกสาร XPS เป็นภาพ BMP ใน C# ช่วยให้นักพัฒนาสามารถสร้างผลลัพธ์เป็นภาพแบบแรสเตอร์ได้อย่างง่ายดายสำหรับการรวมเข้าด้วยกัน การจัดเก็บถาวร หรือการประมวลผลเพิ่มเติม Conholdate.Total สำหรับ .NET มี API ที่ทรงพลังในการจัดการการแปลงเอกสารดังกล่าวด้วยความพยายามน้อยที่สุด

ดูเพิ่มเติม