การทำงานกับข้อมูลเมตา XMP EPS

เพิ่ม แก้ไข และรับข้อมูลเมตาของไฟล์ EPS ด้วย C#

 

ข้อมูลเมตา XMP คือชุดของคุณสมบัติที่กำหนดลักษณะของไฟล์และแสดงในรูปแบบ XML ประกอบด้วยข้อมูลไฟล์ที่อธิบายเนื้อหาของไฟล์และการระบุตัวตนที่อนุญาตให้แยกไฟล์นี้ออกจากไฟล์อื่นๆ นอกจากนี้ยังเก็บข้อมูลเกี่ยวกับการสร้างและแก้ไข ผู้ใช้ที่มีส่วนร่วมในการสร้าง เปลี่ยนแปลง และอัปโหลดไฟล์ และประวัติการแปลงไฟล์

โซลูชัน Aspose.Page API ท่ามกลางคุณสมบัติอื่น ๆ ที่แตกต่างกันช่วยให้ XMP metadata ของไฟล์ EPS ทำงานได้ คุณจะพบข้อมูลที่อธิบายวิธีการเพิ่ม แก้ไข และรับข้อมูลได้ที่นี่ เรียนรู้ตัวอย่างเพิ่มเติมเกี่ยวกับวิธีการทำงานกับ XMP metadata ลองใช้เว็บแอป XMP Metadata Editor ของเราด้วย เพื่อดูว่าฟังก์ชันอาจใช้งานอย่างไร

ขั้นตอนในการเพิ่มข้อมูลเมตา XMP ลงในไฟล์ EPS C#

  1. กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
  2. เริ่มต้นสตรีมอินพุตไฟล์ EPS
  3. สร้างไฟล์ PS จากสตรีมโดยใช้ PsDocument Class
  4. ในการรับข้อมูลเมตา XMP ให้ใช้วิธี GetXmpMetadata()
  5. บันทึกเอกสาร EPS ที่เปลี่ยนแปลงโดยใช้เมธอด Save()

รหัส C# เพื่อเพิ่มข้อมูลเมตา XMP

    using Aspose.Page.EPS;
    using Aspose.Page.EPS.Device;
    using Aspose.Page.EPS.XMP;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "add_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create the PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        // Check metadata values extracted from PS metadata comments and set up in new XMP metadata

        // Get the "CreatorTool" value
        if (xmp.Contains("xmp:CreatorTool"))
        Console.WriteLine("CreatorTool: " + xmp["xmp:CreatorTool"].ToStringValue());

        // Get the "CreateDate" value
        if (xmp.Contains("xmp:CreateDate"))
            Console.WriteLine("CreateDate: " + xmp["xmp:CreateDate"].ToStringValue());

        // Get the "format" value
        if (xmp.Contains("dc:format"))
            Console.WriteLine("Format: " + xmp["dc:format"].ToStringValue());

        // Get the "title" value
        if (xmp.Contains("dc:title"))
            Console.WriteLine("Title: " + xmp["dc:title"].ToArray()[0].ToStringValue());

        // Get the "creator" value
        if (xmp.Contains("dc:creator"))
            Console.WriteLine("Creator: " + xmp["dc:creator"].ToArray()[0].ToStringValue());

        // Get the "MetadataDate" value
        if (xmp.Contains("xmp:MetadataDate"))
            Console.WriteLine("MetadataDate: " + xmp["xmp:MetadataDate"].ToStringValue());

        // Save the EPS file with new XMP metadata

        // Create the ouput stream
        using (System.IO.FileStream outPsStream = new System.IO.FileStream(dataDir + "add_output.eps", System.IO.FileMode.Create, System.IO.FileAccess.Write))
        {
            // Save the EPS file
            document.Save(outPsStream);
        }

    }
    finally
    {
        psStream.Close();
    }

ขั้นตอนในการแก้ไขข้อมูลเมตา XMP เป็นไฟล์ EPS C#

  1. กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
  2. เริ่มต้นสตรีมอินพุตไฟล์ EPS
  3. สร้างไฟล์ PS จากสตรีมโดยใช้ PsDocument Class
  4. ในการรับข้อมูลเมตา XMP ให้ใช้วิธี GetXmpMetadata()
  5. หากต้องการเปลี่ยนค่าข้อมูลเมตา XMP ให้ใช้วิธี SetArrayItem()
  6. บันทึกไฟล์ EPS ที่เปลี่ยนแปลง

รหัส C# เพื่อเปลี่ยนข้อมูลเมตา XMP

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "add_simple_props_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create a PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        //Change the XMP metadata values

        // Change the title item at index 0
        xmp.SetArrayItem("dc:title", 0, new XmpValue("NewTitle"));

        // Change the creator item at index 0
        xmp.SetArrayItem("dc:creator", 0, new XmpValue("NewCreator"));

        // Save the EPS file with the changed XMP metadata

        // Create an ouput stream
        using (System.IO.FileStream outPsStream = new System.IO.FileStream(dataDir + "change_array_items_output.eps", System.IO.FileMode.Create, System.IO.FileAccess.Write))
        {
            // Save the EPS file
            document.Save(outPsStream);
        }

    }
    finally
    {
        psStream.Close();
    }

ขั้นตอนในการรับข้อมูลเมตา XMP ของไฟล์ EPS C#

  1. กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
  2. เริ่มต้นสตรีมอินพุตไฟล์ EPS
  3. สร้างไฟล์ PS จากสตรีมโดยใช้ PsDocument Class
  4. รับข้อมูลเมตา XMP โดยใช้เมธอด GetXmpMetadata()

รหัส C# เพื่อรับข้อมูลเมตา XMP

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "get_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create a PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        // Get the "CreatorTool" value
        if (xmp.Contains("xmp:CreatorTool"))
            Console.WriteLine("CreatorTool: " + xmp["xmp:CreatorTool"].ToStringValue());
                
        // Get the "CreateDate" value
        if (xmp.Contains("xmp:CreateDate"))
            Console.WriteLine("CreateDate: " + xmp["xmp:CreateDate"].ToStringValue());

        // Get a width of a thumbnail image if exists
        if (xmp.Contains("xmp:Thumbnails") && xmp["xmp:Thumbnails"].IsArray)
        {
            XmpValue val = xmp["xmp:Thumbnails"].ToArray()[0];
            if (val.IsNamedValues && val.ToDictionary().ContainsKey("xmpGImg:width"))
                Console.WriteLine("Thumbnail Width: " + val.ToDictionary()["xmpGImg:width"].ToInteger());
        }

        // Get the "Format" value
        if (xmp.Contains("dc:format"))
            Console.WriteLine("Format: " + xmp["dc:format"].ToStringValue());

        // Get the "DocumentID" value
        if (xmp.Contains("xmpMM:DocumentID"))
            Console.WriteLine("DocumentID: " + xmp["xmpMM:DocumentID"].ToStringValue());

    }
    finally
    {
        psStream.Close();
    }



คำถามที่พบบ่อย

1. ข้อมูลเมตา XMP คืออะไร

XMP เป็นตัวย่อของ Extensible Metadata Platform ซึ่งเป็นมาตรฐานสำหรับการฝังคุณสมบัติข้อมูลเมตาในไฟล์มีเดีย

2. ข้อมูลใดบ้างที่รวมอยู่ใน XMP?

มีข้อมูลเกี่ยวกับผู้เขียน ผู้แก้ไข และผู้สร้างแอปพลิเคชัน พร้อมด้วยเวอร์ชัน ชื่อ คำอธิบาย คำสำคัญ ตัวระบุที่ช่วยให้สามารถระบุไฟล์และข้อมูลประวัติได้โดยไม่ซ้ำกัน

3. จะเพิ่มข้อมูลเมตา XMP ลงในไฟล์ EPS ได้อย่างไร

กำหนดเส้นทางไปยังไดเร็กทอรีเอกสารและสร้างไฟล์ EPS จากสตรีม หากต้องการเพิ่มข้อมูลเมตา XMP ให้ใช้เมธอด Add() ของคลาส XmpMetadata

EPS EPS รูปแบบไฟล์คืออะไร

EPS (ERSF) หรือรูปแบบไฟล์ PostScript ที่ห่อหุ้มคือรูปแบบที่จริงๆ แล้วเป็นโปรแกรม PS ที่อธิบายว่าหน้าเดียวจะมีลักษณะอย่างไร จริงๆ แล้ว PS มีข้อ จำกัด บวกกับบันทึกย่อที่ช่วยห่อหุ้มกราฟิก PostScript ลงในเอกสารอื่น EPS รองรับกราฟิกแบบเวกเตอร์หรือกราฟิกแบบเวกเตอร์แรสเตอร์ที่รวมกันอย่างสมบูรณ์แบบ ลักษณะเฉพาะของรูปแบบคือทันทีที่นำเข้าสู่เอกสารแล้วจะไม่สามารถแก้ไขได้อีกต่อไป นั่นเป็นหนึ่งในเหตุผลในการแปลงรูปแบบนี้เป็นรูปแบบที่คุณสามารถใช้งานได้