Skip to main content
OzPhotoMan
Inspiring
September 17, 2021
Question

Print metadata on bottom of photo

  • September 17, 2021
  • 8 replies
  • 12783 views

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 

This topic has been closed for replies.

8 replies

Participant
September 19, 2022

ScanSpeeder, Windows only.  It takes info from the caption or description field and adds it to bottom of picture.  It's an extra step, but works.

Conrad_C
Community Expert
Community Expert
September 18, 2021

@OzPhotoMan wrote:

Also, what is the description field for in the print dialog box?


 

Looks like there is some confusion about it in this thread, because there are two Description fields in the Print dialog box. If you are asking about the Description field in the Printing Marks section, all of those options print outside the image area, usually for reference or workflow use like at a print shop.

 

Unfortunately, this option won’t help you because you want Description metadata printed inside the image area, and because this option does not pull from metadata.

 

OzPhotoMan
Inspiring
September 18, 2021

Thanks,

 

I was not aware there were tow description fields in the print dialog box. I was referring to the one in the colour management section.

 

Regards,

 

Steve 

Conrad_C
Community Expert
Community Expert
September 19, 2021

The one in the Color Management section should probably be called something like “context help” because that is what it provides. As you hover the pointer over different Color Management options, Description literally describes it. I guess Adobe thought it was needed because color management is so confusing to people. It works exactly the same way as the Description field at the bottom of the Edit > Color Settings dialog box of color management options.

 

But it too has nothing to do with IPTC Description metadata.

Stephen Marsh
Community Expert
Community Expert
September 17, 2021

@OzPhotoMan 

 

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!');
}

 

Downloading and Installing Adobe Scripts

Geppetto Luis
Legend
September 17, 2021

Stephen
I have this warning window

The metadata is all there on the original file

Stephen Marsh
Community Expert
Community Expert
September 17, 2021

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.

 

jane-e
Community Expert
Community Expert
September 17, 2021

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. 

  • Object menu > Captions > Caption Settings
    Choose Description for the metatdata and set up other parameters as desired
  • Select the frame with the image
  • Object menu > Captions > Generate Caption (live or static)
    The frame that is generated can then be repositioned and put on the photo

 

Captions

 

~ Jane

JJMack
Community Expert
Community Expert
September 17, 2021

Old Photoshop had Web Photo galleries that supported some metadad fields like description.

JJMack
Legend
September 17, 2021

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

 

Adobe Scripts Adobe Scripts

OzPhotoMan
Inspiring
September 18, 2021

Hi,

 

What is the name of the specific script/

 

Regards,

Steve

PECourtejoie
Community Expert
Community Expert
September 17, 2021

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

Kukurykus
Legend
September 17, 2021

Where is color management area?

PECourtejoie
Community Expert
Community Expert
September 17, 2021

Hi, it is in regards to Oz's question about the print dialog:

JJMack
Community Expert
Community Expert
September 17, 2021

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.

JJMack
Participant
September 17, 2021

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

Stephen Marsh
Community Expert
Community Expert
September 17, 2021

jonathanstan

 

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:

 

Michael Bullo
Community Expert
Community Expert
September 17, 2021

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.