Incrementally appending custom XMP metadata

I have a problem writing custom XMP metadata into a PDF document (I'm using the XMP Toolkit SDK).
The problem is that I don't know whether is possible to expand the XMP packet in order to append metadata incrementally into the document, and, if it is possible, I don't know how to do it. The program I wrote succesfully appends an item to an array four times, but it fails when trying to append the fifth one. The reason obviously is that the packet gets full and there is not room for more metadata. The error message, if I force the PutXMP call, is:
ERROR: Can't fit into specified packet size
So, what can I do? How to enlarge the packet or make it expandable? Or, otherwise, have I to inject a new XMP packet with the up-to-date information in it? How?
And a last question: Have I to scan for packets when dealing with PDF files? No smart handlers are available for this kind of files?
Thanks in advance.
Xabier Artola.
Univ. of the Basque Country.

One of the known limitations of the XMPToolkit is that it is NOT smart about PDF documents - it treats them as "generic binary" and thus can not add beyond the pre-allocated whitespace already in the PDF.
If you are doing any serious operations of XMP with PDF - I recommend that you look at licensing the Adobe PDFLibrary which is a full functioning PDF library and incorporates the XMPToolkit inside it (among many other things).

Similar Messages

  • Incrementally appending  custom XMP metadata into PDF files

    I have a problem writing custom XMP metadata into a PDF document (I'm using the XMP Toolkit SDK).
    The problem is that I don't know whether is possible to expand the XMP packet in order to append metadata incrementally into the document, and, if it is possible, I don't know how to do it. The program I wrote succesfully appends an item to an array four times, but it fails when trying to append the fifth one. The reason obviously is that the packet gets full and there is not room for more metadata. The error message, if I force the PutXMP call, is:
    ERROR: Can't fit into specified packet size
    So, what can I do? How to enlarge the packet or make it expandable? Or, otherwise, have I to inject a new XMP packet with the up-to-date information in it? How?
    And a last question: Have I to scan for packets when dealing with PDF files? No smart handlers are available for this kind of files?
    Thanks in advance.
    Xabier Artola.
    Univ. of the Basque Country.

    Were you able to find a solution to this problem? I am having the same issue.
    Jason

  • [CS3 JS] Possible to Inspect Custom XMP Metadata With JavaScript?

    I am using custom XMP metadata in InCopy and InDesign docs in CS3 to hold custom metadata that can vary wildly. I know the full set of possible items but not what values will be in a particular document.
    Short of writing the XMP to a file and then processing that from my script, is there a way to inspect the custom properties from JavaScript. I didn't see a way to do it from the data model.
    Thanks,
    Eliot

    Here is another script to catch MetaData, some more than the basic:
    // metaDataOfLinks.jsx
    //DESCRIPTION: Catches MetaData of linked images and creates a report at the DeskTop.
    // Martin Fischer 10/2008
    var myLinkXmpArray = ["author", "copyrightInfoURL", "copyrightNotice", "copyrightStatus   ", "creationDate", "creator", "description", "documentTitle", "format", "jobName", "keywords", "modificationDate", "serverURL"];
    var myIPTCArray = ["CiAdrCity", "CiAdrCtry", "CiAdrExtadr", "CiAdrPcode", "CiAdrRegion", "CiEmailWork", "CiTelWork", "City", "CiUrlWork", "CopyrightNotice", "Country", "CountryCode", "Creator", "CreatorContactInfo", "CreatorJobtitle", "DateCreated", "Description", "DescriptionWriter", "Headline", "Instructions", "IntellectualGenre", "JobID", "Keywords", "Location", "Provider", "Province-State", "RightsUsageTerms", "Scene", "Source", "SubjectCode", "Title"];
    var myPSArray = ["photoshop:AuthorsPosition", "photoshop:CaptionWriter", "photoshop:Category", "photoshop:City", "photoshop:Country", "photoshop:Credit", "photoshop:DateCreated", "photoshop:Headline", "photoshop:Instructions", "photoshop:Source", "photoshop:State", "photoshop:SupplementalCategories", "photoshop:TransmissionReference", "photoshop:Urgency"];//var myPSArray = ["photoshop:AuthorsPosition", "CaptionWriter", "Category", "City", "Country", "Credit", "DateCreated", "Headline", "Instructions", "Source", "State", "SupplementalCategories", "TransmissionReference", "Urgency"];
    var myTiffArray = ["tiff:ImageWidth", "tiff:ImageLength", "tiff:BitsPerSample", "tiff:Compression", "tiff:PhotometricInterpretation", "tiff:Orientation", "tiff:SamplesPerPixel", "tiff:PlanarConfiguration", "tiff:YCbCrSubSampling", "tiff:YCbCrPositioning", "tiff:XResolution", "tiff:YResolution", "tiff:ResolutionUnit", "tiff:TransferFunction", "tiff:WhitePoint", "tiff:PrimaryChromaticities", "tiff:YCbCrCoefficients", "tiff:ReferenceBlackWhite", "tiff:DateTime", "tiff:ImageDescription", "tiff:MakeProperName", "tiff:Model", "tiff:Software", "tiff:Artist", "tiff:Copyright"];
    var myExifArray = ["exif:ExifVersion", "exif:FlashpixVersion", "exif:ColorSpace", "exif:ComponentsConfiguration", "exif:CompressedBitsPerPixel", "exif:PixelXDimension", "exif:PixelYDimension", "exif:UserComment", "exif:RelatedSoundFile", "exif:DateTimeOriginal", "exif:DateTimeDigitized", "exif:ExposureTime", "exif:FNumber", "exif:ExposureProgram", "exif:SpectralSensitivity", "exif:ISOSpeedRatings", "exif:OECF", "exif:ShutterSpeedValue", "exif:ApertureValue", "exif:BrightnessValue", "exif:ExposureBiasValue", "exif:MaxApertureValue", "exif:SubjectDistance", "exif:MeteringMode", "exif:LightSource", "exif:Flash", "exif:FocalLength", "exif:SubjectArea", "exif:FlashEnergy", "exif:SpatialFrequencyResponse", "exif:FocalPlaneXResolution", "exif:FocalPlaneYResolution", "exif:FocalPlaneResolutionUnit", "exif:SubjectLocation", "exif:ExposureIndex", "exif:SensingMethod", "exif:FileSource", "exif:SceneType", "exif:CFAPattern", "exif:CustomRendered", "exif:ExposureMode", "exif:WhiteBalance", "exif:DigitalZoomRatio", "exif:FocalLengthIn35mmFilm", "exif:SceneCaptureType", "exif:GainControl", "exif:Contrast", "exif:Saturation", "exif:Sharpness", "exif:DeviceSettingDescription", "exif:SubjectDistanceRange", "exif:ImageUniqueID", "exif:GPSVersionID", "exif:GPSLatitude", "exif:GPSLongitude", "exif:GPSAltitudeRef", "exif:GPSAltitude", "exif:GPSTimeStamp", "exif:DateTimeOriginal,", "exif:DateTimeDigitized.", "exif:GPSTimeStamp", "exif:GPSSatellites", "exif:GPSStatus", "exif:GPSMeasureMode", "exif:GPSDOP", "exif:GPSSpeedRef", "exif:GPSSpeed", "exif:GPSTrackRef", "exif:GPSTrack", "exif:GPSImgDirectionRef", "exif:GPSImgDirection", "exif:GPSMapDatum", "exif:GPSDestLatitude", "exif:GPSDestLongitude", "exif:GPSDestBearingRef", "exif:GPSDestBearing", "exif:GPSDestDistanceRef", "exif:GPSDestDistance", "exif:GPSProcessingMethod", "exif:GPSAreaInformation"];
    var myCameraRawArray = ["crs:AutoBrightness", "crs:AutoContrast", "crs:AutoExposure", "crs:AutoShadows", "crs:BlueHue", "crs:BlueSaturation", "crs:Brightness", "crs:CameraProfile", "crs:ChromaticAberrationB", "crs:ChromaticAberrationR", "crs:ColorNoiseReduction", "crs:Contrast", "crs:CropTop", "crs:CropLeft", "crs:CropBottom", "crs:CropRight", "crs:CropAngle", "crs:CropWidth", "crs:CropHeight", "crs:CropUnits", "crs:Exposure", "crs:GreenHue", "crs:GreenSaturation", "crs:HasCrop", "crs:HasSettings", "crs:LuminanceSmoothing", "crs:RawFileName", "crs:RedHue", "crs:RedSaturation", "crs:Saturation", "crs:Shadows", "crs:ShadowTint", "crs:Sharpness", "crs:Temperature", "crs:Tint", "crs:ToneCurve", "crs:ToneCurveName", "crs:Version", "crs:VignetteAmount", "crs:VignetteMidpoint", "crs:WhiteBalance"];
    var myInfo = new Array;
    var myDoc = app.activeDocument;
    var myLinks = app.documents[0].links;
    for ( i = 0; i < myLinks.length; i++)
       getMetaData ( myLinks[i] );
    writeData ( 'Metadaten zu ' + myDoc.name + '\r-----------\r\r' + myInfo.join ( '\r\r'), File ('~/Desktop/Metadaten_' + myDoc.name.replace(/.indd$/, '') + '.txt'));
    // ===============================================================
    //                                  Funktionen
    // ===============================================================
    function getMetaData ( aLink )
       var myLinkXmp = aLink.linkXmp.properties.toSource().replace( /^\(\{/,'' ).replace (/\)\}$/,'').replace( /parent.+$/,'').replace(/:/g, ':\t').split( ', ');
       var myString = aLink.name;
       myString += loopLinkXmp ( aLink, myLinkXmpArray );
       myString += loopArray ( aLink, "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/",  "Iptc4xmpCore:CreatorContactInfo/Iptc4xmpCore:",  myIPTCArray);
       myString += loopArray ( aLink, "http://ns.adobe.com/photoshop/1.0/",  "", myPSArray );
       myString += loopArray ( aLink, "http://ns.adobe.com/tiff/1.0/", "", myTiffArray );
       myString += loopArray ( aLink, "http://ns.adobe.com/exif/1.0/", "", myExifArray );
       myString += loopArray ( aLink, "http://ns.adobe.com/camera-raw-settings/1.0/",  "", myCameraRawArray );
       myInfo.push( myString.replace( /, $/,'') );
    function loopArray( aLink, s1, s2, anArray )
       var temp = '\r\t--- ' + s1 + ' ---\r\t';
       for ( var a = 0; a < anArray.length; a++)
          try {
             var theEvalString = 'aLink.linkXmp.getProperty(\"' + s1 + '\", \"' + s2 + anArray[a] + '\")';
             var myCode = eval( theEvalString );
             if ( myCode != '' )
                temp += '[' + anArray[a] + ']\t' +  myCode + '\r\t'; 
          } catch (e){ //temp +=e + '\r'
       return temp;
    function loopLinkXmp( aLink, anArray )
       var temp = '\r\t--- LinkMetadata ---\r\t';
       for ( var a = 0; a < anArray.length; a++)
          try {
             var theEvalString = 'aLink.linkXmp.' + anArray[a] ;
             var myCode = eval( theEvalString );
             if ( myCode != '' )
                temp += '[' + anArray[a] + ']\t' +  myCode + '\r\t'; 
          } catch (e){ //temp +=e + '\r'
       return temp;
    function writeData ( aData, theFile )
       theFile.open ( 'w', 'Text', 'R*ch' );
       theFile.encoding = 'UTF-8';
       theFile.write ( aData );
       theFile.close ();
    Ressources:
    Adobe XMP Developer Center: http://www.adobe.com/devnet/xmp/
    XMP Specification: http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf
    Martin Fischer

  • Exporting/Sharing Custom XMP metadata schema not possible?

    I've written a Python script which automatically encodes Quicktime files which I've mastered out of Premiere Pro CC with embedded custom XMP metadata (created using "New Schema" in the Metadata Display panel). I'm using the embedded custom metadata to drive the Python script (e.g. "Spot Title", "Client Name", fields etc etc), which encodes the source QT file to several different formats, based on the delivery specifications of various local TV broadcasters which the encoded files will go to.
    Everything about the XMP metadata entry/writing/parsing is fantastic. My only hitch is in the exporting/sharing of the custom metadata schema which I created for this purpose. I would like to roll the schema out to the other editors in our facility, so that they can also enter the XMP metadata on their own systems when they export out master timelines from Premiere.
    But unless I'm missing something, I can't figure out a way to "share" or export my custom schema for use on another system. Is this not possible in Premiere Pro CC?

    There's no feature for exporting and importing custom schemas, but it's entirely doable. Here are the path to the custom schemas
    MAC: Macintosh HD ▸ Users ▸ <username> ▸ Library ▸ Application Support ▸ Adobe ▸ XMP ▸ Custom File Info Panels ▸ 4.0 ▸ custom
    WIN: C:\Users\AppData\Roaming\Adobe\XMP\custom file info panels\4.0\panels [I can't vouch for this path as I'm on Mac at the moment and it's been ages since I poked around for custom schemas, but this should at least be the right neighborhood.]
    You might also be interested in sharing your custom metadata display profiles. They in Documents ▸ Adobe ▸ Premiere Pro ▸ 8.0 ▸ Profile-mapes ▸ Metadata Preferences.

  • Custom command for custom XMP metadata

    Hi
    I'm trying to create a custom command for setting and getting custom XMP metadata using InDesign CS3 SDK with Xcode.
    I think I got the step 1) to 3) ok. But not so sure about step 4).
    Please take a look and tell me if I have got anything wrong.
    1) Create 2 classes and 1 interface
    MyCustomMetadata
    MyCustomMetadataSetCmd
    IMyCustomMetadata
    2) Define class definitions in the resource file
    /** Boss class for kMyCustomMetadataBoss */
    Class
    kMyCustomMetadataBoss,
    kInvalidClass,
    IID_IMYCUSTOMMETADATA, kMyCustomMetadataImpl,
    /** Boss class for kMyCustomMetadataSetCmdBoss */
    Class
    kMyCustomMetadataSetCmdBoss,
    kInvalidClass,
    IID_ICOMMAND, kIQAdTicketMetaDataSetCmdImpl,
    IID_IMYCUSTOMMETADATA, kMyCustomMetadataImpl,
    3) Define functions for setting and getting values in MyCustomMetadata
    GetMyTitle()
    SetMyTitle()
    Within these functions, use IMetadataAccess interface to set/get values.
    4) Create Do() function in MyCustomMetadataSetCmd
    ??? I'm not sure what I'm supposed to do here ???
    Any help would be really appreciated.
    Thanks,
    JP

    m41miller42 wrote:
    I am attempting to create a custom RSS file (.mrss) that references XMP metadata from Premiere.
    I was basing the move on this statement. This was posted in the Adobe Connect forums.

  • CS5 - Live Caption with Custom XMP Metadata?

    (I USE CS5 on WINDOWS 7)
    I currently have a custom panel (witch custom namespace) up and running, and have many of my photos correctly tagged.
    For this example, I opened a new Indesign document, placed a previously tagged JPEG
    Then I right-click the image from the Links panel and select "XMP File Info..."
    I see the custom XMP namespace tab, along with all of the data I previously entered (so I know the image is correctly tagged)
    BUT, when I go to Caption Setup, I only see legacy IPTC options from the metadata dropdown
    Am I missing something here? 

    I'd be interested to know the same thing.  I have metadata stored in a custom XMP namespace, populated through a custom File Info panel.  But I don't see if it's possible to edit the 'Metadata' list in the Live Captions Setup to access these or if it's limited to the default set that I can see when I access the feature?

  • Defining Custom XMP Metadata Fields

    Is it possible (possibly through the export SDK?) to define a custom metadata field that Aperture can access?
    Specifically, Adobe allows Photoshop users to create custom metadata panels to define new XMP namespaces allowing new metadata standards to be entered. This information is saved with the image file, just like the IPTC XMP fields.
    However I am curious if there is any way Aperture can be customized to allow these custom fields to be read and set up as options in the metadata viewer.
    I'm currently involved with a NASA/ESA project to bring more complete metadata annotations to astronomy images, but so far Photoshop/Bridge seem to be the only packages with defined support for custom metadata. It would be fantastic if such fields could be accessed from Aperture too!
    PowerMac G5 2.3GHz   Mac OS X (10.4)  

    Hi Robert,
    Talk about timing! I just finished coding an export plugin for Aperture to do XMP metadata (beyond the built-in support that Aperture provides) that I'll be releasing as donation-ware in the next week and know all about this right now
    What you could do is add custom keys within Aperture, define your own XMP namespace, and then, in the plugin, map from your custom keys to the XMP namespace. If you want, drop me an email (joshanon at mac dot com), and I might be able to send you the source to my plugin as a starting point.
    Josh

  • Ideas about viewing/displaying XMP metadata from Reader ?

    Hi,
    We are using Acrobat 9 to add XMP metadata to PDF documents.
    These documents are viewed by the others employees with Acrobat Reader.
    Since "File->Properties->Advanced Metadata" and "Custom Info Panels" are not available in Reader, how can we display XMP metadata ?
    Do you know some ways or plug-ins to do this ?
    Our custom XMP metadata schema have more than 20 fields, so I don't want to put all these informations in the "Keywords" field of the document properties.
    Any idea would be greatly appreciated !
    Thank you !

    Michael... what you are describing above is not accurate.  The iPod Classic does NOT have the capability of using the "Album Artist" field from iTunes to sort music.  This particular metadata field is not even available to the iPod Classic.  Only the "Artist" field is available.  (It is the other way around with the iPod Touch, iPhone, and Ipad -- for these iOS devices, the "Album Artist" field is the one that is available, and not the "Artist" field.)  There are numerous posts here in the discussion forums from other folks who are frustrated by the same issue.  The iPod Classic can only sort and group songs together by "Artist" -- that is, the track artist.  And the track artist is often quite different from the album artist.  For example...  I have 29 different Barbra Streisand albums in iTunes.  For all of them, the album artist is "Barbra Streisand."  There are several different track artists however.  Most of them are just Barbra Streisand.  But she also does a duet or two on several albums.  So there are track artists like...  "Barbra Streisand with Kim Carnes," and "Barbra Streisand with Barry Gibb," and many more like that.  After syncing to my iPod Classic, when I sort on the iPod's "Artist" field, I get about 25 different iterations of "Barbra Streisand and .... " as the artist.  Yes, "Barbra Streisand" does appear among them.  But the only songs that are listed under "Barbra Streisand" are those that she sang by herself, and where she is the only track artist.  Given the setup of the iPod Classic as it is now, using firmware version 2.0.4, it is NOT possible to use the Album Artist field to sort and group songs together. 

  • Custom XMP panels don't show in Bridge CS4's Metadata palette

    I've got a CS4 custom XMP panel working (using the "Generic" panel in the SDK) but I can't get it to display in the metadata palette of Bridge CS4 (the thing normally bottom right in the default Bridge "essentials" view).
    In the old CS3 format, you could do this by adding an "fbname" attribute to fields of the custom panel. How do we now do this in the new SDK?
    The Bridge metadata palette is mentioned on page 25 of the SDK programmer's guide, but the example given is merely of Dublin Core keywords (i.e. dc:subject) so shows in the Bridge metadata palette by default already.

    Following on from this question, is it possible to build up a Metadata panel group of fields drawn from different namespaces? (by group I mean something like the IPTC Core label and arrow which expands into the IPTC fields).
    One would have a heading such as "My data", which when expanded shows x fields from one namespace #1 and y fields from namespace #2. I've tried to do this by leaving the namespace blank and hardcoding it and the prefix into the properties' name argument - eg http://ns.adobe.com/photoshop/1.0/photoshop:Urgency
    Hope this isn't a hijack!
    John

  • Custom RSS file from XMP metadata

    I am attempting to create a custom RSS file (.mrss) that references XMP metadata from Premiere.  The CDN that we use references that RSS file in order to publish all of our uploaded assets correctly, and if I could automate that process it would save me a lot of time.  Any ideas?

    m41miller42 wrote:
    I am attempting to create a custom RSS file (.mrss) that references XMP metadata from Premiere.
    I was basing the move on this statement. This was posted in the Adobe Connect forums.

  • Saving metadata from Lightroom erases custom XMP data in DNG...

    Hello,
       There seems to be an issue with the way Lightroom applies changes in from the LR catalog to the assets metadata.  The setup is LR 2.5 and there is an orginal set of images that have custom XMP data applied to them via Bridge.  There is one LR catalog that points to these images and the LR catalog ratings and labels match those that are in these images.  A second LR catalog copy (not export) was made where additional changes were made only to ratings and labels.  This catalog also points to the original assets.  When using the Save Metadata to files function in LR for this catalog (and selecting ALL files), LR erases all the original custom XMP data contained in the DNG images and writes only the ratings and label information.
        It doesn't seem that LR should be overwriting the entire XMP packet when only ratings and labels have changed and are saved back to the assets.  Is that the way this is designed or is this a malfunction?
    Thanks for any help on this!
    David

    I may have answered my own question as we have run into this issue before.  Lightroom is really not designed for any type of simultaneous workflow on the same files.  Most content management applications utilize the check-in/check-out mechanism to avoid having to perform any type of merging or implement a logical business rule to determine which content updates "win"  It is no different with Bridge and LR.  You work in one application at a time doing specific things to the same files and then read from each other when those actions are complete.  Working in this manner you never run into the merge issue or lose data from either side.
    Our simple answer to this question is adjust our workflow timing for things to accommodate this behavior.  The one thing that I will say is that LR does really need to provide some type of catalog history functionality that can be queried.  I believe that LR does interact with the catalog database in this manner when you use the Save functionality from the context menu and have not imagery selected.  It scans the database looking for any changes and then only updates those files it finds changes for.  If we could only see this type of functionality added in a way that would show us history for changes to the catalog at large and not have to dig into individual assets to look for these changes that would be great.
    We are going to look at a way to query the LR database itself to see if there isn't some time stamp information and file ID/filename data that can't be accessed as it would be invaluable to be able to look across large catalogs (well over 1000 images) and find the files that had been most recently updated (in updated I mean only simple updates to rating and label) and then separate these out to work with in their own group (collection).
    I could also look at this as yet another opportunity to refine a workflow that doesn't create changes to identical data each time changes are incurred.  I will look at that option much more closely as it is really the only thing we can easily control.
    Cheers!
    ~David

  • Access XMP Metadata outside of Acrobat

    Is it possible to access the PDF metadata without using the full version of Acrobat?

    An XML packet created with XMP tool kit, which conforms to XMP, can be added to the document level by attaching to the Catalog dictionary. It is also possible to add object level metadata to PDF component represented as a dictionary or stream. In either case, a reserved key Metadata associated with the dictionaries indirectly references the XMP metadata streams.<br /><br />However, in reality, writing XML packet into PDF without using Acrobat APIs, is complicated and requires a good understanding of PDF. The client must handle it cautiously:<br /> <br />·     construct an XMP conformant XML packet as the document metadata, which is in a writable XML Packet with enough padding provided for the in-place edits and expansion;<br />·     synchronize the information in the metadata stream with that in the document information dictionary;<br />·     write the XML packet to the right place in PDF; <br />·     interpret the multiple versions of XML packet correctly.<br /><br />As recommended in the XMP framework specification, applications should allocate 50% of the XML data size as padding, with a minimum of 4 KB. The purpose is to enable in-place edits and expansion of the embedded XML if the value of the end attribute is set as w in the packet trailer, <?xpacket end='w'?>.<br /><br />In addition, applications that create PDF 1.4 documents (such as Acrobat 5.0) should include the metadata for a document in the document information dictionary as well as in the documents metadata stream. Applications that support PDF 1.4 should check for the existence of a metadata stream and synchronize the information in it with that in the document information dictionary (see Implementation Note 104 on p. 804 of  PDF Reference: Third Edition, version 1.4).<br /><br />Moreover, in Acrobat 5.0 (PDF1.4), the document level metadata is constructed automatically from the document information dictionary. However, due to the incremental update mechanism of PDF, it is possible to end up with more than one copy of XML packet in PDF. Whenever the PDF is saved, a new copy of XMP metadata stream will be appended to the cross-reference section, although there may be only one or two properties are changed (i.e., ModDate and MetadataDate). <br /><br />The following PDF sample illustrates the complications. When the PDF was first created, the metadata stream is defined in the object 19 associating with the /Metadata key in the /Catalog dictionary. The value of <xap:MetadataDate> property is 2002-02-11T13:43:24-08:00. When the PDF was saved later, a new XMP metadata packet was appended to the cross-reference section, which associated with the updated entry (/Metadata 21 0 R) in the catalog dictionary. The value of <xap:MetadataDate> property is 2002-02-11T13:46:52-08:00.<br />   <br />%PDF-1.4<br /><br />7 0 obj<br /><< <br />/Type /Catalog <br />/Pages 3 0 R <br />/Metadata 19 0 R <br />/PageLabels 2 0 R <br />>> <br />endobj<br /><br />19 0 obj<br /><< /Type /Metadata /Subtype /XML /Length 1338 >> <br />stream<br /><br /><xap:MetadataDate>2002-02-11T13:43:24-08:00</xap:MetadataDate><br /><br />endstream<br />endobj<br /><br />startxref<br /><br />7 0 obj<br /><< <br />/Type /Catalog <br />/Pages 3 0 R <br />/Metadata 21 0 R <br />/PageLabels 2 0 R <br />>> <br />endobj<br /><br />21 0 obj<br /><< /Type /Metadata /Subtype /XML /Length 1338 >> <br />stream<br /><br /><xap:MetadataDate>2002-02-11T13:46:52-08:00</xap:MetadataDate><br /><br />endstream<br />endobj<br /><br />xref<br /><br />%%EOF<br /><br />Because of the above complications, Adobe can only support use of the PDF Library and Acrobat SDK plug-in for adding new XMP packets into PDF.

  • XMP metadata to manage ad copy ?

    I'm currently looking for a solution to manage ad copy and I'd like to explore the viable use of XMP metadata to do so.
    I've created custom XMP pallets I can edit through Bridge but what happens when my packaging is updated and my image is deleted and replaced by another? All of my XMP metadata is lost and I have to re-enter it?
    Is there any way to store all of my XMP in a separate file to allow me to replace the image without losing my XMP data?
    Any insight would be appreciated!
    Thanks

    The short term solution is to export an XMP "Template" (right arrow in upper right corner) from each of the current images with systematic file names (.xmp). Each is a standalone copy of the XMP packet. You probably need to edit this down to the significant metadata for your application, deleting the camera-specific and date-specific metadata. When an image is replaced, the corresponding Template can be imported and appended to the new file's XMP.
    If you are careful, you could edit metadata prior to template export via the Advanced panel, and then Cancel out of the File Info Window after the export, or not Save the changes to the image file.
    A longer term solution would be to save the metadata in an external database, referenced by an assigned Ad Copy ID field. The user would be required to enter the Ad Copy ID field into the replacement image, and then it would be used to populate the other fields from the database. This is feasible with Pound Hill's MetaGrove Plug-ins for CS3, and with File Info CS4 fully custom panels.
    Regards,
    Carl Rambert

  • XMP metadata is not accepting the copyright symbol

    While using the ModifyXMP method to append the metadata with some custom text data, it is found that, if the custom text data is having copyright symbol, metadata modification fails. Error can be caught as, 'Invalid UTF-8 sequence length'.
    How to have the copyright symbol added in the XMP metadata?

    Hi Patton,
       Could you try the following code to add dc:rights value (© adbe)
      char xmpStr[] = { 0xc2, 0xa9, 0x20, 'a', 'd', 'b', 'e', 0x00 };
       meta.SetProperty(kXMP_NS_DC, "rights", xmpStr, 0);
       And please modify the xmpStr[] for your own text.
    -Sunil

  • Editing XMP metadata in Bridge for checked-out files?

    Our custom connector does not implement the WRITE_XMP_METADATA Capability because we do not want to change the XMP of a file in our DAM system without checking in a new file version.
    However, when a file is checked out through Adobe Drive, we would expect to be able to edit its XMP metadata in Bridge just like we can for local files.
    It looks like this is still not possible with Adobe Drive 3, i.e. if your connector does not implement the WRITE_XMP_METADATA Capability you cannot edit XMP for checked out files either.
    It seems weird that you can edit XMP metadata for checked out files with regular CS applications but not with Bridge. Is this something that is expected to be fixed in a future version?
    Thanks

    In our design, editing XMP data in Bridge and in regular CS applications is different, the former one will be routed to SetXMPHandler in you connector, in the latter case, CS applications take the normal file writting ways to embed XMP data in the file content.
    The purpose of this design is to offer similar user experience for normal users when they edit XMP data for AD assets and local file assets, they don't need to check-out files first.
    To address your issue, I think you can add some codes in SetXMPHandler to auto check-out files before real XMP operation, and check-in them before exiting the handler
    We will consider to make some enhancements for this part, that's, to allow editng XMP data for the checked-out files in Br, in the next release, thanks for this advice.

Maybe you are looking for

  • CRM Activity Replication to SAP R/3

    Hi, We have extended CRM Activity and have added the 'Customer Screen' tab. The data gets populated through the PPF BADI. We have a scenario for which we need to replicate this 'Additional Data' along with some standard information from CRM Activity

  • Need help with Bulk Collect ForAll Update

    Hi - I'm trying to do a Bulk Collect/ForAll Update but am having issues. My declarations look like this:      CURSOR cur_hhlds_for_update is         SELECT hsh.household_id, hsh.special_handling_type_id           FROM compas.household_special_handlin

  • How to solve tproblem "Your session has expired" temporary.

    I think developers always feel frustrated about a issue when Uploading app & Downloading data and meeting a problem of message: "Your session has expired. Please click Login to log back into iTunes Connect." I suggest you have to email to Apple via "

  • ABAP Table Type in RFC Callable Object in GP

    Hi Experts, I have created a RFC in ABAP that has as one of its export parameters a table type. I am trying to call this RFC in my GP process. So I created the external service callable object as required. However, when I look at the output parameter

  • Comparing two PDF documents | Acrobat Tips and Tricks | Adobe TV

    This video will get you started with using the improved Compare Documents command in Acrobat 9 to identify what has changed between two versions of a PDF file. http://adobe.ly/xqvrc7