Copy link to clipboard
Copied
Hi all,
Is there a way to print some metadata on a photo? I have a photo that has the description written into metadata and I want to print that description onto the photo.
Also, what is the description field for in the print dialog box?
Regards,
Steve
Copy link to clipboard
Copied
You might want to look into InDesign which is another major program within the Adobe Creative Cloud. It has a feature that allows you to automatically populate captions from a range of metadata fields.
Copy link to clipboard
Copied
There may be a Photoshop script that can add a text layer with the meta data you want. Search the Web for Photoshop scripts. I believe there is one called something like frameshop that may be able to do what you want.
Copy link to clipboard
Copied
Its good that there are alot of software options for adding metadata to photos. I've been doing it with Lightroom Classic for years. After all the work it takes to tag photos, I am very sad that there are few options to view things like Title, Caption, and select Exif data like f/stop and time of exposure. I'd like to see these items displayed in an itegrated way with the photo (as though your reading the title and caption of a photo in a magazine like Flickr and apparently Snip Tag do, but if software allows this, it is often cumbersome to access it. Any other alternative software suggestions just for viewing photos and the meta data within (not necessarily creating and editing meta data).
Copy link to clipboard
Copied
This is one feature of Adobe Bridge.
Below is the result of a script that can stamp EXIF metadata, it could stamp any metadata or static text with the appropriate edits:
Copy link to clipboard
Copied
Hi,
What is that script.
I also can't find that feature in Bridge.
Regards,
Steve
Copy link to clipboard
Copied
@OzPhotoMan wrote:
Hi,
What is that script.
I also can't find that feature in Bridge.
Regards,
Steve
Bridge GUI:
The other script that I posted an output example of was from the "stamp exif" script, which is very different to only adding only the "description/caption" metadata, it is more concerned with camera EXIF metadata.
Copy link to clipboard
Copied
Thanks,
I am aware of the metadata panel and entering data in there in Bridge or LR, I am refering to printing metadata on the printed image.
Regards,
Steve
Copy link to clipboard
Copied
I know what you want, which is why I posted the script. Have you tried it yet? A link to instructions were posted underneath.
That reply regarding Bridge was to jonathanstan
Copy link to clipboard
Copied
Thanks Stephen,
I have not tried it yet, will do so over the next few days.
Regards,
Steve
Copy link to clipboard
Copied
Hi, I really hope that one day, the Bridge Output to PDF would be changed to have the description under the images, it would be a good think for some of my workflows... But I just realized that I might be able to use the PDF presentation instead... @OzPhotoMan take a look at File>Automate>PDF presentation.
Also, what is the description field for in the print dialog box?
By @OzPhotoMan
Hi, if you hover any item in the color management area, this field succintly describes you what it does...
Copy link to clipboard
Copied
Where is color management area?
Copy link to clipboard
Copied
Hi, it is in regards to Oz's question about the print dialog:
Copy link to clipboard
Copied
Thx, I long time ago automated my print settings so wasn't sure if that thing is exactly there.
Copy link to clipboard
Copied
Hi,
The PDf function will work, but I would be concerned about final print quality.
I don't get any descrition on hover, I have the latest vesrion of PS. Is there a setting I need to turn on?
Regards,
Steve
Copy link to clipboard
Copied
A script can add a text layer easily, I have several that I use in production.
Followup, I have some sample scripts on my DropBox which add text layers to an image
Copy link to clipboard
Copied
Hi,
What is the name of the specific script/
Regards,
Steve
Copy link to clipboard
Copied
Hi @OzPhotoMan
If it's just one photo, can you just copy the text from File > Info in Adobe Bridge and paste it into Photoshop?
As was mentioned, InDesign does this easily.
~ Jane
Copy link to clipboard
Copied
Old Photoshop had Web Photo galleries that supported some metadad fields like description.
Copy link to clipboard
Copied
Thanks, but I can't afford In Design.
Regards,
Steve
Copy link to clipboard
Copied
Here is a script.
As you didn't set-out explicit requirements it is general purpose. It can be changed for your requirements once they are known.
/*
Add Description Metadata as Text Layer.jsx
v1.1 - Stephen Marsh, 18th September 2021
NOTE: Text size is visual to the canvas width (not a fixed point size)
https://community.adobe.com/t5/photoshop-ecosystem-discussions/print-metadata-on-bottom-of-photo/td-p/12387715
Print metadata on bottom of photo
*/
#target photoshop
if (app.documents.length) {
// Check if there is either XMP-dc:Description or IPTC:Caption-Abstract metadata
if (ExternalObject.AdobeXMPScript === undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
var xmp = new XMPMeta(app.activeDocument.xmpMetadata.rawData);
var descMeta = xmp.getProperty(XMPConst.NS_DC, 'description');
if (descMeta !== undefined || app.activeDocument.info.caption.length) {
function main() {
// Ruler units
var origRuler = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.POINTS;
var doc = app.activeDocument;
// Text layer
var descMeta = doc.info.caption;
var layerRef = doc.artLayers.add();
layerRef.name = "Description Metadata";
layerRef.kind = LayerKind.TEXT;
// Dynamic text colour
layerRef.blendMode = BlendMode.DIFFERENCE;
// Text properties
var textRef = layerRef.textItem;
var textColor = new SolidColor();
textColor.rgb.red = 255;
textColor.rgb.green = 255;
textColor.rgb.blue = 255;
textRef.color = textColor;
textRef.contents = descMeta;
textRef.position = new Array(0, 0);
textRef.font = 'Times-Bold';
textRef.size = 24;
textRef.useAutoLeading = true;
textRef.justification = Justification.CENTER;
// Ruler units for positioning on canvas
app.preferences.rulerUnits = Units.PIXELS;
// Scale the text to 90% of the canvas width
layerScaler();
// Align text to horizontal centre
align2SelectAll('AdCH');
// Align text to bottom
align2SelectAll('AdBt');
// move text layer up from bottom
var docMargin = doc.width / 33;
var yPos = parseInt(docMargin);
doc.activeLayer.translate(0, -yPos);
// doc.activeLayer.translate(0, -25);
// Restore original ruler units
app.preferences.rulerUnits = origRuler;
// End of script notifications
app.beep();
// alert('Done!');
/************ Functions ************/
function align2SelectAll(method) {
/*
AdLf = Align Left
AdRg = Align Right
AdCH = Align Centre Horizontal
AdTp = Align Top
AdBt = Align Bottom
AdCV = Align Centre Vertical
*/
doc.selection.selectAll();
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
desc.putReference(charIDToTypeID("null"), ref);
desc.putEnumerated(charIDToTypeID("Usng"), charIDToTypeID("ADSt"), charIDToTypeID(method));
try {
executeAction(charIDToTypeID("Algn"), desc, DialogModes.NO);
} catch (e) { }
doc.selection.deselect();
}
function layerScaler() {
var scale = Math.min(doc.width / (doc.activeLayer.bounds[2] - doc.activeLayer.bounds[0]), doc.height / (doc.activeLayer.bounds[3] - doc.activeLayer.bounds[1]));
// Scale to 90% of canvas
doc.activeLayer.resize(scale * 90, scale * 90);
}
}
app.activeDocument.suspendHistory("Run script", "main()");
} else {
alert('Script cancelled!' + '\r' + 'There is no description/caption metadata');
}
} else {
alert('A document must be open to use this script!');
}
Copy link to clipboard
Copied
Stephen
I have this warning window
The metadata is all there on the original file
Copy link to clipboard
Copied
It works for me if there is data in the Description field of File > File Info (which I believe is the caption metadata):
If the description/caption field is blank, then that message is triggered.
That if/else check could be removed, but then the result would be a blank text layer if the data was not there.
Copy link to clipboard
Copied
So it doesn't take the exif data of the photo
you have to enter them manually
Copy link to clipboard
Copied
My script is only checking for IPTC Caption metadata in File > File Info > Basic - Description or IPTC - Description.
The legacy IPTC Caption metadata is the same as the current XMP-DC Description metadata. If the tool used to add metadata is MWG compliant it will write to both fields. It could be that the tool used to add your metadata only used the XMP-DC Description without also updating the IPTC Caption.
It is easy for me to check legacy "File Info" metadata. It is harder for me to check for XMP metadata.
Perhaps someody could share code?
Metadata comes in different forms. EXIF is camera related metadata.
The OP wasn't looking for EXIF, they explicitly mentioned "Description".
"Description" may be two things (see my other post).
I still need to work out how to check for XMP:DC Description in addition to IPTC Caption...
I have updated the original script to a 1.1 version.
I believe that I now have working code for XMP-dc:Description, here is a snippet:
// Check if there is either XMP-dc:Description or IPTC:Caption-Abstract metadata
if (ExternalObject.AdobeXMPScript === undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
var xmp = new XMPMeta(app.activeDocument.xmpMetadata.rawData);
var descMeta = xmp.getProperty(XMPConst.NS_DC, 'description');
if (descMeta !== undefined || app.activeDocument.info.caption.length) {
// Do stuff...
}
I'm sure that it is not elegant or that it is verbose, clumsy, inefficient etc. This is the best that I have been able to do, I'm just happy that it appears to work!