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

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

עיצוב ותקשורת חזותית >> תוכן מקצועי

UX לצורת הדף
5.00 star(s) 2 ratings
התעדכן
מעצב? הכר את מקומך!
אפשר לומר שכמעצבים אנחנו מחולקים לשתי קבוצות: קבוצת העובדים: כמו שאומרים- החיים היפים.. זו באמת הקבוצה הטובה, בין אם זה עצמאי או שכיר, הסדר יום...
תגובות
6
התעדכן

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];
}
וזה קובץ הסקריפט, אין לי אחריות להפעלתו.
 

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

נערך לאחרונה ב:

ניוגראף

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

הקוד:
קוד:
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. כנ"ל הפוך - כנראה זה כבר מורכב
 

מבחר הקורסים המקצועיים של פרוג!

פְּרוֹגְלַיין | לוח אירועים

למעלה