XMP Meta Verilerini Yönetin

EPS dosyalarından meta verileri zahmetsizce ekleyin, düzenleyin ve alın; belgenizin bilgileri üzerinde tam kontrol sahibi olun. Aspose.Page Solution for C++ ile EPS dosyalarının içeriğini yeni bir seviyeye taşıyın!

 

XMP meta verileri, bir dosyayı tanımlamaya yönelik özellikler topluluğudur. XML biçiminde yazılır. Meta veriler, dosyanın içeriği hakkında bilgileri, onu diğer dosyalardan ayıran kimlik ayrıntılarını ve dosyanın oluşturulması, değiştirilmesi ve yüklenmesi geçmişiyle ilgili diğer verileri içerir. Ayrıca dosyanın oluşturulmasına, düzenlenmesine ve yüklenmesine katkıda bulunan kullanıcıların ayrıntılarını da kaydeder.

C++ API Çözümümüzle EPS dosyalarınızın potansiyelini açığa çıkarın! EPS belgeleriniz üzerinde tam kontrol sağlayan XMP meta verileriyle sorunsuz entegrasyon. Dijital varlıkları yönetiyor, telif hakkı bilgilerini geliştiriyor veya yaratıcı iş akışınızı optimize ediyor olun, API’miz süreci basitleştirerek hassasiyet ve verimlilik sağlar. Meta veri işleme yeteneklerinizi geliştirin ve EPS dosyalarınız hakkında daha derin içgörüler edinin. C++ API Çözümümüzü kullanarak XMP meta verileriyle sorunsuz entegrasyonu deneyimleyin. Çözümü bugün satın alın veya EPS dosyalarından meta veri ekleme, düzenleme ve alma işlevselliğini keşfetmek için ücretsiz bir deneme sürümü edinin! XMP meta verileriyle çalışma hakkında daha fazla bilgi ve örnek için GitHub adresindeki Aspose.Page API belgelerini ziyaret edin. Ayrıca işlevselliğin nasıl kullanılabileceğini görmek için XMP Meta Veri Düzenleyicisi web uygulamamızı deneyin.

Kod örneğini çalıştırmak için şunlara ihtiyacınız olacak:

  • C++ platformu için zengin işlevli, güçlü ve kullanımı kolay bir belge işleme ve dönüştürme API'si olan Aspose.Page for C++ API.

  • En son sürümü doğrudan indirebilirsiniz; NuGet paket yöneticisini açın, Aspose.Page.Cpp'yi arayın ve yükleyin. Paket Yöneticisi Konsolundan aşağıdaki komutu da kullanabilirsiniz.

Package Manager Console Command

    PM> Install-Package Aspose.Page.Cpp

C++ ile bir EPS dosyasına XMP meta verisi ekleme

EPS’ye XMP meta verisi eklemek için XmpMetadata Class varlıklarını kullanmanız gerekir. Şu adımları izleyin:

  1. Belgenin bulunduğu dizinin yolunu ayarlayın.
  2. EPS dosyası için bir giriş akışı başlatın.
  3. Giriş akışından bir PS dosyası oluşturmak için PsDocument Class’ını kullanın.
  4. XMP meta verilerini GetXmpMetadata() Yöntemi’ni çağırarak alın. EPS dosyası XMP meta verisi içermiyorsa, PS meta veri yorumlarından alınan değerlerle doldurulmuş yeni bir meta veri elde ederiz.
  5. Save() metodunu çağırarak değiştirilen EPS belgesini kaydedin.
XMP meta verisi ekleme
    // 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;
        }
    }

C++ ile bir EPS dosyasının XMP meta verilerini değiştirme

XMP meta verilerine dizi öğeleri eklemek için aynı varlıkları kullanmanız ve benzer adımları izlemeniz gerekir. Ek adım, SetArrayItem veya AddArrayItem() kullanılmasını gerektirir.

XMP meta verilerini değiştirme
    // 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 EPS Dosya Biçimi nedir

EPS (Encapsulated PostScript), tek sayfalık bir tasarımı tanımlayan PostScript tabanlı bir formattır. Vektör ve vektör‑raster birleşik grafikleri destekler. İçe aktarıldıktan sonra düzenlenemez; bu yüzden genellikle SVG veya PDF gibi düzenlenebilir bir formata dönüştürülür.