วิธีแปลง XPS เป็น JPG ใน C#

วิธีแปลง XPS เป็น JPG ใน C#

รูปแบบเอกสาร XPS ช่วยให้คุณสามารถแบ่งปัน สร้าง พิมพ์ และบันทึกเอกสารดิจิทัลได้อย่างง่ายดาย แต่คุณอาจต้องติดตั้งซอฟต์แวร์ที่รองรับ หากคุณเป็นโปรแกรมเมอร์ .NET และอาจต้องการส่งออกไฟล์ XPS เป็นรูปแบบ JPG/JPEG โดยทางโปรแกรม บทความนี้จะอธิบายวิธีแปลง XPS เป็น JPG ใน C#

บทความนี้จะกล่าวถึงประเด็นต่อไปนี้:

C# .NET API เพื่อแปลง XPS เป็น JPG

ในบทความนี้ เราจะใช้ Conholdate.Total for .NET เพื่อแปลง XPS เป็น JPG ไลบรารีนี้ช่วยให้คุณสามารถสร้าง แก้ไข และบันทึกเอกสาร XPS ที่มีอยู่และใหม่ได้ ดังนั้น คุณสามารถ ดาวน์โหลด DLL หรือติดตั้ง API การแปลง XPS นี้โดยใช้ NuGet

Install-Package Conholdate.Total 

วิธีแปลง XPS เป็น JPG/JPEG โดยทางโปรแกรมใน C#

API การแปลง XPS ช่วยให้คุณสามารถแปลงไฟล์ XPS ของคุณเป็น JPG

ต่อไปนี้เป็นขั้นตอนในการแปลงไฟล์ XPS เป็นรูปภาพ JPG:

  • เริ่มต้นวัตถุของคลาส Stream สำหรับเอกสาร XPS
  • สร้างอินสแตนซ์ของคลาส XpsDocument โดยใช้สตรีม XPS (สร้างขึ้นในขั้นตอนก่อนหน้า) และวัตถุของคลาส XpsLoadOptions เป็นพารามิเตอร์
  • เริ่มต้นวัตถุของคลาส JpegSaveOptions ด้วยพารามิเตอร์ที่จำเป็น
  • สร้างอินสแตนซ์ของคลาส ImageDevice
  • บันทึก JPG ในออบเจ็กต์ ImageDevice โดยเรียกใช้ XpsDocument.Save(Device device, SaveOptions options)
  • ใช้ ImageDevice เพื่อบันทึก JPG ลงในแผ่นดิสก์ (ดังแสดงในตัวอย่างโค้ดด้านล่าง)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแปลง XPS เป็น JPG โดยใช้ C#:

string inputFileName = "input.xps";
//ไฟล์เอาท์พุต 
string outputFileName = "XPStoImage_out.jpg";
// เตรียมใช้งานสตรีมอินพุต XPS
using (Stream xpsStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read))
{
                // โหลดเอกสาร XPS จากสตรีม
                XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions());
               

                // เริ่มต้นวัตถุตัวเลือกด้วยพารามิเตอร์ที่จำเป็น
                JpegSaveOptions options = new JpegSaveOptions()
                {
                    SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality,
                    Resolution = 300,
                    PageNumbers = new int[] { 1, 2, 6 }
                };

                // สร้างอุปกรณ์เรนเดอร์สำหรับรูปภาพ
                ImageDevice device = new ImageDevice();

                document.Save(device, options);

                // วนซ้ำผ่านพาร์ติชันเอกสาร (เอกสารคงที่ตามเงื่อนไข XPS)
               for (int i = 0; i < device.Result.Length; i++)
                    // วนซ้ำผ่านหน้าพาร์ติชัน
                   for (int j = 0; j < device.Result[i].Length; j++)
                    {
                        // เริ่มต้นสตรีมเอาท์พุตรูปภาพ
                        using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) +
                            Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) +
                            Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write))
                            // เขียนภาพ
                            imageStream.Write(device.Result[i][j], 0, device.Result[i][j].Length);
                    }
            
}

รับใบอนุญาตฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อทดสอบ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

เพื่อสรุปบทความนี้ เราหวังว่าคุณจะได้เรียนรู้วิธีแปลง XPS เป็น JPG ใน C# โดยใช้ API การแปลง XPS คุณสามารถไปที่ เอกสารประกอบ เพื่อสำรวจคุณสมบัติอื่นๆ ของไลบรารีการแปลง XPS

ถามคำถาม

คุณสามารถแจ้งให้เราทราบคำถามหรือข้อสงสัยของคุณได้ใน ฟอรั่ม ของเรา

ดูสิ่งนี้ด้วย