จัดการข้อมูลเมตา XMP

เพิ่ม แก้ไข และดึงข้อมูลเมตาจากไฟล์ EPS ได้อย่างง่ายดาย ทำให้คุณควบคุมข้อมูลของเอกสารได้อย่างสมบูรณ์ ยกระดับเนื้อหาของไฟล์ EPS ไปสู่ระดับใหม่ด้วย Aspose.Page Solution สำหรับ C++!

 

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

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

ในการรันตัวอย่างโค้ด คุณจะต้องมี:

  • Aspose.Page สำหรับ API C++ ซึ่งเป็น API การจัดการและแปลงเอกสารที่มีคุณสมบัติหลากหลาย ทรงพลัง และใช้งานง่ายสำหรับแพลตฟอร์ม C++

  • คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยตรง เพียงเปิดตัวจัดการแพ็กเกจ NuGet ค้นหา Aspose.Page.Cpp และติดตั้ง คุณยังสามารถใช้คำสั่งต่อไปนี้จาก Package Manager Console

Package Manager Console Command

    PM> Install-Package Aspose.Page.Cpp

เพิ่มข้อมูลเมตา XMP ลงในไฟล์ EPS ด้วย C++

เพื่อแทรกข้อมูลเมตา XMP ลงใน EPS คุณจะต้องใช้เอนทิตีของ XmpMetadata Class ทำตามขั้นตอนต่อไปนี้:

  1. กำหนดเส้นทางไปยังไดเร็กทอรีที่เอกสารอยู่
  2. เริ่มต้นสตรีมอินพุตสำหรับไฟล์ EPS
  3. ใช้คลาส PsDocument เพื่อสร้างไฟล์ PS จากสตรีมอินพุต
  4. ดึงข้อมูลเมตา XMP โดยเรียก GetXmpMetadata() Method หากไฟล์ EPS ไม่มีข้อมูลเมตา XMP เราจะได้ข้อมูลเมตาใหม่ที่เต็มไปด้วยค่าจากความคิดเห็นข้อมูลเมตา PS
  5. บันทึกเอกสาร EPS ที่เปลี่ยนแปลงโดยเรียกเมธอด Save()
เพิ่มข้อมูลเมตา XMP
    // The path to the documents directory.
    System::String dataDir = RunExamples::GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize EPS file input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir + u"add_input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    // Create PsDocument instance from stream
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);
    
    
    {
        auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]()
        {
            psStream->Close();
        });
        
        try
        {
            // Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
            System::SharedPtr<XmpMetadata> xmp = document->GetXmpMetadata();
            
            // Check metadata values extracted from PS metadata comments and set up in new XMP metadata
            
            // Get "CreatorTool" value
            if (xmp->Contains(u"xmp:CreatorTool"))
            {
                System::Console::WriteLine(System::String(u"CreatorTool: ") + xmp->idx_get(u"xmp:CreatorTool")->ToStringValue());
            }
            
            // Get "CreateDate" value
            if (xmp->Contains(u"xmp:CreateDate"))
            {
                System::Console::WriteLine(System::String(u"CreateDate: ") + xmp->idx_get(u"xmp:CreateDate")->ToStringValue());
            }
            
            // Get "format" value
            if (xmp->Contains(u"dc:format"))
            {
                System::Console::WriteLine(System::String(u"Format: ") + xmp->idx_get(u"dc:format")->ToStringValue());
            }
            
            // Get "title" value
            if (xmp->Contains(u"dc:title"))
            {
                System::Console::WriteLine(System::String(u"Title: ") + xmp->idx_get(u"dc:title")->ToArray()->idx_get(0)->ToStringValue());
            }
            
            // Get "creator" value
            if (xmp->Contains(u"dc:creator"))
            {
                System::Console::WriteLine(System::String(u"Creator: ") + xmp->idx_get(u"dc:creator")->ToArray()->idx_get(0)->ToStringValue());
            }
            
            // Get "MetadataDate" value
            if (xmp->Contains(u"xmp:MetadataDate"))
            {
                System::Console::WriteLine(System::String(u"MetadataDate: ") + xmp->idx_get(u"xmp:MetadataDate")->ToStringValue());
            }
            
            // Save EPS file with new XMP metadata
            
            // Create ouput stream
            {
                System::SharedPtr<System::IO::FileStream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"add_output.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
                // Clearing resources under 'using' statement
                System::Details::DisposeGuard<1> __dispose_guard_1({ outPsStream});
                // ------------------------------------------
                
                try
                {
                    // Save EPS file
                    document->Save(outPsStream);
                }
                catch(...)
                {
                    __dispose_guard_1.SetCurrentException(std::current_exception());
                }
            }
            
        }
        catch (...)
        {
            throw;
        }
    }

เปลี่ยนข้อมูลเมตา XMP ของไฟล์ EPS ด้วย C++

เพื่อเพิ่มรายการอาร์เรย์ลงในข้อมูลเมตา XMP คุณจะต้องใช้เอนทิตีเดิมอีกครั้งและทำตามขั้นตอนที่คล้ายกัน ขั้นตอนเพิ่มเติมต้องใช้ SetArrayItem หรือ AddArrayItem()

เปลี่ยนข้อมูลเมตา XMP
    // The path to the documents directory.
    System::String dataDir = RunExamples::GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize EPS file input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir + u"add_simple_props_input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    // Create PsDocument instance from stream
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);
    
    
    {
        auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]()
        {
            psStream->Close();
        });
        
        try
        {
            // Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
            System::SharedPtr<XmpMetadata> xmp = document->GetXmpMetadata();
            
            //Change XMP metadata values
            
            // Add one more title. I will be added at the end of array by default.
            xmp->AddArrayItem(u"dc:title", System::MakeObject<XmpValue>(u"NewTitle"));
            
            // Add one more creator. It will be added in the array by an index (0).
            xmp->AddArrayItem(u"dc:creator", 0, System::MakeObject<XmpValue>(u"NewCreator"));
            
            // Save EPS file with changed XMP metadata
            
            // Create ouput stream
            {
                System::SharedPtr<System::IO::FileStream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"add_array_items_output.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
                // Clearing resources under 'using' statement
                System::Details::DisposeGuard<1> __dispose_guard_1({ outPsStream});
                // ------------------------------------------
                
                try
                {
                    // Save EPS file
                    document->Save(outPsStream);
                }
                catch(...)
                {
                    __dispose_guard_1.SetCurrentException(std::current_exception());
                }
            }
            
        }
        catch (...)
        {
            throw;
        }
    }

EPS What is EPS File Format

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