אינדיזיין טבלאות - סקריפט באינדיזיין

  • פותח הנושא zvis
  • פורסם בתאריך

zvis

משתמש צעיר
עימוד ספרים
האם יש סקריפט חינמי או בתשלום, שיוכל לעבור על טבלאות ולבצע אחידות של רוחב הטורים?

יש בידי עשרות טבלאות של 5 עמודות, ואני צריכה שכל הטור הראשונים יהיו לדוגמא של 2 ס"מ, הטור השני יהיה 2.5 ס"מ השלישי 5 ס"מ, הרביעי 1.5 ס"מ וכל החמישיים של 1.5 ס"מ.
 

אריאל וו

משתמש סופר מקצוען
עיצוב גרפי
מוזיקה ונגינה
עימוד ספרים
בא נגיד שבחרת את הטבלא. תריץ את הסקריפט הזה:
קוד:
t = app.selection[0];
t.columns[0].width = "2cm";
t.columns[1].width = "2cm";
t.columns[2].width = "2cm";
t.columns[3].width = "2cm";
t.columns[4].width = "2cm";



תמלא את המספרים שאתה רוצה, תשמור כ-סקריפט (סיומת .jsx) ואזה אמור לעבוד. לא בדקתי אמנם...

אריאל
 

zvis

משתמש צעיר
עימוד ספרים
עובד נפלא - ישר כח גדול
 

ז.רבינוביץ

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
עכשיו יצא לי צורך להשתמש עם זה

מה ההסבר לשגיאה

תודה לעונים

‏‏לכידה.PNG
‏‏לכ1ידה.PNG
 

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
עכשיו יצא לי צורך להשתמש עם זה

מה ההסבר לשגיאה

תודה לעונים

צפה בקובץ המצורף 347455 צפה בקובץ המצורף 347456
בגלל שאתה צריך לבחור את כל הטבלה [כמו ש @אריאל וו כתב] - ורק אז הסקריפט יעבוד...

הסקריפט עובד על הבחירה שלך, ואם לא בחרת טבלה, ממילא אין ״טור״ בבחירה שלך [השגיאה הנ״ל אומר שהאובייקט t (דהיינו הבחירה שלך) אין לו ערך ״טור״]...
 
נערך לאחרונה ב:

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
הגירסה הזו יחיל רוחב אחיד על כל הטורים של הטבלה הנבחר [יעבוד גם אם יש לך אלף טורים בטבלה...].
קוד:
var t = app.selection[0];
for (i=0; i<t.columns.length; i++) {
    t.columns[i].width = "2cm";
}
אפשר לשנות את הרוחב להרוחב הרצוי ע״י שינוי המספר בשורה 3.
 
נערך לאחרונה ב:

ז.רבינוביץ

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
אין מילים על העזרה!!!

יש אפשרות שהסקריפט יעבוד על כל הטבלאות במסמך בבת אחרת, זה יחסוך המון זמן?!
 

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
אין מילים על העזרה!!!

יש אפשרות שהסקריפט יעבוד על כל הטבלאות במסמך בבת אחרת, זה יחסוך המון זמן?!
כן, קח את הסקריפט הזה...
קוד:
var myDoc = app.activeDocument;
for (i = 0; i < myDoc.stories.length; i++) {
    for (j = 0; j < myDoc.stories[i].tables.length; j++) {
        for (o = 0; o < myDoc.stories[i].tables[j].columns.length; o++) {
            myDoc.stories[i].tables[j].columns[o].width = "2 cm";
        }
    }
}
 

גלעד82

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
שלום!

האם את יש אפשרות שהסקריפט הראשון, שהעלה @אריאל וו , יש אפשרות להפעיל על כל הטבלאות שבמסמך?
 

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
שלום!

האם את יש אפשרות שהסקריפט הראשון, שהעלה @אריאל וו , יש אפשרות להפעיל על כל הטבלאות שבמסמך?
למה לא להשתמש במה שכתבתי, זה עושה בדיוק אותו דבר, רק על כל הטורים של כל הטבלאות במסמך... [בדיוק מה שאתה רוצה]
 

אריאל וו

משתמש סופר מקצוען
עיצוב גרפי
מוזיקה ונגינה
עימוד ספרים
למה לא להשתמש במה שכתבתי, זה עושה בדיוק אותו דבר, רק על כל הטורים של כל הטבלאות במסמך... [בדיוק מה שאתה רוצה]
לפעמים לא רוצים שכל הטורים יהיו באותו רוחב...
 

אריאל וו

משתמש סופר מקצוען
עיצוב גרפי
מוזיקה ונגינה
עימוד ספרים
עכשיו יצא לי צורך להשתמש עם זה

מה ההסבר לשגיאה

תודה לעונים

צפה בקובץ המצורף 347455 צפה בקובץ המצורף 347456
לדעתי הבעיה פה זה שאתה מריץ את הסקריפט מתוך עורך הסקריפטים (ESTK). בעצם, זה בסדר גמור לעשות את זה, רק שצריך לזכור לסמן את אינדיזיין כמתרה לסקריפט - שים לב שבתצלום המסך שלך למעלה בצד שמאל כתוב Extendscript Toolkit CS5 בתפריט. במקום זה, תבחר מהתפריט את גירסת האינדיזיין עליה תרצה להריץ את הסקריפט...
 

גלעד82

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
אההה.... לא הסברת!!!
אז זה הפתרון [יפעול על כל הטבלאות שבמסמך, לא ניסיתי, אבל אמור לעבוד... מחכה לאישור ממך...] -
קוד:
var myDoc = app.activeDocument;
for (i = 0; i < myDoc.stories.length; i++) {
    for (j = 0; j < myDoc.stories[i].tables.length; j++) {
        myDoc.stories[i].tables[j].columns[0].width = "2 cm";
        myDoc.stories[i].tables[j].columns[1].width = "2 cm";
        myDoc.stories[i].tables[j].columns[2].width = "2 cm";
        myDoc.stories[i].tables[j].columns[3].width = "2 cm";
        myDoc.stories[i].tables[j].columns[4].width = "2 cm";
    }}
תשנה את המספרים כאוות נפשיך...
 

גלעד82

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
ואם כבר דיברנו על שליטה גורפת ומדויקת ברוחב העמודות בטורים, אז מצאתי כאן סקריפט שנותן את זה בקלות אבל במגבלה מסויימת, הוא יודע לקבוע את רוחב הטורים של כל טבלה אם יש לה סגנון טבלה, לכאו' אין מגבלה על מספר הטבלאות ולכל סגנון אפשר לקבוע פרמטרים שונים.


קוד:
var myTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements(); 
    
for ( var t = 0; t < myTables.length; t++ ) {
        if ( myTables[t].appliedTableStyle.name == "xxx" && myWidths = [30, 10, 25, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "yyy" && myWidths = [10, 20] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "zzz" && myWidths = [10, 50, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
}

וזה קובץ הסקריפט, אין לי אחריות להפעלתו.
 

קבצים מצורפים

  • רוחב עמודות לפי סגנון.zip
    440 ביטים · צפיות: 8
נערך לאחרונה ב:

יידישע קאפ

משתמש סופר מקצוען
מנוי פרימיום
עיצוב גרפי
צילום מקצועי
עריכה והפקת סרטים
עימוד ספרים
ואם כבר דיברנו על שליטה גורפת ומדויקת ברוחב העמודות בטורים, אז מצאתי כאן סקריפט שנותן את זה בקלות אבל במגבלה מסויימת, הוא יודע לקבוע את רוחב הטורים של כל טבלה אם יש לה סגנון טבלה, לכאו' אין מגבלה על מספר הטבלאות ולכל סגנון אפשר לקבוע פרמטרים שונים.

הקוד:
קוד:
var t = 0; t < myTables.length; t++ ) {
        if ( myTables[t].appliedTableStyle.name == "xxx" && myWidths = [30, 10, 25, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "yyy" && myWidths = [10, 20] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "zzz" && myWidths = [10, 50, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
}

וזה קובץ הסקריפט, אין לי אחריות להפעלתו.
הקוד לא יעבוד!
כי בשורה הראשונה יש variable שלא הוגדרה...

בקובץ המצורף יש שורה נוספת בתחילת הסקריפט - ולכן רק הקובץ עובד.
 
נערך לאחרונה ב:

גלעד82

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
הקוד לא יעבוד!
כי בשורה הראשונה יש variable שלא הוגדרה...
תודה על ההערה. אתה יודע... copy paste ...
תיקנתי גם למעלה, זה עובד מצויין.

קוד:
var myTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
  
for ( var t = 0; t < myTables.length; t++ ) {
        if ( myTables[t].appliedTableStyle.name == "xxx" && myWidths = [30, 10, 25, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "yyy" && myWidths = [10, 20] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
        if ( myTables[t].appliedTableStyle.name == "zzz" && myWidths = [10, 50, 30] )
            for (var c = 0; c < myWidths.length; c++) myTables[t].columns[c].width = myWidths[c];
}
 

ז.רבינוביץ

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
דעתי הבעיה פה זה שאתה מריץ את הסקריפט מתוך עורך הסקריפטים (ESTK). בעצם, זה בסדר גמור לעשות את זה, רק שצריך לזכור לסמן את אינדיזיין כמתרה לסקריפט - שים לב שבתצלום המסך שלך למעלה בצד שמאל כתוב Extendscript Toolkit CS5 בתפריט. במקום זה, תבחר מהתפריט את גירסת האינדיזיין עליה תרצה להריץ את הסקריפט...

הבעיה היתה שהייתי צריך לבחור את הטבלה
לא הפעלתי את הסקריפט מתוך העורך אלא רגיל מתוך חלונית הסקריפטים

אולי מישהו ירים את הכפפה בכל נושא הטבלאות....
ויבנה סקריפט מקיף לטבלאות, אני אישית כבר עיצבתי כמה ספרים שהם 95% טבלאות
העבודה שם היא קשה מאוד כי כמעט הכל זה ידני
שמתי לב שכמעט לכל הבעיות שהיו לי יש סקריפטים ברשת שפתרו את הבעיה פלוס מינוס
אבל אולי מישהו ירכז את כולם ויבנה סקריפט מקיף

אני יפרט כמה בעיות מרכזיות שהיות לי:
  1. הפיכת כל הטבלאות משמאל לימין (כידוע אינדי הופכת אותם ביבוא) - יש סקריפט חינמי ברשת לזה
  2. להחיל סגנון פסקה על הפסקה שהטבלה עומדת עליה עיין כאן פתרון
  3. להחיל סגנון טבלה לפי פרמטר מסוים
  4. להחיל סגנון תא לפי פרמטר מסוים
  5. ביצוע חיפוש והחלפה בתוך טבלאות בלבד
  6. הגדרת רוחב עמודות אחיד לכל הטבלאות או משתנה לפי מס' עמודה כמו הדיון בנושא זה, כמו"כ הגדה הנ"ל לפי פרמטר מסויים
  7. מחיקת דריסות לסגנון טבלה ותא
אולי למישהו יש עוד שאלות בנושא זה שירכז אותו כאן
ואולי ישקיע אחד מכותבי הסקריפטים ויבנה סקריפט אחד מקיף לכל נושא הטבלאות
 

ז.רבינוביץ

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
נזכרתי בעוד...

8. המרת כל הטבלאות לפי פרמטר מסויים לטקסט - לסגנון פסקה מסויים שהוגדר
9. כנ"ל הפוך - כנראה זה כבר מורכב
 

ז.רבינוביץ

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
עוד...

10. מיון עמודות אלפביתי (יש סקריפט ברשת)
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט א'

א אַשְׁרֵי תְמִימֵי דָרֶךְ הַהֹלְכִים בְּתוֹרַת יְהוָה:ב אַשְׁרֵי נֹצְרֵי עֵדֹתָיו בְּכָל לֵב יִדְרְשׁוּהוּ:ג אַף לֹא פָעֲלוּ עַוְלָה בִּדְרָכָיו הָלָכוּ:ד אַתָּה צִוִּיתָה פִקֻּדֶיךָ לִשְׁמֹר מְאֹד:ה אַחֲלַי יִכֹּנוּ דְרָכָי לִשְׁמֹר חֻקֶּיךָ:ו אָז לֹא אֵבוֹשׁ בְּהַבִּיטִי אֶל כָּל מִצְוֹתֶיךָ:ז אוֹדְךָ בְּיֹשֶׁר לֵבָב בְּלָמְדִי מִשְׁפְּטֵי צִדְקֶךָ:ח אֶת חֻקֶּיךָ אֶשְׁמֹר אַל תַּעַזְבֵנִי עַד מְאֹד:
נקרא  29  פעמים

לוח מודעות

למעלה