Alfresco XMP Metadata Extractor

Hi all,
First of all I want to apologize if I do stupid questions, as I am new to Adobe world....
I'm an Alfresco Consultant and want to extract the uploaded Adobe file's XMP metadata. As Alfresco is a Java product I need to do it in Java, so I was wondering if there's any Maven repository I can point to to use Adobe libraries (is there any Java library for XMP metadata extraction?)
Thanks in advance.

It looks like the XMP toolkit supports Java.
Overview of the XMP Toolkit: (Link to tool kit located inside of document.
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMP-Toolkit- SDK-Overview.pdf
I'm sure you've already been through that just thought I'd direct you there JIC.
Take care and good luck finding your solution,
Kurtis

Similar Messages

  • How can I get Adobe Bridge to show XMP metadata using Adobe Drive 4 CMIS Connector?

    I have successfully connected to an Alfresco Enterprise Edition 4.1.0 repository, using the Adobe Drive 4, created a test folder and uploaded a jpeg file containing XMP metadata into it.
    When I view the image's metadata (using Adobe Bridge), I observe that only part the standard file properties are displayed.
    When I view a local copy of the image using the same, I see all fields of the standard file properties plus available metadata.
    My question: what should I do in Adobe Bridge to be able to see all available XMP metadata?
    Kind Regards and Appreciation
    Don Greenwood
    Pixelboxx GmbH
    Dortmund

    How did you get through to customer service?  They've changed the website and I can't even find phone numbers or a chat button any more.
    Here's my story that I posted on discussion yesterday, but no one has replied:
    I am screaming and pulling my hair out right now!  The last six months with Adobe has been a nightmare.
    Once again I am completely locked out of Creative Cloud and cannot use the apps even though my automatic monthly deduction for payment was just made a couple of days ago.  Creative Cloud continues to reset itself to the trial version which runs out in 30 days and after that I am locked out once again.
    Now it looks like it is harder to access support than before.  Where are chat and the phone numbers now?  This was a nightmare with countless hours spent on chat and the phone over the last six months, and now I don't even know how to access support in order to spend even more time that does not solve the problem.  What am I to do?
    I cannot use the product I have paid for!
    Please help!

  • XMP metadata from Flashbuilder why not visible in Adobe Bridge?

    Hi there,
    I'm currently wondering around XMP metadata and swf files.
    A: Flash CS5: works
    When I use the XMP panel in Flash CS5 and export a swf, open Adobe Bridge CS5 and select the file, the XMP data are correctly displayed.
    B: Flash Builder(Flex 4.1): don't work
    When I use Flashbuilder and add my metadata to the compilation, then compile, open Adobe Bridge CS5 and select the file, nothing is included in metadata.
    Procedure based on the following (same problem if metadata are directly set through compiler arguments):
    http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.html
    ../src/config/ProductMetaData.xml
    <flex-config>
    <metadata>
        <title>My title</title>
        <description>My description</description>
        <publisher>The publisher</publisher>
        <creator>The creator</creator>
        <language>EN</language>
    </metadata>
    </flex-config>
    compiler argument
    -load-config+=config/ProductMetaData.xml
    As far as understood, on the background the following is added to the swf at compile time:
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
        <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1'>
            <dc:format>application/x-shockwave-flash</dc:format>
            <dc:title>My title</dc:title>
            <dc:description>
                <rdf:Alt>
                    <rdf:li xml:lang='x-default'>My description</rdf:li>
                </rdf:Alt>
            </dc:description>
            <dc:publisher>The publisher</dc:publisher>
            <dc:creator>The creator</dc:creator>
            <dc:language>EN</dc:language>
        </rdf:Description>
    </rdf:RDF>
    I've checked that the medata is correctly added to the swf file using this small software polarswf:
    http://download.cnet.com/Polar-SWF-MetaData/3000-6676_4-10738623.html
    I do not know if it is safe to use it in a produciton context at least in trial mode it allows to check the metadata included in your swf.
    I wonder if this metadata coonot be read by Adobe Bridge because they are at a "lower level" than those put by flash CS5 XMP panel?
    Thank you in advance for your help.
    This is not a blocking situation, but I'm curious to understand what happend.
    Cedric Madelaine (aka maddec)

    I was following this post for a LONG time, since I noticed the same problem.
    This week I was getting in it into myself again and I noticed you use load-config. I used these compiler options :
    contributor name
    Sets metadata in the resulting SWF file. For more information, see Adding metadata to SWF files.
    creator name
    Sets metadata in the resulting SWF file. For more information, see Adding metadata to SWF files.
    date text
    Sets metadata in the resulting SWF file. For more information, see Adding metadata to SWF files.
    But that resulted in this XML string where the dc namespace was missing a / on the end of the URI
    That caused the metadata which was added in flashbuilder was only visible in bridge in the rawXML panel, and not the specific fields
    changing the URI in http://purl.org/dc/elements/1.1/ did the trick ( did this in bridge by exporting the rawXML, changed the / , and imported it )
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
        <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1'>
            <dc:format>application/x-shockwave-flash</dc:format>
        </rdf:Description>
    </rdf:RDF>
    Sadly there was no way I could add this / myself everytime.
    BUT then I discoverd this option :
    raw-metadata XML_string
    Defines the metadata for the resulting SWF file. The value of this option overrides any metadata.* compiler options (such as contributor,creator, date, and description).
    This is an advanced option.
    And you could give the exact RAW XML as you  described
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
        <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1/'>
            <dc:format>application/x-shockwave-flash</dc:format>
            <dc:title>My title</dc:title>
            <dc:description>
                <rdf:Alt>
                    <rdf:li xml:lang='x-default'>My description</rdf:li>
                </rdf:Alt>
            </dc:description>
            <dc:publisher>The publisher</dc:publisher>
            <dc:creator>The creator</dc:creator>
            <dc:language>EN</dc:language>
        </rdf:Description>
    </rdf:RDF>
    to the compiler. This could also be done in Flash with JSFL.
    In the end I wrote an ANT script which injects the exact XMLstring of metadata to Flash and Flex projects by using the raw-metadata parameter in FLEX and JSFL for flash.
    Hope this helps

  • How to get XMP MetaData as an XML String in a process?

    Hi there,
    I have a process where I would like to export a documents XMP MetaData, manipulate the XMP MetaData and then import the MetaData again to the document.
    I thougt first I will use the service Name "XMPUtilityService" with the Service Operation "Export XMP" to export the XMP MetaData as a document.
    Hoewer I am not sure how to manipulate the output document from the Export XMP service.
    When I print out the document.toString() in a execute Script Service I get the following:
    <document state="active" senderVersion="0" persistent="false" senderPersistent="false" passivated="false" senderPassivated="false" deserialized="false" senderHostId="null" callbackId="0" senderCallbackId="0" callbackRef="null" isLocalizable="true" isTransactionBound="false" defaultDisposalTimeout="600" disposalTimeout="600" maxInlineSize="65536" defaultMaxInlineSize="65536" inlineSize="3440" contentType="null" length="-1"><cacheId/><localBackendId/><globalBackendId/><senderLocalBackendId/><senderGl obalBackendId/><inline><?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="A...</inline><senderPullServantJndiName/><attributes/></document>
    Actually I expected something like this:
    <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-jc006 DEBUG-1.0, 2009 Jun 23 11:07:21-PDT">
       <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <rdf:Description rdf:about=""
                xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
             <pdf:Producer>Adobe LiveCycle PDF Generator ES2</pdf:Producer>
          </rdf:Description>
          <rdf:Description rdf:about=""
                xmlns:xmp="http://ns.adobe.com/xap/1.0/">
             <xmp:ModifyDate>2010-04-20T20:43:59+02:00</xmp:ModifyDate>
             <xmp:MetadataDate>2010-04-20T20:43:59+02:00</xmp:MetadataDate>
          </rdf:Description>
          <rdf:Description rdf:about=""
                xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
             <xmpMM:DocumentID>uuid:0cf2c6c6-2fba-2b39-5fb6-33ad8ccf58aa</xmpMM:DocumentID>
             <xmpMM:InstanceID>uuid:187bc5a2-acb0-2fa9-711d-33ad8ccf58aa</xmpMM:InstanceID>
          </rdf:Description>
       </rdf:RDF>
    </x:xmpmeta>
    <?xpacket end="w"?>
    What do I need to do to get the XMPMeta data as an XML String from a document within a process?
    Thanks in advance!
    Paul

    Hi,
    thanks for the answer.
    I know that I can retrieve the XMPUtilityMetadata object, but this object provides only access to a few information suche as creator, subject, producer, etc.
    However I would like to retrieve the whole XML String of the XMP Metadata.
    How is this possible?
    Thanks.
    Paul

  • Viewing XMP Metadata in Adobe Bridge via Adobe Drive Connector

    Hi there,
    I've been trying to view remote file XMP metadata in Adobe bridge via our adobe drive connector. I've added the READ_XMP_METADATA capablitiy, and I've seen the DataType.XMP has been requested. but I'm not sure how to display the metadata on the Adobe bridge metadata panel. since the metadata is embeded in the file, when i browse the file in local drive, the metadata shows fine, but when it's on our remote server, some how bridge doesn't extract the info and display it. I can see the metadata when I browse the remote file in windows explorer adobe drive. and we do download the file to local to a temp copy, browse the temp copy in bridge also showing the metadata, The only thing not working is browsing the remote file in bridge via adobe drive connector.
    Please advise what should be done, in the programmer's guide, it says for each item, request that the server return the XMP data for that asset. How should I do that? If the XMP is embeded in the file, why would I need to request for it, would it be automatically extracted from the file?
    Thanks,
    Katherine

    Hi there,
    I've been trying to view remote file XMP metadata in Adobe bridge via our adobe drive connector. I've added the READ_XMP_METADATA capablitiy, and I've seen the DataType.XMP has been requested. but I'm not sure how to display the metadata on the Adobe bridge metadata panel. since the metadata is embeded in the file, when i browse the file in local drive, the metadata shows fine, but when it's on our remote server, some how bridge doesn't extract the info and display it. I can see the metadata when I browse the remote file in windows explorer adobe drive. and we do download the file to local to a temp copy, browse the temp copy in bridge also showing the metadata, The only thing not working is browsing the remote file in bridge via adobe drive connector.
    Please advise what should be done, in the programmer's guide, it says for each item, request that the server return the XMP data for that asset. How should I do that? If the XMP is embeded in the file, why would I need to request for it, would it be automatically extracted from the file?
    Thanks,
    Katherine

  • XMP metadata from Premiere Pro

    I have installed on Mac OS X:
    Extension Builder 3 in Eclipse
    Adobe Premiere Pro CC
    Adobe ExtendScript Toolkit CC
    Working on basic example extension project I want to exchange XMP metadata to/from Adobe Premiere using ExtendScript.
    I added line to load XMP library in .jsx file, but it doesn't work:
    ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
    I also tried to extract AdobeXMPScript.framework file from Adobe Bridge installation package contents, and load it by ExternalObject, but again with no result. It seems environment doesn't know what ExternalObject is.
    Is it possible to work with XMP data in extension? If yes, what I need to add/install to make it work?

    The XMP data returned by projectItem.getXMPMetadata() contains all marker info for that project item. To confirm this, add some markers containing unique text strings to a clip in Prelude, import it into PPro, then getXMPMetadata() on it; you'll find your text strings in the returned XMP data.
    You will need to parse the XMP on your own (or using an XML parser of your choosing), to extract that project item's marker data.
    We have a feature request for "XMPScript support in PPro's ExtendScript engine"; I'll add your name to the list.
    Feel free to contact me directly regarding any PPro integration development;
    bbb at adobe dot com

  • 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.

  • XMP Metadata Error when creating PDF/A-1b

    Hello,
    I just started using Adobe Acrobat X for Mac to create PDF/A-1b documents from scanned TIFs.  I created a script in the Action Wizard to 1) Combine Files into a Single PDF; 2)Downsample image resolution to 150 ppi (bitmaps to 300 ppi); 3) Recognize Text;4) Pause to find all suspects and make corrections to incorrect OCR; 5) Convertto PDF/A-1b (sRGB); and 6) Verify compliance with PDF/A-1b.
    When I use the Action Wizard to to execute the script above I receive an error message stating "Metadata does not conform to XMP."  However, when I execute each of the actions manually I do not receive the XMP metadata error.  It takes a long time to execute each action manually, so I am hoping there is some way to make this full script work in the Action Wizard.
    I have an open case with Adobe regarding this issue, but so far no solutions.

    I do not receive an error when the "Verify compliance with PDF/A-1b" action is removed from the script.  Does this action have to be performed separately to avoid the XMP metadata error?

  • Adobe xmp metadata searchable on osx 10.5 server?

    i'm not sure if this is the right category for this. we have 5 mac pro's that are connected to a NAS via Xserver running Mac OS X 10.5.x server. we've started using the xmp funtionality in adobe photoshop. on the 5 local clients, searching via spotlight, we can find files using the info typed in the xmp metadata portion of photoshop. however, when we store that same file on our NAS, searching the nas via the finder search box doesn't recognize the xmp metadata (i'm told we can't use spotlight because it only works on the local machine...even if that's not true, i tried it and it doesn't find the files). all of the local macs are on the same os version (the latest one) and spotlight indexing is enabled on the Xserve. is there a way for the xmp metadata to be searchable when searching the NAS from the local clients?
    thanks

    Just to let you all know... I came across this now, and will try it out tonight and confirm if it works or not
    <key>interface</key>
    <string>en0</string>
    Using the "interface" keyword instead of "aliasIP"
    Hope this works out =D

  • Problem with Bridge CS4 reading/editing XMP metadata added in Bridge CS6

    Please excuse me if this is a dumb/obvious question. I did try searching the forums for similar problems and didn't find anything that seemed to speak to my issue.
    I'm having a problem where Bridge CS4 won't read/edit xmp metadata (specifically, keywords and descriptions in the IPTC panel) that I have entered using CS6. it will read some files, not others. The files are all .mp4s. Of these files, I can read/edit IPTC panel metadata for some of them in Bridge CS4; I can add metadata for all of them in CS6. I see no particular pattern in these files to explain what is and isn't read/editable in CS4.
    My question is whether this is a compatibility issue between different versions of CS (in this instance, CS4 and CS6). i know it's a tired refrain to blame software when it could easily be user error, in which case I'd be frankly delighted to know what i'm doing wrong. Please bear with me as I give a few more details.
    I'm using macs. I've tried this on multiple systems - for instance, on a mac pro 3 which for some reason has both CS4 and CS6 installed, i can add and edit keywords using CS6, but not when using CS4. Again, in CS4, some .mp4 files read/edit, others do not.
    Bridge CS4 blames the files and tells me that the selected file cannot store xmp metadata, and that the properties cannot be modified. To be specific, in the metadata panel it says "this property cannot be modified"; in the keyword panel, it says, "This file (zzz.mp4) cannot store xmp metadata. No changes will occur." This seems odd, because I'm able to add xmp metadata for the same files in CS6 on the same computer, and other computers. I know this problem would disappear if all our computers were using CS6 (or CC), but unfortunately that's not a possibility at the moment. Some of them only have CS4.
    Computer details (not an exhaustive list, but two instances): mac pro 3.1 running snow leopard, 16GB memory; macbook pro 4.1 running snow leopard, 4GB memory; adobe bridge cs6 (5.0.0.399) and cs4 (3.0.0.464).
    Things I have tried:
    Permissions - the files are set to read/write for everyone. Given that I can add/edit metadata in CS6, it doesn't seem to be a permission issue.
    Purging the cache - other users seem to have had problems adding metadata in Bridge CS4 where purging the cache for affected files solved the problem. Didn't work in this instance.
    Upgrading all affected computers to CS6/CC is beyond my control. I need to figure out why CS4 won't let me read/add/edit xmp metadata, if only for the sake of understanding the broader implications for interoperability.
    Any helpful suggestions would be much appreciated.
    Thanks,
    Kevin

    adobe bridge cs6 (5.0.0.399) and cs4 (3.0.0.464).
    Without having experience with mp4 files and metadata my observation is that you certainly have not updated Bridge CS6 ( should be 5.0.2.4) and I believe also not the latest version of CS4, can't imaging this also stayed at .0.0 so first try to update both.
    And if CS4 can read the data of some files it should be capable of reading them all. Be sure to have the files completely cached first, can take a while.
    Other things to try in CS4 is refresh preferences (hold down option key while restarting Bridge and choose reset prefs).
    And also check for hidden cache files using menu view/show hidden files. Sometimes those cache files can be troublesome between versions.
    If purge cache did not work and reset prefs also failed consider to also delete Bridge plist file and Bridge cache file manual (from user library)

  • [CS3 JS] How to force XMP metadata update for a thumbnail?

    Hi Folks,
    In a JavaScript in Bridge CS3, I'm updating a value in the XMP metadata for a Thumbnail. Later in the script I want to read the updated XMP metadata information from the Thumbnail, but often Bridge hasn't updated the metadata by the time I read it. In other words, my script reads the value prior to the update. I'm guessing there's a caching issue going on.
    I'm new to Bridge scripting, and I am hoping someone here can offer suggestions on how I can (or, even *if* I can) force Bridge to update the XMP metadata cache for a file so that when I read it later in the script it will reflect the recent changes. I've tried using Thumbnail.refresh(), but that doesn't seem to do the trick. I don't mind a slower script, I just want to be able to read the correct value.
    Thanks in advance for any help!
    -- Jim

    Hi David,
    I'm running this script on a MacBook Pro, 2.5GHz, 4GB RAM.
    Here is a sample JSX that shows the issue I'm having:
    #target "bridge-2.0"
    main();
    function main() {
        if( xmpLib == undefined ) {
            var pathToLib = Folder.startup.fsName + "/AdobeXMPScript.framework";
            var libfile = new File( pathToLib );
            var xmpLib = new ExternalObject("lib:" + pathToLib );
        var myValue = "Headline Test";
        var myFilePath = "~/Desktop/TestFile.tif";
        var curHeadlineStr = XMPGetHeadline(myFilePath);
        $.writeln("Headline value: \"" +  curHeadlineStr + "\"");
        XMPWriteHeadline(myFilePath, myValue);
        // *** I would like to refresh the cache here ***
        curHeadlineStr = XMPGetHeadline(myFilePath);
        $.writeln("Headline value: \"" +  curHeadlineStr + "\"");
    function XMPGetHeadline(theFilePath) {
        var thumb = new Thumbnail(File (theFilePath) );
        md = thumb.synchronousMetadata;   
        xmp = new XMPMeta(md.serialize());
        var myHeadlineXMPProp = xmp.getProperty
            (XMPConst.NS_PHOTOSHOP, "Headline", XMPConst.STRING);
        return myHeadlineXMPProp;
    function XMPWriteHeadline(theFilePath, theTextStr){
        var thumb = new Thumbnail(File (theFilePath) );
        md = thumb.synchronousMetadata;   
        xmp = new XMPMeta(md.serialize());
        var myOrigHeadlineXMPProp = xmp.getProperty
            (XMPConst.NS_PHOTOSHOP, "Headline", XMPConst.STRING);
        xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "Headline");
        xmp.setProperty(XMPConst.NS_PHOTOSHOP, "Headline", theTextStr, 0, XMPConst.STRING);
        var updatedPacket = xmp.serialize
            (XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER | XMPConst.SERIALIZE_USE_COMPACT_FORMAT);
        thumb.metadata = new Metadata(updatedPacket);
    To run this script, in main(), set the myFilePath variable to the path of a file that has an "IPTC Code" "Headline" property.
    This script, when run, sets the "Headline" property value to the value of myValue. After runing the script for the first time, take a look at the console log. You should see that Headline value displayed does not change between the two console entries. My log looks like this after the first run:
      Headline value: "undefined"
      Headline value: "undefined"
    The thing is, the second entry in the console listing, above, was created after the Headline value was set by XMPWriteHeadline(). The two values should be different between the two console entries.
    If you run the script a second time against the same file, you will see that the Headline value does contain the value that was written in the first run of the script--it just took some time to update the cache, I'm guessing. Here's the second run's log:
      Headline value: "Headline Test"
       Headline value: "Headline Test"
    So, what I'm looking for is a way to insert code (where the comment line "//*** I would like to refresh the cache here ***" appears), to force Bridge CS3 to refresh its cache so that when I call XMPGetHeadline() after calling XMPWriteHeadline(), the Headline value will return the value that was just written.
    I hope this is clear enough...
    Thanks!!!!
    -- Jim

  • How do I view XMP metadata in Adobe Reader?

    How do I view XMP metadata in Adobe Reader?
    I've created a PDF which (I believe) includes XMP metadata, and I'd obviously like to check that it's been done correctly.  However it's not obvious how to view this within Adobe Reader (I'm using 11.0.04 on OS X).  Googling around, I've found an off-hand remark that Reader isn't able to do this, but this is obviously insane -- what's the point of licensing metadata if no-one can see it?  What is it I'm missing?
    Best wishes,
    Norman

    I've put a PDF at http://nxg.me.uk/temp/part1.pdf This does display/print perfectly OK in both Reader and in OS X Preview.  I presume that the /Root object (254) is inside one of the ObjStm streams (yes?), as (presumably) are the /Page streams and the reference to the /Metadata object, 52.
    Regarding scanning, Part 3 of the XMP spec, Sect 1.2 says "It is always best to use format-aware file parsing when possible. Lacking this information, applications can find XMP packets by scanning the file."  Also, in Sect. 1.2.1, "A file should be scanned byte-by-byte until a valid header is found."   Finally, ISO-32000-1 Sect. 14.3.2, Note 3, says "[The XMP spec] includes a method to embed XML data within non-XML data files in a platform-independent format that can be easily located and accessed by simple scanning rather than requiring the document file to be parsed."  So it would appear that this metadata packet _should_ be found.

  • Context right-click to export XMP metadata to file

    I'd like to have the right click context menu include the option to "Export XMP Metadata to Files" in the Library grid or filmstrip. Currently an annoying trip to the Menu bar is required to invoke this function.

    It was there for B4.1. The Contextual Menus are getting crowded, so maybe that's why they took it out.
    I like lots of Contexual Menus,too. But they get a little useless if too crowded, so maybe they need ot be user configuarable for what one uses the most.
    Maybe by V1.5?
    Don
    Don Ricklin, MacBook 1.83Ghz Duo 2 Core running 10.4.8 & Win XP, Pentax *ist D
    http://donricklin.blogspot.com/

  • [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

  • Can I automate the writing of XMP metadata into JPEG and TIFF files?

    I have written an ASP.NET 3.5 website application on behalf of an annual international photographic competition. Entrants will be uploading digital photos in either JPEG or TIFF format. Ideally, I would write entrant identity and image title information into the XMP metadata for each image immediately after upload - but so far, I have failed to find any way to do this in ASP.NET.
    Thousands of images are involved, so I need to find a way to automate the metadata insertion, perhaps with some sort of script that uses a text file (extracted from the SQL Server database on my website) as the source of the metadata for a batch of images. Is this the sort of task that can be done by writing a script for Bridge CS3? Are there any scripts already in existence that I could use? I am a total beginner in this area.
    I use a Win XP PC, though I have a colleague who, I think, has CS3 on his Mac (running under the Leopard OS), so scripts for either platform might be usable.
    David

    You are the man X!
    Ok here is another version with a check for the dll.
    #target bridge 
       if( BridgeTalk.appName == "bridge" ) {
    addInfo = new MenuElement("command", "Update Entry Details", "at the end of Thumbnail");
    addInfo .onSelect = function () {
         main();
    function main(){
    var csv = File.openDialog("Please select CSV file.","CSV File:*.csv");
    if(csv != null){
    loadXMPScript();
    csv.open("r");
    while(!csv.eof){ 
       strInputLine = csv.readln();
       if (strInputLine.length > 3) {
          strInputLine = strInputLine.replace(/\\/g,'/');
       inputArray  = strInputLine.split(",");
       var csvFile = new File(inputArray[0]);
       var title = inputArray[1];
       var author = inputArray[2];
    if(!csvFile.exists) {
    alert(csvFile + " Does not exist"); //////////Check if file exists
    return;
    if(csvFile.exists){
    var file = new Thumbnail(csvFile);
    try{
    var xmpFile = new XMPFile(file.path, XMPConst.UNKNOWN,XMPConst.OPEN_FOR_UPDATE);
    }catch(e){
          alert("Problem opening xmp for update:-\r" + file.path +"\r" +e.message);
          return;
    try{
    var xmp = xmpFile.getXMP();
    }catch(e){
          alert("Problem opening xmp data:-\r"  + e.message);
          return;
    xmp.deleteProperty(XMPConst.NS_DC, "creator");
    xmp.deleteProperty(XMPConst.NS_DC, "title");
    try{
    xmp.appendArrayItem(XMPConst.NS_DC, "creator", author, 0,XMPConst.ARRAY_IS_ORDERED);
    xmp.appendArrayItem(XMPConst.NS_DC, "title", title, 0,XMPConst.ARRAY_IS_ORDERED);
    }catch(e){
          alert("Problem writing xmp data:-\r"  + e.message);
          return;
    if (xmpFile.canPutXMP(xmp)) {
    xmpFile.putXMP(xmp);
    }else{
    alert("Can not write new metadata to " + csvFile.spec); 
    xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
    unloadXMPScript();
    function loadXMPScript()
       var results = new XMPLibMsg("XMPScript Library already loaded", 0, false);
       if (!ExternalObject.AdobeXMPScript)
          try
             ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');    
             results.message = "XMPScript Library loaded";
          catch (e)
             alert("Could not load AdobeXMPScript \r" + e.message);
             results.message = "ERROR Loading AdobeXMPScript: " + e;
             results.line = e.line;
             results.error = true;
       return results;
    function unloadXMPScript()
       var results = new XMPLibMsg("XMPScript Library not loaded", 0, false);
       if( ExternalObject.AdobeXMPScript )
          try
             ExternalObject.AdobeXMPScript.unload();
             ExternalObject.AdobeXMPScript = undefined;
             results.message = "XMPScript Library successfully unloaded";
          catch (e)
             results.message = "ERROR unloading AdobeXMPScript: " + e;
             results.line = e.line;
             results.error = true;
       return results;
    function XMPLibMsg (inMessage, inLine, inError)
       this.message = inMessage;
       this.line = inLine;
       this.error = inError;

Maybe you are looking for

  • How can I convert output data (string?) from GPIB-read to an 1D array?

    Hello all, I am reading a displayed waveform from my Tektronix Oscilloscope (TDS3032) via the GPIB Read VI. The format of the waveform data is: positive integer data-point representation with the most significant byte transferred first (2 bytes per d

  • CRMXIF_ORDER_SAVE_M - Lead_Start Date not being populate.

    Hi Gurus, I am migrating Lead Data in SAP CRM using CRMXIF_ORDER_SAVE_M / CRMXIF_ORDER_SAVE_U03 IDOC structure. The problem is that the Lead Start and End dates are not being passed to the database. I am populating the data at Header Level using the

  • Change the font typeface of text object in form Master Page

    Dear all,         I am creating a Adobe Livecycle form with multi-language support. Simply, there is a header title that is a text object in master page. I want that it can be converted to simplified Chinese from English and change its font typeface

  • Ess error & unable to create new user

    hi gurus... i new to portal and i m facing problem in ess and user creation ... 1 .)   my ess is showing the following error Service cannot be reached What has happened? URL http://wind:8000/webdynpro/dispatcher/sap.com/pcui_gp~xssutils/XssMenu call

  • Style for options in combobox

    Is there a way to alter the style for a specific option in a combobox? I have been unable to find a list of the recognized keys (other than "label" and "data" ) for the dataProvider array. My goal is to have some options in the combobox have light re