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

Exporting List, Metadata, Keywords to CSV, Excel, Etc

New Here ,
Jan 11, 2021 Jan 11, 2021

Hi,

I am using the latest version of Bridge (CC) and would like to export a list of selected files, including Keywords, Rating, and File Location if possible.

In a previous version of Bridge, I had used a script to do this. However, since then it seems that this functionality has been discontinued. Is there any way to do what I want in this "Professional" software that we are paying so much for? 

TOPICS
Batch , Feature request , Import and export , Keywords , Metadata , Scripting
13.7K
Translate
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 1 Correct answer

LEGEND , Jan 12, 2021 Jan 12, 2021

Adobe has never offered this. However, there are scripts, including my Folder List Export script, which have this functionality.

Adobe Scripts?

Translate
Community Beginner ,
Dec 13, 2024 Dec 13, 2024

HI Lumigraphics

Thanks for your FolderListExport Script. Very useful. The one thing it doesn't have is an option to export the Dimensions in Inches data. Do you have an update by chance that includes that opton

Thanks

Translate
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 ,
Dec 13, 2024 Dec 13, 2024
quote

The one thing it doesn't have is an option to export the Dimensions in Inches data. Do you have an update by chance that includes that opton

Thanks


By @Richard3452012619ot

 

In the short term, if you need this now, although not automated, you can get this information by ticking the "Dimensions" box when exporting.

 

You will then have a column for Dimensions in pixels, i.e.:

 

1665 x 1284

 

And a column for the Resolution:

 

192 ppi

 

It's then possible to use a spreadsheet app's "Text to Columns" feature to split these two columns on the word space, so that there are separate columns for the width, height and resolution numbers.

 

A formula can then generate the size in inches by dividing the pixel dimensions by the  resolution value:

 

1665 / 192 = 8.671875

 

Then format the cell to round to 1 decimal place and it will report the same size as Bridge as 8.7"

 

The formula can then be copied from 1 cell, to 2 or 2000+ cells.

 

I'll look into the scripting guide to see how easy it is to get the dimensions in inches and centimetres. They might be available to scripting as it's displayed in the Bridge Metadata panel.

Translate
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 ,
Dec 13, 2024 Dec 13, 2024

@Richard3452012619ot 

 

In the original script code, find the following 10 lines of code for the if/else block (lines 560-570):

 

                    if(fleListingInfo[7][1] == true){
                        var fleWD = fleList[i].core.quickMetadata.width;
                        var fleHT = fleList[i].core.quickMetadata.height;
                        var fleRes = fleList[i].core.quickMetadata.xResolution;
                        if(fleWD == undefined || fleWD == 0 || fleHT == undefined || fleHT == 0){
                            fleWD = fleHT = '';
                            }
                        else{
                            fleListing = fleListing + '\t' + fleWD.toString() + ' x ' + fleHT.toString() + '\t' + fleRes.toString() + ' ppi';
                            }
                        }

 

Replace with the following 15 lines of code:

                    if (fleListingInfo[7][1] == true) {
                        var fleWD = fleList[i].core.quickMetadata.width;
                        var fleHT = fleList[i].core.quickMetadata.height;
                        var fleRes = fleList[i].core.quickMetadata.xResolution;
                        if (fleWD == undefined || fleWD == 0 || fleHT == undefined || fleHT == 0) {
                            fleWD = fleHT = '';
                        }
                        else {
                            var fleWDinches = fleWD / fleRes; // Width divided by resolution for size in inches
                            fleWDinchesRound = fleWDinches.toFixed(1); // Rounds to nearest decimal
                            var fleHTinches = fleHT / fleRes; // Height divided by resolution for size in inches
                            fleHTinchesRound = fleHTinches.toFixed(1); // Rounds to nearest decimal
                            fleListing = fleListing + '\t' + fleWDinchesRound.toString() + ' x ' + fleHTinchesRound.toString() + ' inches' + '\t' + fleRes.toString() + ' ppi';

                        }
                    }

 

Enjoy!

Translate
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 ,
Dec 15, 2024 Dec 15, 2024

Thanks so much. That's just what I needed

Translate
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 ,
Dec 15, 2024 Dec 15, 2024

@Richard3452012619ot â€“ You're welcome!

Translate
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 ,
Dec 17, 2024 Dec 17, 2024

And here it is in metric:

 

                    if (fleListingInfo[7][1] == true) {
                        var fleWD = fleList[i].core.quickMetadata.width;
                        var fleHT = fleList[i].core.quickMetadata.height;
                        var fleRes = fleList[i].core.quickMetadata.xResolution;
                        if (fleWD == undefined || fleWD == 0 || fleHT == undefined || fleHT == 0) {
                            fleWD = fleHT = '';
                        }
                        else {
                            var fleWDcm = fleWD / fleRes * 2.54; // Width in CM, use 25.4 for MM
                            fleWDcmRound = fleWDcm.toFixed(1); // Rounds to nearest decimal
                            var fleHTcm = fleHT / fleRes * 2.54; // Width in CM, use 25.4 for MM
                            fleHTcmRound = fleHTcm.toFixed(1); // Rounds to nearest decimal
                            fleListing = fleListing + '\t' + fleWDcmRound.toString() + ' x ' + fleHTcmRound.toString() + ' CM' + '\t' + fleRes.toString() + ' ppi';

                        }
                    }
Translate
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 26, 2024 Apr 26, 2024

One can use ExifTool to change the modified date/time with the created values.

Translate
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 ,
Jun 21, 2021 Jun 21, 2021

Various options also listed here:

 

Extracting Metadata to .CSV

 

Translate
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 ,
Dec 28, 2024 Dec 28, 2024
LATEST

Here's a script to auto place selected images from Bridge and put them on  Indesign pages. The only problem with it is that on the first page, top row left side,  it places 2 images on top of each other in the same picture frame. Other than that it works well. Any ideas on how to fix the javascript to eliminate the overlapping placement on the first page?

 

#target bridge
if (BridgeTalk.appName == "bridge") {
var menu = MenuElement.create("command", "AutoPlaceFixed2", "at the end of Tools");
menu.onSelect = function () {
var selectedFiles = app.document.selections;
if (selectedFiles.length === 0) {
alert("Please select one or more image files.");
return;
}
var filePaths = [];
for (var i = 0; i < selectedFiles.length; i++) {
if (selectedFiles[i].type === "file") {
filePaths.push(selectedFiles[i].spec.fsName);
}
}
if (filePaths.length === 0) {
alert("No valid image files selected.");
return;
}
var bt = new BridgeTalk();
bt.target = "indesign";
bt.body = "var filePaths = " + filePaths.toSource() + ";";
bt.body += "(" + placeImagesInInDesign.toString() + ")();";
bt.send();
};
}

function placeImagesInInDesign() {
if (app.documents.length === 0) {
app.documents.add();
}
var doc = app.activeDocument;
var marginPreferences = doc.marginPreferences;
var pageWidth = doc.documentPreferences.pageWidth;
var pageHeight = doc.documentPreferences.pageHeight;
var x = marginPreferences.left;
var y = marginPreferences.top;
var spacing = 0; // No spacing between images
var currentPage = doc.pages[0];

for (var i = 0; i < filePaths.length; i++) {
var imageFile = new File(filePaths[i]);

// Create a new rectangle frame for the image
var rect = currentPage.rectangles.add();

// Place the image in the rectangle
var placedImage = rect.place(imageFile)[0];

// Get the original dimensions of the placed image
var originalWidth = placedImage.geometricBounds[3] - placedImage.geometricBounds[1];
var originalHeight = placedImage.geometricBounds[2] - placedImage.geometricBounds[0];

// Check if the next image would exceed the horizontal boundary
if (x + originalWidth > pageWidth - marginPreferences.right) {
x = marginPreferences.left; // Reset x to start of new row
y += originalHeight + spacing; // Move down for the new row
}

// Check if the next row would exceed the vertical boundary
if (y + originalHeight > pageHeight - marginPreferences.bottom) {
currentPage = doc.pages.add(); // Add a new page
x = marginPreferences.left; // Reset x for the new page
y = marginPreferences.top; // Reset y for the new page
}

// Ensure the frame matches the original image dimensions
rect.geometricBounds = [y, x, y + originalHeight, x + originalWidth];

// Fit the content to the frame
rect.fit(FitOptions.CONTENT_TO_FRAME);

// Update position for the next image
x += originalWidth + spacing;
}
}

Translate
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