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

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

 

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

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

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

  1. กำหนดเส้นทางไปยังไดเรกทอรีเอกสาร
  2. เริ่มต้นสตรีมอินพุตไฟล์ EPS
  3. สร้างไฟล์ PS จากสตรีมโดยใช้ คลาส PsDocument
  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
  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
  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 What is EPS File Format

EPS (Encapsulated PostScript) เป็นรูปแบบที่อธิบายหน้าหนึ่งหน้าโดยใช้ PostScript เหมาะกับกราฟิกเวกเตอร์และเวกเตอร์‑แรสเตอร์ผสม หลังจากนำเข้าไฟล์จะไม่สามารถแก้ไขได้ จึงแนะนำให้แปลงเป็นรูปแบบที่แก้ไขได้ เช่น SVG หรือ PDF