• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Bridge script to write filename to Description, Credit Line, andTitle lines

New Here ,
Jun 06, 2019 Jun 06, 2019

Copy link to clipboard

Copied

Hello! I'm in search of a Bridge script that will write a filename (without file extension) to the description line, title line, and Credit line (without overwriting!) in my IPTC metadata. I've looked around and haven't found something already written that does this and I don't quite have enough skills to write it myself or adapt something that exists already. Any leads or suggestions? Thanks!!

Views

5.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 4 Correct answers

Community Expert , Jun 06, 2019 Jun 06, 2019

I don't have one script that does all three... But I do have three separate scripts. I could possibly combine them with time/effort, but no promises as I'm new to scripting.

I did manage to hack an existing script to add the Filename to the Headline into the Credit:

// Bridge script to write filename to Description, Credit Line, andTitle lines

// https://forums.adobe.com/thread/656144 

// https://forums.adobe.com/message/9744916 

// https://forums.adobe.com/message/9745231 

#target bridge 

addName

...

Votes

Translate

Translate
Community Expert , Jun 06, 2019 Jun 06, 2019

An equivalent ExifTool command line could be:

exiftool '-IPTC:ObjectName<${filename;s/\.[^.]*$//}' '-IPTC:Credit<${filename;s/\.[^.]*$//}' '-IPTC:Caption-Abstract<${filename;s/\.[^.]*$//}' '-IFD0:ImageDescription<${filename;s/\.[^.]*$//}' '-XMP-dc:Title<${filename;s/\.[^.]*$//}' '-XMP-dc:Description<${filename;s/\.[^.]*$//}' '-XMP-photoshop:Credit<${filename;s/\.[^.]*$//}' -r 'pathTOfileORfolder'

Votes

Translate

Translate
Community Expert , Jun 12, 2020 Jun 12, 2020

 

I posted the following code earlier in the topic thread, which adds the file name to the description field, removing the filename extension...

 

EDIT 11th April 2023: Code updated and tested with Bridge 2022 –

 

// https://forums.adobe.com/message/10061534#10061534
// https://forums.adobe.com/message/3595421#3595421
#target bridge
   if( BridgeTalk.appName == "bridge" ) {
fileToDesc = MenuElement.create("command", "TEST - Add FileName to Description", "at the end of Tools");
}
fileToDesc.onSel
...

Votes

Translate

Translate
Community Expert , Jun 12, 2020 Jun 12, 2020

Using ExifTool, the command line code to copy the filename to the description metadata tag without extension would be:

 

 

exiftool '-description<${filename;s/\.[^\.]+$//}' -r 'path to file or folder here'

 

 

This command line code example is from the Mac, on Windows simply change the single straight quote/foot mark ' to straight double quote/inch marks " with the correct platform-specific path to the file or top-level folder. It uses a recursive argument to process all files in all folders und

...

Votes

Translate

Translate
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Stephen, thank you very much.

 

here are some example file names in use:

NEWB 1946 James Hunter-Smith 6MK3 2020 11K64976EC012 16K84.jpg

BERW 0763 Thomas Greig 1S6 2019 16E18433H6401 65T54.jpg

BEE 6818 Martin Graham 7K 2020 18L664F38423 89U35.jpg

 

A B C D E G H.jpg

 

Only B, F & H are fixed length, A can be made to be fixed at 4 letters

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

I'm still not following.

 

The dark blue colour coding for example, there is no A in the before text, however, your after text has A in dark blue. Same for red, the source is digits, the output is a red B.

 

What is the logical pattern?

 

Can you explain it such as in the first group, the first character only, in the second group separated by a space it is the last two digits etc.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Sorry, I was tryig to descrive each section as secion A, section B etc.... the pattern follows the colors only. 

The Blue section is only lettering, but can be 3 or 4 letters long.

The Red section is only ever 4 numbers.

Green and Pink are always names but may contain a hyphen.

Burnt Orange is a mix of letters and numbers and could be any length.

Black is always just 4 numbers.

Light Blue is always a mix of numbers and letters between 7 and 9 characters long.

Indigo is always a mix of numbers and letters 5 characters long.

 

All the delimiters are spaces but they can be made to be anything.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

The Meta lines that work are

Description

Headline

Source

City

Sublocation

State/Province

Iso Country Code

Country

It doesnt matter which is used for what section of the filename.

Sorry if i confused the issue trying to describe sections. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Only one metadata field will be requied, the regular expression can transform using your pattern and write the result to the single field. Or the same regular expression can be used/saved into a Batch Rename string substitution preset. Do you really need to capture the 8 separate filename groups? What then? Re-order them? What?

 

I still need you to spell out exactly what the transform should be, if this is the source:

 

NEWB 1946 James Hunter-Smith 6MK3 2020 11K64976EC012 16K84.jpg

 

What should the after/result be? Sorry, I'm just not seeing it...

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Its the seperate fields I am hoping to achieve. eg:

the Blue section fills the Description field.

Red into Headline

Green into Source

Pink into City

Etc...

so each line of meta data contains one part of the whole filename as each is relevant in differnt ways.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

There may be a better way, which is why I am trying to understand what you are doing or hoping to achive.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 04, 2023 Feb 04, 2023

Copy link to clipboard

Copied

@Stephen_A_MarshYour code works well, many thanks.

However, I would like to be able to input the filename to an ITPC field of my choice.
What part of the code would I need to change and is there a list of IPTC fields where I can see what I need to enter instead to get the file name into the desired field (for example: filename to IPTC Job ID).

Many thanks in advance,
Robert

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 04, 2023 Feb 04, 2023

Copy link to clipboard

Copied

quote

@Stephen_A_MarshYour code works well, many thanks.

However, I would like to be able to input the filename to an ITPC field of my choice.
What part of the code would I need to change and is there a list of IPTC fields where I can see what I need to enter instead to get the file name into the desired field (for example: filename to IPTC Job ID).

Many thanks in advance,
Robert


By @Robert Kneschke

 

@Robert Kneschke – If you are using the IPTC data in a professional setting (news, magazines and other related publications) as intended by the IPTC, there are expectations of what type of data and where it is input.

 

https://iptc.org/standards/photo-metadata/guidelines-support/

 

https://iptc.org/std/photometadata/documentation/mappingguidelines/

 

http://www.iptc.org/std/photometadata/documentation/userguide/

 

If this isn't a concern for you, then you can of course "misuse" any IPTC or other available metadata field for your own personal purposes.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 04, 2023 Feb 04, 2023

Copy link to clipboard

Copied

By entering metadata in the required field, then looking at the Raw Data tab, one can determine the namespace and fieldname to use in the script:

 

meta.png

 

Keep in mind that single-line and multi-line entries (arrays) require different JS code.

 

I am by no means an expert at scripting metadata, I just hack at it.

 

I generally use the following two resources to try to work out namespaces:

 

https://extendscript.docsforadobe.dev/scripting-xmp/xmpscript-object-reference.html#schema-namespace...

 

Dumping namespace prefix to URI map (by Paul Riggott):

  AEScart:       => http://ns.adobe.com/aes/cart/
  DICOM:         => http://ns.adobe.com/DICOM/
  Iptc4xmpCore:  => http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/
  Iptc4xmpExt:   => http://iptc.org/std/Iptc4xmpExt/2008-02-29/
  adhocwf:       => http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/
  adobe:         => http://ns.adobe.com/xmp/aggregate/1.0/
  album:         => http://ns.adobe.com/album/1.0/
  as11c:         => http://amwa.tv/mxf/as/11/core/
  as11s:         => http://ns.adobe.com/mxf/as/11/structural/
  as11u:         => http://amwa.tv/mxf/as/11/ukdpp/
  asf:           => http://ns.adobe.com/asf/1.0/
  aux:           => http://ns.adobe.com/exif/1.0/aux/
  bext:          => http://ns.adobe.com/bwf/bext/1.0/
  bmsp:          => http://ns.adobe.com/StockPhoto/1.0/
  cq:            => http://www.day.com/jcr/cq/1.0
  creatorAtom:   => http://ns.adobe.com/creatorAtom/1.0/
  crs:           => http://ns.adobe.com/camera-raw-settings/1.0/
  custom_date:   => http://ns.custom_date.com/custom_date/
  dam:           => http://www.day.com/dam/1.0
  dc:            => http://purl.org/dc/elements/1.1/
  exif:          => http://ns.adobe.com/exif/1.0/
  exifEX:        => http://cipa.jp/exif/1.0/
  iX:            => http://ns.adobe.com/iX/1.0/
  iXML:          => http://ns.adobe.com/ixml/1.0/
  jp2k:          => http://ns.adobe.com/jp2k/1.0/
  jpeg:          => http://ns.adobe.com/jpeg/1.0/
  lr:            => http://ns.adobe.com/lightroom/1.0/
  pdf:           => http://ns.adobe.com/pdf/1.3/
  pdfaExtension: => http://www.aiim.org/pdfa/ns/extension/
  pdfaField:     => http://www.aiim.org/pdfa/ns/field#
  pdfaProperty:  => http://www.aiim.org/pdfa/ns/property#
  pdfaSchema:    => http://www.aiim.org/pdfa/ns/schema#
  pdfaType:      => http://www.aiim.org/pdfa/ns/type#
  pdfaid:        => http://www.aiim.org/pdfa/ns/id/
  pdfe:          => http://www.aiim.org/pdfe/ns/id/
  pdfx:          => http://ns.adobe.com/pdfx/1.3/
  pdfxid:        => http://www.npes.org/pdfx/ns/id/
  photoshop:     => http://ns.adobe.com/photoshop/1.0/
  plus:          => http://ns.useplus.org/ldf/xmp/1.0/
  png:           => http://ns.adobe.com/png/1.0/
  rdf:           => http://www.w3.org/1999/02/22-rdf-syntax-ns#
  riffinfo:      => http://ns.adobe.com/riff/info/
  stCamera:      => http://ns.adobe.com/photoshop/1.0/camera-profile
  stDim:         => http://ns.adobe.com/xap/1.0/sType/Dimensions#
  stEvt:         => http://ns.adobe.com/xap/1.0/sType/ResourceEvent#
  stFnt:         => http://ns.adobe.com/xap/1.0/sType/Font#
  stJob:         => http://ns.adobe.com/xap/1.0/sType/Job#
  stMfs:         => http://ns.adobe.com/xap/1.0/sType/ManifestItem#
  stRef:         => http://ns.adobe.com/xap/1.0/sType/ResourceRef#
  stVer:         => http://ns.adobe.com/xap/1.0/sType/Version#
  swf:           => http://ns.adobe.com/swf/1.0/
  tiff:          => http://ns.adobe.com/tiff/1.0/
  wav:           => http://ns.adobe.com/xmp/wav/1.0/
  x:             => adobe:ns:meta/
  xapG:          => http://ns.adobe.com/xap/1.0/g
  xml:           => http://www.w3.org/XML/1998/namespace
  xmp:           => http://ns.adobe.com/xap/1.0/
  xmpBJ:         => http://ns.adobe.com/xap/1.0/bj/
  xmpCA:         => http://ns.adobe.com/xmp/1.0/ContentAnalysis/
  xmpDM:         => http://ns.adobe.com/xmp/1.0/DynamicMedia/
  xmpG:          => http://ns.adobe.com/xap/1.0/g/
  xmpGImg:       => http://ns.adobe.com/xap/1.0/g/img/
  xmpMM:         => http://ns.adobe.com/xap/1.0/mm/
  xmpNote:       => http://ns.adobe.com/xmp/note/
  xmpPMAssign:   => http://xmlns.sony.net/pro/metadata/planningmetadata/assignment/
  xmpPMMemo:     => http://xmlns.sony.net/pro/metadata/planningmetadata/memo/
  xmpRights:     => http://ns.adobe.com/xap/1.0/rights/
  xmpScript:     => http://ns.adobe.com/xmp/1.0/Script/
  xmpT:          => http://ns.adobe.com/xap/1.0/t/
  xmpTPg:        => http://ns.adobe.com/xap/1.0/t/pg/
  xmpidq:        => http://ns.adobe.com/xmp/Identifier/qual/1.0/
  xmpx:          => http://ns.adobe.com/xmp/transient/1.0/

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 06, 2023 Feb 06, 2023

Copy link to clipboard

Copied

@Stephen_A_Marsh 
Thanks. I finally figured it out with your help. Took a little trial and error, but I got it now.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Does that make sense? Sorry, I'm not describing it very well.

NEWB 1946 James Hunter-Smith 6MK3 2020 11K64976EC012 16K84.jpg

 

Blue section fills the Description field: NEWB

Red into Headline 1946 

Green into Source James

Pink into City Hunter-Smith

Orange into Sublocation 6MK3

Black into State/Province 2020

Light Blue into ISOCountryCode 11K64976EC012

Indigo into Country 16K84

 

and the original full filename remains the filename.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

This is so when an image is placed in a layout we use, each line of meta data gives their individual piece of info on its own in its own location in the layout.

 

Thank you for bearing with me.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

OK, I now understand of where you need to get to and why.

 

The regular expression could be made tighter/more robust, however, in it's simplest form, here are 9 regular expression capture groups for a find. You only need the first 8:

 

(.+) (.+) (.+) (.+) (.+) (.+) (.+) (.+)(\.[^\.]+$)

 

They are referenced in a replace like so:

 

$1
$2
...
$8

 

Each separate metadata field would reference one of these capture groups.

 

That is the easy bit.

 

Putting this into code takes "just a little more work".

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

That makes much more sense, I am still just trying to get my head round your original duel line script and trying to teach myself as i go.

        var descCount = myXmp.countArrayItems(XMPConst.NS_DC, "Headline");
       

I just change things till I see a result lol. Thank you for the help. I'm still learning.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

Well if you can flesh out the code for all 8 required metadata fields, that would be a good start. Keep in mind that the namespaces may change for different metadata fields. That's always fun!

 

The variable regular expression javascript find/replace can be added later, to start, just getting the same static value to populate the eight separate fields is enough.

 

I learn on every new script, that's the point for me at least. I'm still a beginner. You'll certianly know more when you finish than when you started, this is the best way to get into scripting, hacking existing code.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 05, 2021 Apr 05, 2021

Copy link to clipboard

Copied

That worked just like you said! And thats great. I might try to see if I can delete the old title and description so it doesnt just add the file name. Is there a way to get the Bridge script to add a Metadata Template to this script? This way I can copyright it too. BTW thanks so much for the script update.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 16, 2023 Nov 16, 2023

Copy link to clipboard

Copied

An addition raised in another topic in the Photoshop forum... The following script can be used to find/replace/remove title data (I believe that this script was most likely written by Paul Riggot):

 

To clear the title you can use a regular expression find (replacing with nothing):

 

.+

2023-11-17_09-39-44.png

 

 

#target bridge
if (BridgeTalk.appName == "bridge") {
    ReplaceTitle = new MenuElement("command", "Find and Replace in Title", "at the end of tools");
}
ReplaceTitle.onSelect = function () {
    var win = new Window('dialog', 'Find & Replace in Title');
    g = win.graphics;
    var myBrush = g.newBrush(g.BrushType.THEME_COLOR, "appDialogBackground");
    g.backgroundColor = myBrush;
    win.orientation = 'column';
    win.p1 = win.add("panel", undefined, undefined, { borderStyle: "black" });
    win.p1.preferredSize = [380, 100];
    win.g1 = win.p1.add('group');
    win.g1.orientation = "row";
    win.title = win.g1.add('statictext', undefined, 'Title Editor');
    win.title.alignment = "fill";
    var g = win.title.graphics;
    g.font = ScriptUI.newFont("Arial", "BOLD", 22);
    win.p6 = win.p1.add("panel", undefined, undefined, { borderStyle: "black" }); //Replace
    win.p6.preferredSize = [380, 100];
    win.g600 = win.p6.add('group');
    win.g600.orientation = "row";
    win.g600.alignment = 'fill';
    win.g600.st1 = win.g600.add('statictext', undefined, 'Replace');
    win.g600.st1.preferredSize = [75, 20];
    win.g600.et1 = win.g600.add('edittext');
    win.g600.et1.preferredSize = [200, 20];
    win.g610 = win.p6.add('group');
    win.g610.orientation = "row";
    win.g610.alignment = 'fill';
    win.g610.st1 = win.g610.add('statictext', undefined, 'With');
    win.g610.st1.helpTip = "Leave this field blank if you want to remove the characters";
    win.g610.st1.preferredSize = [75, 20];
    win.g610.et1 = win.g610.add('edittext');
    win.g610.et1.preferredSize = [200, 20];
    win.g620 = win.p6.add('group');
    win.g620.orientation = "row";
    win.g620.alignment = 'fill';
    win.g620.cb1 = win.g620.add('checkbox', undefined, 'Global');
    win.g620.cb1.helpTip = "Replace all occurrences of";
    win.g620.cb2 = win.g620.add('checkbox', undefined, 'Case Insensitive');
    win.g620.cb2.value = true;
    win.g1000 = win.p1.add('group');
    win.g1000.orientation = "row";
    win.g1000.alignment = 'center';
    win.g1000.bu1 = win.g1000.add('button', undefined, 'Process');
    win.g1000.bu1.preferredSize = [170, 30];
    win.g1000.bu2 = win.g1000.add('button', undefined, 'Cancel');
    win.g1000.bu2.preferredSize = [170, 30];
    win.g1000.bu1.onClick = function () {
        if (win.g600.et1.text == '') {
            alert("No replace value has been entered!");
            return;
        }
        win.close(0);
        var sels = app.document.selections;
        for (var a in sels) {
            var thumb = sels[a];
            md = thumb.synchronousMetadata;
            if (win.g620.cb1.value && !win.g620.cb2.value) var patt = new RegExp(win.g600.et1.text.toString(), "g");
            if (!win.g620.cb1.value && win.g620.cb2.value) var patt = new RegExp(win.g600.et1.text.toString(), "i");
            if (win.g620.cb1.value && win.g620.cb2.value) var patt = new RegExp(win.g600.et1.text.toString(), "gi");
            if (!win.g620.cb1.value && !win.g620.cb2.value) var patt = new RegExp(win.g600.et1.text.toString());
            md.namespace = "http://purl.org/dc/elements/1.1/";
            var Caption = md.title ? md.title[0] : "";
            if (Caption == "") continue;
            var result = patt.test(Caption.toString());
            if (result == true) {
                var newCaption = Caption.replace(patt, win.g610.et1.text.toString());
                setTitle(sels[a].spec, newCaption);
            }
        }
    }
    win.show();
    function setTitle(file, Caption) {
        if (!ExternalObject.AdobeXMPScript) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
        var xmpf = new XMPFile(File(file).fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_UPDATE);
        var xmp = xmpf.getXMP();
        xmp.deleteProperty(XMPConst.NS_DC, "title");
        xmp.setLocalizedText(XMPConst.NS_DC, "title", null, "x-default", Caption);
        if (xmpf.canPutXMP(xmp)) {
            xmpf.putXMP(xmp);
        }
        xmpf.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
    }
};

 

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 28, 2023 Nov 28, 2023

Copy link to clipboard

Copied

Thanks again for this. I think the issue is that the persistent data occurs outside of metadata. I did get it to replace the title, but it doesn't replace the additional title fields in the file. Is there a way to access these via bridge? I've been poking around with John Wundes "The Document Object Model Explorer v.2 -- CS", but it stops reading the objects quickly. It wasn't intended for this, but does a pretty good job with InDesign and Photoshop. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 28, 2023 Nov 28, 2023

Copy link to clipboard

Copied

LATEST

Still interested if there's a way to adjust info outside of headers within bridge. But in testing, I've found that the reason AEM was recognizing these extraneous titles, was because I was deleting XMP title field but not appending a blank one back and setting a qualifier.

        myXmp.deleteProperty(XMPConst.NS_DC, "title");
        myXmp.appendArrayItem(XMPConst.NS_DC, "title", Title, 0, XMPConst.ALIAS_TO_ALT_TEXT);
myXmp.setQualifier(XMPConst.NS_DC, "title[1]", "http://www.w3.org/XML/1998/namespace", "lang", "x-default");


Titles still incorrectly appear here(I think this is postscript/pdf?):

%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 24.0
%%AI8_CreatorVersion: 28.0.0
%%For: (MY_USER_NAME) ()
%%Title: (Untitled-3)

And here, this is where AEM pulls from if it doesn't have a title field:

35 0 obj
<</CreationDate(D:20231128231255-05'00')/Creator(Adobe Illustrator 28.0 \(Macintosh\))/ModDate(D:20231128231256-05'00')/Producer(Adobe PDF library 17.00)/Title(THIS_IS_ANOTHER_TITLE)>>
endobj
xref


I have opened the AI files within text edit to find these additional titles, would love to know how to remove extraneous data like this, since at it contains user names etc. Not sure if it's related, but I saw exif tool does have a "For" field that read in the username.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines