#target "indesign"
#targetengine "GeminiLinksFixer_Final_SystemPaste"
function main() {
if (app.documents.length === 0) return;
var doc = app.activeDocument;
var links = doc.hyperlinks;
var data = [];
var memoryFile = new File(Folder.myDocuments + "/InDesign_Links_Memory.json");
var memory = {};
if (memoryFile.exists) {
memoryFile.open("r");
var content = memoryFile.read();
memoryFile.close();
if (content != "") { try { memory = eval("(" + content + ")"); } catch(e) {} }
}
for (var i = 0; i < links.length; i++) {
try {
var dest = links[i].destination;
if (dest && dest.hasOwnProperty("destinationURL")) {
var name = (links[i].source instanceof HyperlinkTextSource) ?
links[i].source.sourceText.contents : links[i].name;
var currentUrl = dest.destinationURL;
var targetUrl = (memory[name]) ? memory[name] : currentUrl;
data.push({ text: name, url: targetUrl, originalUrl: currentUrl, link: links[i] });
}
} catch(e){}
}
// פונקציה לשליפת טקסט מהלוח באמצעות PowerShell (עוקף את אינדיזיין)
function getSystemClipboard() {
var psScript = 'powershell -command "Get-Clipboard"';
try {
var result = app.doScript(psScript, ScriptLanguage.VISUAL_BASIC);
// בשימוש ב-doScript עם VB על ווינדוס הוא מחזיר את פלט המערכת
if (!result) {
// שיטה חלופית אם הראשונה לא מחזירה ערך בגרסה שלך
var cmd = 'powershell -command "Get-Clipboard" > "%temp%\\clip.txt"';
app.doScript('Set shell = CreateObject("WScript.Shell"): shell.Run "cmd.exe /c ' + cmd + '", 0, True', ScriptLanguage.VISUAL_BASIC);
var f = new File(Folder.temp + "/clip.txt");
if (f.exists) {
f.open("r");
var txt = f.read();
f.close();
return txt;
}
}
return result;
} catch (e) { return ""; }
}
var win = new Window("palette", "תיקון קישורים - הדבקה נקייה");
win.orientation = "column";
win.spacing = 5;
win.margins = 15;
var mainGroup = win.add("group {orientation: 'row', alignChildren: ['right', 'fill']}");
var fieldsGroup = mainGroup.add("group {orientation: 'column', spacing: 2}");
var uiRows = [];
for (var r = 0; r < 12; r++) {
var row = fieldsGroup.add("group");
var btnPaste = row.add("button", [0, 0, 50, 22], "הדבק");
var edt = row.add("edittext", [0, 0, 380, 22], "");
var btnSel = row.add("button", [0, 0, 40, 22], "בחר");
var txtLabel = row.add("statictext", [0, 0, 300, 22], "");
btnSel.onClick = (function(e) {
return function() { e.active = true; e.selection = [0, e.text.length]; };
})(edt);
btnPaste.onClick = (function(e) {
return function() {
var clipText = getSystemClipboard();
if (clipText && clipText != "") {
// ניקוי רווחים וירידות שורה מיותרות מהקצוות
e.text = clipText.replace(/^\s+|\s+$/g, "");
e.active = true;
}
};
})(edt);
uiRows.push({row: row, txtLabel: txtLabel, edt: edt, dataIdx: -1});
}
var sb = mainGroup.add("scrollbar", [0, 0, 20, 300]);
function refresh(start) {
var startIdx = Math.floor(start);
for (var k = 0; k < uiRows.length; k++) {
var idx = startIdx + k;
if (idx < data.length) {
uiRows[k].txtLabel.text = data[idx].text.substring(0, 45);
uiRows[k].edt.text = data[idx].url;
uiRows[k].dataIdx = idx;
uiRows[k].row.visible = true;
} else { uiRows[k].row.visible = false; }
}
}
sb.onChanging = function() { refresh(this.value); };
sb.minvalue = 0;
sb.maxvalue = Math.max(0, data.length - uiRows.length);
var btnSave = win.add("button", undefined, "עדכן ושמור");
btnSave.alignment = "center";
btnSave.onClick = function() {
for (var j = 0; j < data.length; j++) {
for(var i=0; i<uiRows.length; i++) {
if(uiRows[i].dataIdx === j) data[j].url = uiRows[i].edt.text;
}
if (data[j].url !== data[j].originalUrl) {
try { data[j].link.destination.destinationURL = data[j].url; } catch(e){}
}
memory[data[j].text] = data[j].url;
}
memoryFile.open("w");
memoryFile.write(memory.toSource());
memoryFile.close();
alert("נשמר!");
};
refresh(0);
win.show();
}
main();
כן.מישהו יודע אם אני בפורום הנכון?
לא הבאת מספיק מידע, לא קובץ ניסיון.מישהו יודע אם אני בפורום הנכון?
rhon.co.il
מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!
חלה שגיאה בשליחה. נסו שוב!
לוח לימודים
מסלולי לימוד שאפשר להצטרף
אליהם ממש עכשיו:
תהילים פרק כג
אמִזְמוֹר לְדָוִד יי רֹעִי לֹא אֶחְסָר:בבִּנְאוֹת דֶּשֶׁא יַרְבִּיצֵנִי עַל מֵי מְנֻחוֹת יְנַהֲלֵנִי:גנַפְשִׁי יְשׁוֹבֵב יַנְחֵנִי בְמַעְגְּלֵי צֶדֶק לְמַעַן שְׁמוֹ:דגַּם כִּי אֵלֵךְ בְּגֵיא צַלְמָוֶת לֹא אִירָא רָע כִּי אַתָּה עִמָּדִי שִׁבְטְךָ וּמִשְׁעַנְתֶּךָ הֵמָּה יְנַחֲמֻנִי:התַּעֲרֹךְ לְפָנַי שֻׁלְחָן נֶגֶד צֹרְרָי דִּשַּׁנְתָּ בַשֶּׁמֶן רֹאשִׁי כּוֹסִי רְוָיָה:ואַךְ טוֹב וָחֶסֶד יִרְדְּפוּנִי כָּל יְמֵי חַיָּי וְשַׁבְתִּי בְּבֵית יי לְאֹרֶךְ יָמִים:
הנושאים החמים



Reactions: אברהם בן, הפתעה, הכל כבר תפוס ועוד 106 משתמשים109 //