16 Replies Latest reply on Nov 4, 2016 2:10 AM by Obi-wan Kenobi

    table position

    martine55225436

      I want to create 5 small tables in a textframe side by side. So I create them this way:

       

      for(var i = 0; i < 5; i++) {

          var table = textFrame.insertionPoints[-1].tables.add();

          table.bodyRowCount = 2;

          table.columnCount = 1;

          table.width = 16;

          }

       

      However, this code positions the tables one below the other and not side by side.

      I haven't found out so far how I can achieve this. Help very appreciated.

        • 1. Re: table position
          Jump_Over Level 5

          Hi,

          Are you able to do it manually (in GUI)?

          • 2. Re: table position
            martine55225436 Level 1

            No! :-)

            I have tried to pack the tables into textframes but that didn't work well.

            • 3. Re: table position
              Obi-wan Kenobi Adobe Community Professional

              Jarek,

               

              I would be very interested by a way to do it!

               

              I thought about 2 ways: insert them into another table or place them into anchored inline text frames!

               

              (^/)

              • 4. Re: table position
                Obi-wan Kenobi Adobe Community Professional

                I've done it into auto-resized text frames! Interesting way! 

                 

                (^/)

                • 5. Re: table position
                  Laubender Adobe Community Professional & MVP

                  Hi together,

                  yes—using anchored frames is possible.

                   

                  Here some code:

                   

                  // Text frame selected:
                  var textFrame = app.selection[0];
                  
                  // Let's build a text frame with a table somewhere on the spread:
                  var frameWithTable = app.documents[0].layoutWindows[0].activeSpread.textFrames.add
                  (
                      {
                          geometricBounds : [0,0,100,16],
                          strokeWidth : 0,
                          strokeColor : "None",
                          fillColor : "None"
                      }
                  );
                  
                  // Adding a table:
                  frameWithTable.insertionPoints[0].tables.add
                  (
                      {
                          bodyRowCount : 2,
                          columnCount : 1,
                          width : 16,
                          contents : ["Cell 1", "Cell 2"]
                      }
                  );
                  
                  // Let's fit the frame to the table:
                  frameWithTable.fit(FitOptions.FRAME_TO_CONTENT);
                  
                  // Duplicate and anchor the duplicates to the selected text frame:
                  for(var n=0;n<5;n++)
                  {
                      var dup = frameWithTable.duplicate();
                      dup.anchoredObjectSettings.insertAnchoredObject
                      (
                          textFrame.parentStory.insertionPoints[-1] ,
                          AnchorPosition.INLINE_POSITION
                      );
                     
                      // Maybe we need a separator character between the frames?
                      textFrame.parentStory.insertionPoints[-1].contents = " ";
                  }
                  
                  // Remove the frame we built on the spread:
                  frameWithTable.remove();
                  

                   

                  Have fun!

                   

                  Cheers,

                  Uwe

                  1 person found this helpful
                  • 6. Re: table position
                    Obi-wan Kenobi Adobe Community Professional

                    Uwe or Jarek,

                     

                    A simple question: How can I find tables that follow and catch them (as an array to be exploited later)?

                    Only interested by tables groups (2, 3, 4, … tables), not isolated (1) table.

                     

                    Thanks in advance! 

                     

                    (^/)

                    • 7. Re: table position
                      Jump_Over Level 5

                      Hi,

                       

                      An Array of Tables from anchored textFrames could be called like:

                      thisTextFrame.textFrames.everyItem().tables
                      

                       

                      However Uwe's code give us a simple monostructured ones (no isolated...:)

                       

                      Jarek

                       

                      PS. Are you detecting Chrome getting frozen while this forum's post editor is fired, guys?

                      FireFox doing well on my side (Win 10, PC)...

                      • 8. Re: table position
                        Obi-wan Kenobi Adobe Community Professional

                        Thanks Jarek! 

                         

                        It's the first way for me. I'm working on Uwe's approach.

                        My 2nd way is to insert tables that follow (as usual in current text) in a new table.

                        So, I've the same question:  How can I find and catch them?

                         

                        Thanks in advance!

                         

                        (^/)

                         

                        I don't use Chrome!  ;-)

                        • 9. Re: table position
                          Laubender Adobe Community Professional & MVP

                          Hi Obi-wan,
                          I'm not sure what you are asking here.

                          Do you want to track tables that are inserted with inline anchored text frames?

                           

                          Example
                          Find all nested tables in the selected text frame.
                          Where the depth of nesting is 1 . That means find a table that sits inside an anchored text frame.

                          The first table in the text frame should not count. It is not nested.

                           

                          FindNestedTables-in-SelectedTextFrame.png

                           

                          We could do:

                           

                          app.selection[0].textFrames.everyItem().tables.everyItem().getElements();
                          

                           

                          That would result in an array of 10 tables.

                           

                          You could add all "regular" tables in the text frame as well:

                           

                          var tablesArray = app.selection[0].tables.everyItem().getElements();
                          var nestedTablesArray = app.selection[0].textFrames.everyItem().tables.everyItem().getElements();
                          nestedTablesArray.concat(tablesArray);
                          

                           

                          That array would contain 11 tables.

                           

                          How deep do you want to nest your tables?

                           

                          Regards,
                          Uwe

                          • 10. Re: table position
                            Obi-wan Kenobi Adobe Community Professional

                            Hi Uwe,

                             

                            I would like to have an answer to this old topic:

                             

                            Select several tables …

                             

                            I mean: in this topic, I wanted to select the 3 tables that follow in a current text frame so that I can place them, one table per cell, in a new table.

                            The deal is to "horizontally" place following tables, eventually "marked" with a condition or a specific para style.

                             

                            The way you propose with "inline" text frames is an excellent other way I take too.

                             

                            I would like to have the 2 layout options depending on the layout context.

                             

                            (^/) 

                            • 11. Re: table position
                              Laubender Adobe Community Professional & MVP

                              Hi Obi-wan,

                              hm yes, that would work either way. Just single out the text with the three tables and work with the special characters that hold the tables. Would you want to get the tables from that text by text.tables.everyItem().getElements() and loop through the array to get the character that you'd like to move? Or would you like to do a Text Search with special character <0016> on the text?

                               

                              But: Since your case is more special than the OP's one, I suggest we maybe should continue to discuss your problems in a different thread. Let's have the original poster—martine55225436—the say on that.

                               

                              Regards,
                              Uwe

                              • 12. Re: table position
                                Kai Rübsamen Adobe Community Professional

                                Sadly it would be possible for 4, not 5 tables, with the spaning columns feature: Split 4

                                • 13. Re: table position
                                  Obi-wan Kenobi Adobe Community Professional

                                  Hi Kai,

                                   

                                  The problem with Uwe's way (anchored inline text frames) and yours (span feature) is that we can't correctly control the horizontal space between the tables. It's a reason for me to have the other option!

                                   

                                  (^/)

                                  • 14. Re: table position
                                    Obi-wan Kenobi Adobe Community Professional

                                    Uwe,

                                     

                                    I answer you and then we could go on on my old topic! 

                                     

                                    In a layout, I could need to horizontally place following tables but not systematically (for different reasons).

                                    So, my idea is to manually apply a condition to the "table support" para and so "mark the tables to be treated.

                                    When done, I launch the script that loops through the doc to find these "conditional" paras containing each a table!

                                    At this step, 2 options: yours or mine!

                                    Imho, yours could be lighter and more interesting, but it depends on the context! 

                                    Maybe, 2 conditions to manage the 2 ways! Of course, in the same script!

                                     

                                    I don't want you to write the script. However, your help could be great (Jarek and Kai too!) to validate my code writing!! 

                                     

                                    Last comment on this point here! Next at:  Select several tables …

                                     

                                    (^/)

                                    • 15. Re: table position
                                      Laubender Adobe Community Professional & MVP

                                      Oh we can control the positions.
                                      By using tabulators perhaps.

                                       

                                      HorizontalPositioning-InlineTextFrames-WithTables.png

                                      Regards,
                                      Uwe

                                      • 16. Re: table position
                                        Obi-wan Kenobi Adobe Community Professional

                                        Yeap! I think too but not really easy! use insets management in the "layout table" could be cooler! 

                                         

                                        (^/)