Sunday, July 5, 2020

#1 2020-05-07 11:31:46 pm

MJ7
Member
Registered: 2020-05-07
Posts: 3

Format keynote slides with specific conditions

I am new to applescript'ing. Need your help to achieve my task.

I want to automate formatting my keynote.

My requirement is:
I have a Table with 4 columns and 3 rows.

Applescript should loop each of the row and
1. if it see  word "Bullet" it should get "Bullet"(bold)
2. extra new lines should be deleted.
Can anyone please help?

eg:
Bullets or numbers to text
Use bullets or numbers to present lots of text or a sequential process in a PowerPoint 2013 presentation.

On the VIEW tab, in the Presentation Views group, click Normal.

On the left-hand side of the PowerPoint window, click a slide thumbnail that you want to add bulleted or numbered text to.


On the slide, select the lines of text in a text placeholder or table that you want to add bullets or numbering to.


On the HOME tab, in the Paragraph group, click Bullets or Numbering.

Model: MacBook Pro
AppleScript: 2.11
Browser: Safari 537.36
Operating System: macOS 10.14

Offline

 

#2 2020-05-08 03:19:55 am

Yvan Koenig
Member
Registered: 2006-09-14
Posts: 4534

Re: Format keynote slides with specific conditions

From my point of view, you aren't clear.
Are you asking about the application "Keynote" or about the application "PowerPoint" ?

Yvan KOENIG running High Sierra 10.13.6 in French (VALLAURIS, France) vendredi 8 mai 2020 11:19:48

Offline

 

#3 2020-05-08 05:12:57 am

MJ7
Member
Registered: 2020-05-07
Posts: 3

Re: Format keynote slides with specific conditions

I am asking about application "Keynote"

Offline

 

#4 2020-05-08 07:01:52 am

Yvan Koenig
Member
Registered: 2006-09-14
Posts: 4534

Re: Format keynote slides with specific conditions

Thank you. I was afraid of that.

In the set of actions which may be executed via standard AppleScript upon Keynote, none is able to change the style of a chunk of text from standard to bold.
More, none is able to tell us if the contents of a cell is standard text or bold text.

Applescript:

tell application "Keynote"
   activate
   tell document 1 to tell current slide
       tell table 1 to tell cell 2 of column 1
           its value --> "Bullet" , plain text value
           its formatted value --> "Bullet" , plain text value
           try
               its text item --> error number -1728 from text item of cell 2 of column 1 of table 1 of current slide of document 1
           end try
       end tell
   end tell
end tell
tell application "System Events" to tell process "Keynote"
   set frontmost to true
   tell window 1
       class of UI elements --> {radio group, UI element, button, button, static text, scroll area, scroll area, scroll area, button, button, button, menu button, toolbar, static text, static text}
       position of scroll areas --> {{1900, 350}, {838, 141}, {696, 141}}
       tell scroll area 2 -- the one containing the table
           class of UI elements --> {}
       end tell
   end tell
end tell

So I really don't know how what you want would be achieved.

Yvan KOENIG running High Sierra 10.13.6 in French (VALLAURIS, France) vendredi 8 mai 2020 15:01:26

Last edited by Yvan Koenig (2020-05-08 07:02:43 am)

Offline

 

#5 2020-05-11 02:53:26 am

MJ7
Member
Registered: 2020-05-07
Posts: 3

Re: Format keynote slides with specific conditions

Thanks Yvan Koenig for your reply. I really appreciate your help.

As I am completely new to AppleScript, I didn't get much of the logic you explained. But still I am trying.

Let me explain what actually I am trying to achieve.

Every day I get a keynote from my team which I share with my higher management. Keynote formatting is messy. I have to manually format it. Its taking lot of time. Hence I try to do it via AppleScript.

1. Loop through all the slides(Tables in slides too). If Bullet text is there, just bold that text.

2. In all the slides, if there is a blank line(within each column of a table) then delete it.

These are the only 2 things which I am trying to achieve via AppleScript.

Hope I am clear this time.

Thanks, MJ7

Offline

 

#6 2020-05-11 03:45:01 am

Yvan Koenig
Member
Registered: 2006-09-14
Posts: 4534

Re: Format keynote slides with specific conditions

MJ7 wrote:

Thanks Yvan Koenig for your reply. I really appreciate your help.

As I am completely new to AppleScript, I didn't get much of the logic you explained. But still I am trying.

Let me explain what actually I am trying to achieve.

Every day I get a keynote from my team which I share with my higher management. Keynote formatting is messy. I have to manually format it. Its taking lot of time. Hence I try to do it via AppleScript.

1. Loop through all the slides(Tables in slides too). If Bullet text is there, just bold that text.


In my late message, I tried to explain that neither standard Applescript nor GUIScripting may achieve this task.
It seems that my explanations were not clear enough.
To be short, as far as I know, we have no way to change the content of a cell from standard to bold using AppleScript.

2. In all the slides, if there is a blank line(within each column of a table) then delete it.


Here is a way to remove empty rows

Applescript:

tell application "Keynote" to tell document 1
   tell current slide
       if exists table 1 then
           tell table 1
               repeat with r from (count rows) to 1 by -1
                   set isEmpty to true
                   tell row r
                       repeat with c from 1 to count columns
                           if value of cell c is not missing value then
                               set isEmpty to false
                               exit repeat
                           end if
                       end repeat
                   end tell
                   if isEmpty then delete row r
               end repeat
           end tell
       end if
   end tell
end tell

These are the only 2 things which I am trying to achieve via AppleScript.

Hope I am clear this time.

Thanks, MJ7



You were clear.

Yvan KOENIG running High Sierra 10.13.6 in French (VALLAURIS, France) lundi 11 mai 2020 11:44:54

Offline

 

Board footer

Powered by FluxBB

RSS (new topics) RSS (active topics)