// Maximum Print Size Column
// (c) 2020 Steve Banham
// This is a script for Directory Opus.
// See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information.
// Called by Directory Opus to initialize the script
function OnInit(initData)
{
initData.name = "Column: Max. Print Size";
initData.version = "1.1";
initData.copyright = "(c) 2020 Steve Banham";
initData.url = "https://resource.dopus.com/t/column-maximum-print-size";
initData.desc = "Adds a new column displaying maximum print size for an image.";
initData.default_enable = true;
initData.min_version = "12.0";
initData.config_desc = DOpus.Create.Map();
initData.config_groups = DOpus.Create.Map();
var configName = "";
configName = "DPI";
initData.Config[configName] = "200";
initData.config_desc(configName) = "DPI to use when calculating print size.";
initData.config_groups(configName) = "Settings";
configName = "Show DPI";
initData.Config[configName] = true;
initData.config_desc(configName) = "Include DPI setting in the column."
initData.config_groups(configName) = "Settings";
configName = "Show Units";
initData.Config[configName] = true;
initData.config_desc(configName) = "Include measurement unit in the column."
initData.config_groups(configName) = "Settings";
configName = "Centimetres";
initData.Config[configName] = true;
initData.config_desc(configName) = "Show the results in centimetres (true) or in inches (false).";
initData.config_groups(configName) = "Settings";
configName = "Directories";
initData.Config[configName] = "
";
initData.config_desc(configName) = "The string used in the column for directories (can be blank).";
initData.config_groups(configName) = "Non Image";
configName = "Files";
initData.Config[configName] = "---";
initData.config_desc(configName) = "The string used in the column for files which aren't images (can be blank).";
initData.config_groups(configName) = "Non Image";
var col = initData.AddColumn();
col.name = "MaxPrintSize";
col.method = "OnMaxPrintSize";
col.label = "Maximum Print Size";
col.autogroup = true;
col.autorefresh = true;
col.justify = "center";
col.match.push_back("Yes");
}
function OnMaxPrintSize(scriptColData) {
if (scriptColData.item.is_dir) {
scriptColData.value = Script.Config["Directories"];
return;
}
if (scriptColData.item.metadata() == "image") {
var prtMaxWidth = scriptColData.item.metadata.image_text.picwidth / Script.Config["DPI"]
var prtMaxHeight = scriptColData.item.metadata.image_text.picheight / Script.Config["DPI"];
if (Script.Config["Centimetres"] == true) {
prtMaxWidth = prtMaxWidth * 2.54;
prtMaxHeight = prtMaxHeight * 2.54;
}
prtMaxWidth = prtMaxWidth.toFixed(2);
prtMaxHeight = prtMaxHeight.toFixed(2);
var strUnits = "cm";
var strDPI = " (" + Script.Config["DPI"] + "dpi)";
if (Script.Config["Show DPI"] == false) {
var strDPI = "";
}
if (Script.Config["Centimetres"] == false) {
strUnits = "\"";
}
if (Script.Config["Show Units"] == false) {
strUnits = "";
}
scriptColData.value = prtMaxWidth + strUnits + " x " + prtMaxHeight + strUnits + strDPI;
}
else {
scriptColData.value = Script.Config["Files"];
}
}