Anchored page item in chained frames

Hi all,
I'm using an "anchored object" page item with custom positioning, x reference is relative to the right border of the frame. The anchor is in a preceding paragraph (could be multiple lines away) in order to enable text wrap around that object. We recently have turned to use multiple chained frames. When the anchor is close to the bottom of one frame, this causes the object to show up below that frame rather than to follow its imaginary reference line, where it used to be in a single frame.
Short from writing a script or plugin to do the adjustments, did I miss any built-in way to anchor objects so they follow the text flow of their surrounding (rather than their anchor) across frame breaks, and still allow for text wrap and frame relative x position?
Version in use is CS4, but I'd also like to hear if CS5 has improved in this regard.
Thanks,
Dirk

Dirk Becker  wrote:
Hi all,
I'm using an "anchored object" page item with custom positioning, x reference is relative to the right border of the frame. The anchor is in a preceding paragraph (could be multiple lines away) in order to enable text wrap around that object. We recently have turned to use multiple chained frames. When the anchor is close to the bottom of one frame, this causes the object to show up below that frame rather than to follow its imaginary reference line, where it used to be in a single frame.
Short from writing a script or plugin to do the adjustments, did I miss any built-in way to anchor objects so they follow the text flow of their surrounding (rather than their anchor) across frame breaks, and still allow for text wrap and frame relative x position?
Version in use is CS4, but I'd also like to hear if CS5 has improved in this regard.
Thanks,
Dirk
Hi, Dirk:
Some time ago, I think I found that the info here: http://www.adobepress.com/articles/article.asp?p=1324259 put me on the right path. IIRC, it has something to do with the position where the anchored object is inserted, which I think is at the beginning of the paragraph (again, IIRC I'm not rereading the article now.)
HTH
Regards,
Peter
Peter Gold
KnowHow ProServices

Similar Messages

  • How to get UIDRef of the selected page item in indesign cs3

    Hi,
        I want to get the UIDRef of the selected page item like Rectangle Frame. Can you show me the complete code snippet to get the UIDRef of selected Rectangle Frame. I need this UIDRef for getting the geometric bounds properties(width and height) of the selected rectangle frame to display the user in dialog box.
    Regards,
    K.Saravanan.

    Hi,
    UIDList selection;
    InterfacePtr<ISelectionManager> pSelectionManager(Utils<ISelectionUtils>()->GetActiveSelection(), ISelectionManager::kDefaultIID);
    if(pSelectionManager == nil){
    break;
    InterfacePtr<ILayoutTarget> pLayoutTarget(pSelectionManager->QueryConcreteSelectionBoss(kNewLayoutSelectionBoss), ILayoutTarget::kDefaultIID);
    if(pLayoutTarget == nil){
    break;
    selection = pLayoutTarget->GetUIDList(kDontStripStandoffs);
    Then, you can use this interface "IGeometry" to get information about spline size.
    InterfacePtr<IGeometry> pGeometry(selection.GetRef(i), IGeometry::kDefaultIID);
    if(pGeometry== nil){
    break;
    PMRect splineBounds = pGeometry->GetStrokeBoundingBox();
    PMReal width = splineBounds.Height();
    PMReal hight = splineBounds.Width();
    Regards,

  • Pages loose item persistence in frames

    I have these pages that branch to each other. This works fine, except when the HTMLDB pages are part of an intranet app and actually rendered inside a frame. When this happens, then my page cache is cleared even though I do not explicitly clear it with the URL argument. They transition to the correct pages within the frame, just the items are now cleared.

    The pages are public. I am using this code to process an insert and then return to the calling previous page:
    declare
    l_items varchar2(4000);
    l_values varchar2(4000);
    begin
    if :REQUEST = 'CREATE_NEW' then
    insert into hr.dwh_discussion(parent_id,subject,topic_text,author,category)
    values (:P26_PARENT_ID,:P26_SUBJECT,:P26_TEXT,:P26_AUTHOR,:P26_CAT);
    htmldb_application.g_page_text_generated := true;
    case :P26_RETURN_PAGE
    when '22' then
    owa_util.redirect_url('f?p=110:22::::26');
    when '23' then
    l_items := 'P23_ID,P23_ID_STATIC,P23_CONTENT_ID';
    l_values := :P26_ID_STATIC||','||:P26_ID_STATIC||','||:P26_PARENT_ID;
    owa_util.redirect_url('f?p=110:23::::26:'||l_items||':'||l_values);
    else
    null;
    end case;
    end if;
    end;
    If I leave out the items/values list from the URL, then page 23 will clear all its items when these pages are in a frame. If I leave off the items/values from the URL but the pages are on top, not in a frame, then the page 23 items are not cleared.
    I transition to page 26 from page 23 with these items/values in the URL:
    items - P26_SUBJECT,P26_PARENT_ID,P26_RETURN_PAGE,P26_ID_STATIC
    values - re - &P23_SUBJECT.,&P23_CONTENT_ID.,23,&P23_ID_STATIC.
    I am using a custom LDAP authentication scheme that makes a call to a PL/SQL function:
    return hr.util_ldap.connectAuthenticate;
    function connectAuthenticate(p_username in varchar2,p_password in varchar2)
    return boolean
    as
    l_retval PLS_INTEGER := -1;
    l_ssl PLS_INTEGER := -1;
    l_session DBMS_LDAP.session;
    l_attrs DBMS_LDAP.string_collection;
    begin
    DBMS_LDAP.use_exception := false;
    begin
    --connect to LDAP and authenticate
    l_session := DBMS_LDAP.init(hostname => g_host,
    portnum => g_port);
    exception
    when others then
    null;
    end;
    l_retval := DBMS_LDAP.simple_bind_s(ld => l_session,
    dn => g_pre||p_username||','||g_ldap_user_base,
    passwd => p_password);
    if l_retval = 0 then
    -- Disconnect from the LDAP server.
    l_retval := DBMS_LDAP.unbind_s(ld => l_session);
    return true;
    else
    return false;
    end if;
    exception
    when others then
    return false;
    end connectAuthenticate;

  • What is the best way to get the UID of any selected page item (frames, rectangle etc)?

    I need UID of any selected item on page and also array of UID's in case multiple selection happens. How can I achieve it?
    One way I know is to write an observer and attach it on every new page Item created, but that way the system might become slow and also
    the behavior will be unpredictable in case of multiple selections.
    Can some one suggest a better way to do it?

    The selection subsystem hides most ideas of direct adressing (e.g. UID of page item(s) or story) into the concrete selection, while from the outside you only work on the suite interfaces of the abstract selection. So you don't ask whether the selection is some kind of page item and you don't peek at the actual items. Instead you ask about their capabilities and applied values.
    Attaching observers to page items has nothing to do with the selection, because they only notify about changes on those page items - which could also be caused by scripts or anything else. Even then, the most relevant changes go thru the kDocBoss as single point to attach an observer, rather than thru all those page items.
    Regarding speed - the selection has many optimizations, for example "lazy" notifications can be deferred until they become appropriate for an UI update, they might even become aggregated / optimized away.
    One starting point into the selection when you come from nowhere would be ISelectionUtils. Your selection observer might also pass interesting parameters.
    Dirk

  • How to get notified when ever I select any frame (any page item) ?

    I have added a observer class in my plugin which derives from ActiveSelectionObserver.
    But my observer constructor is not getting called when i select a page item. (In short, I am not getting notified about the selection)
    below is my code:
    class CSDTSelectionObserverImpl : public ActiveSelectionObserver
    public:
      CSDTSelectionObserverImpl(IPMUnknown *boss);
       virtual ~CSDTSelectionObserverImpl();
    protected:
       virtual void    HandleSelectionChanged (const ISelectionMessage*);
       virtual void HandleSelectionAttributeChanged(const ISelectionMessage* selectionMessage);
    CREATE_PMINTERFACE(CSDTSelectionObserverImpl, kCSDTSelectionObserverImpl)
    CSDTSelectionObserverImpl::CSDTSelectionObserverImpl(IPMUnknown *boss) : ActiveSelectionObserver(boss,IID_ICSDTSELECTIONOBSERVER) { }
    CSDTSelectionObserverImpl::~CSDTSelectionObserverImpl() { }
    void CSDTSelectionObserverImpl::HandleSelectionChanged(const ISelectionMessage* selectionMessage) { }
    void CSDTSelectionObserverImpl::HandleSelectionAttributeChanged(const ISelectionMessage* selectionMessage) {  
    if (selectionMessage && selectionMessage->WasSuiteAffected(IID_ILAYOUTSELECTION_ISUITE))
    Also, In my .fr file, I have added below:
    AddIn
      kDocBoss,
      kInvalidClass,
        IID_ICSDTSELECTIONOBSERVER, kCSDTSelectionObserverImpl,
    Do I need to implement the ILayoutSelectionSuite as well to get the notification on page item selection or implementing Observer via ActiveSelectionObserver is sufficient?
    Please help.

    I tried below in debug mode , but it gave me error while execution (when the line of code was called by in-design)
    InterfacePtr<ILayoutSelectionSuite> iLayoutSelectionSuite(fCurrentSelection, UseDefaultIID());
            if (iLayoutSelectionSuite == nil)
                break;
    iLayoutSelectionSuite->SelectPageItems(selection,Selection::kReplace,Selection::kDontScrollLayoutSelection); // Error
    So I was not able to get the UIDList of the selected page items, hence I used below code and this is working.
      InterfacePtr<const IIntegratorTarget> iIntegratorTarget(iLayoutSelectionSuite, UseDefaultIID());
            std::auto_ptr<IIntegratorTarget::TargetSuiteCollection> selectionSuites(iIntegratorTarget->GetTarget(ILayoutTarget::kDefaultIID));
            for(IIntegratorTarget::TargetSuiteCollection::size_type i = 0; i < selectionSuites->size(); i++)
                ILayoutTarget* target = (ILayoutTarget*)selectionSuites->at(i).get();
                if(!target)
                    continue;
                selection = target->GetUIDList(kDontStripStandoffs);
    But it would have been much easier and logical if I can get it using IlayoutSelectionSuite or if there is some better approach ?
    Please let me know.
    ileleLayoutSelectio
    Let me

  • [JS] Page item (rectangle frame) width and height

    Following is my attempt at writing a function for width and height. It appears to work on rotated and sheared objects. Can anyone tell me if I'm on the right track?
    >function WidthAndHeight(myRectangle) // Returns an array [width,height]
    ]var myRectangleTopLeft = myRectangle.resolve(AnchorPoint.topLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleTopRight = myRectangle.resolve(AnchorPoint.topRightAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleBottomLeft = myRectangle.resolve(AnchorPoint.bottomLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    ]var d1x = (myRectangleTopRight[0][0] - myRectangleTopLeft[0][0]);
    var d1y = (myRectangleTopRight[0][1] - myRectangleTopLeft[0][1]);
    var myWidth = hypotenuse(d1x,d1y);
    var d2x = (myRectangleTopLeft[0][0] - myRectangleBottomLeft[0][0]);
    var d2y = (myRectangleTopLeft[0][1] - myRectangleBottomLeft[0][1]);
    var myHeight = hypotenuse(d2x,d2y);
    ]return [myWidth,myHeight];
    ]function hypotenuse(d1,d2)
    ]]return Math.sqrt ( Math.pow(d1,2) + Math.pow(d2,2) );

    Dave, you are absolutely right (no surprise here) about always returning points. I'm not sure, but I think this may actually be an InDesign bug. At the end of the 'resolve' method the 'true' value is meant to indicate 'use ruler units', I believe. Having read the documentation, however, it does seem like certain transformation coordinate spaces functions only work in points.
    To make this a more complete function, I've updated it to include a conversion to the current ruler units. I'm using the UnitValue object, and perhaps I'm misunderstanding something, but I cannot easily convert to a new UnitValue using the ruler measurements enumerations (it requires a string value to represent the target units). So I've had to include a switch function to get from the enumeration to the string value. Also, the UnitValue object does not seem to work with agates, and I haven't gone so far as to write my own conversion function for that, so the function has to exit with an alert if the user has agates as their ruler units.
    If anyone can offer a more elegant way of dealing with this, it would be great. Or even better, some insight into why the resolve method does not seem to honour the ruler units. This _is_ getting a bit over-the-top for a simple width and height function. Maybe Adobe will consider just adding the property to the page item and putting us all (well, certainly me, anyway) out of our misery (I've put in a feature request).
    > function WidthAndHeight(myRectangle) // Returns an array [width,height]
    ]] var myRectangleTopLeft = myRectangle.resolve(AnchorPoint.topLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleTopRight = myRectangle.resolve(AnchorPoint.topRightAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleBottomLeft = myRectangle.resolve(AnchorPoint.bottomLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    ]] var d1x = (myRectangleTopRight[0][0] - myRectangleTopLeft[0][0]);
    var d1y = (myRectangleTopRight[0][1] - myRectangleTopLeft[0][1]);
    var myWidth = hypotenuse(d1x,d1y);
    var d2x = (myRectangleTopLeft[0][0] - myRectangleBottomLeft[0][0]);
    var d2y = (myRectangleTopLeft[0][1] - myRectangleBottomLeft[0][1]);
    var myHeight = hypotenuse(d2x,d2y);
    ]] var myHorizontalUnits = unitsEnumToString(app.documents[0].viewPreferences.horizontalMeasurementUnits);
    var myVerticalUnits = unitsEnumToString(app.documents[0].viewPreferences.verticalMeasurementUnits);
    ]] myWidth = new UnitValue(myWidth,"points");
    myHeight = new UnitValue(myHeight,"points");
    ]] myWidth = myWidth.as(myHorizontalUnits);
    myHeight = myHeight.as(myVerticalUnits);
    ]] return [myWidth,myHeight];
    ]] function hypotenuse(d1,d2)
    ]]]] return Math.sqrt ( Math.pow(d1,2) + Math.pow(d2,2) );
    ]] function unitsEnumToString(myUnitsEnum)
    ]]]] switch(myUnitsEnum)
    ]]]]]] case 2054188905 :
    ]]]]]]] return "points";
    ]]]]]] case 2054187363 :
    ]]]]]]] return "picas";
    ]]]]]] case 2053729891 :
    ]]]]]]] return "inches";
    ]]]]]] case 2053729892 :
    ]]]]]]] return "inches decimal";
    ]]]]]] case 2053991795 :
    ]]]]]]] return "millimeters";
    ]]]]]] case 2053336435 :
    ]]]]]]] return "centimeters";
    ]]]]]] case 2053335395 :
    ]]]]]]] return "ciceros";
    ]]]]]] default :
    ]]]]]]] alert("Cannot convert to the current ruler units. Sorry.");
    exit();

  • Text wrap on Master Page items

    RE:  InDesign CS2 on Windows Vista
    Hello,
    I inserted a graphic on both of my master pages and applied a text wrap to them.  However, on my document pages, my text does not wrap around the graphics.  (In the Text Frame Options dialog box, the "Ignore Text Wrap" box is not checked.)  I know I can either override my master page items (and insert the graphic again) or control-shift-click on the graphic and force the text to wrap around it.  But that puts another link to the graphic in my document...and I'm trying to minimize the file size.
    Do you have any ideas on how to make the text wrap on the master pages work on the document pages?

    Text wrap on masters is not honored on live pages in CS2. It was added as feature in CS3.
    Bob

  • How can I create a page item at a certain LEVEL within a layer?

    I mean, if I have one frame that I brought to the front, and one that I sent to the back, can I create an item that is between the two? Right now everything I create is automatically on top, and I have to do some scripting to figure out where the other items are at, and then step the new item back, back, back, etc. until I get to where I want, testing at every step to see if it's gone too far.
    I can't find a property I can set to move a page item directly to the place in the front-to-back order that I want.
    Am I missing something?

    Z-ordering is not maintained in scripting properties, but you can use methods. Let's assume topframe and newframe. You can then use newframe.sendToBack(topframe);. Note that this is distinct from newframe.sendToBack(), which sends it all the way back. Check the docs, there are also some requirements for co-parantage between topframe and newframe.

  • [CS3 JS] Getting a page item by its script label

    I have a text frame on a master page with its script label set. In my script, I am trying to get a reference to the text frame with this:
    var doc = app.activeDocument;
    var spread = doc.masterSpreads[0];
    var tabFrame = spread.allPageItems.item("TabLeft");
    I get the error "spread.allPageItems.item is not a function"
    Any help will be appreciated. Thanks.
    Rick

    Hi Rick,
    spread.allPageItems returns a flattened array of all of the page items in the spread, at any level of the hierarchy (i.e., inside groups and other page items). Is that what you want? Sadly, allPageItems does not benefit from the special case where we use the label as a name, so you'll have to iterate if that's what you want.
    As Peter says (thanks, Peter!), spread.pageItems.item("label") gives you all of the page items whose label matches the string, but it does so in sort of a weird way--you'll always get a page item object. If no page items match, you get an invalid page item; if one matched, you get a single page item, and if multiple page items matched, you get a page item object that actually contains multiple page items. It can take a little testing to figure out exactly what it is that was returned.
    Thanks,
    Ole

  • Include Master Page Items in Table of Contents

    I am building a table of contents in InDesign CS3. I've got paragraph style applied to my section heading and well as section subheadings. However, my sections headings are located on Master Pages (as they are repeating on several pages), and my section subheadings are located directly on the pages themselves (as they do not repeat).
    When I set up my table of contents only my section subheadings show up, not both. When I go to a page with a section heading and override the master page item and then update my table of contents my section header shows up. Is there any way to include my secion headers without overriding the master page items?
    -Carina

    I found this article about using Power Headers to override master frames that addresses the table of contents issue: http://in-tools.com/article/power-headers/power-headers-overrides-master-frames/
    Hope this helps!

  • [AS CS3] Bug? All Page Items - grouped items w labels

    Can anyone confirm this behaviour for me. I would classify it as a bug, but maybe the logic for it not being a bug escapes me.
    The command "all page items" is supposed to return a (flat) list of every page object, right? I would suspect that I should be able to address any object in the list. But I can only seem to address an object when it's inside of a group.
    I am trying to get the text of a text frame that has a label. It may or may not be inside a group. I can certainly do a try/error block to try a script statement for objects in a group or not in a group. But I think that "all page items" should be able to handle it directly.
    Here's a test script: ------
    tell application "Adobe InDesign CS3"
    tell document 1
    get label of all page items
    set myUngrouped to contents of text frame "some label" --only works when objects ungrouped, this is expected
    set myText to (get contents of text frame "some label" of all page items)
    --both statements work ONLY when objects grouped
    set myText to (get contents of every page item of all page items whose label is "some label")
    end tell
    end tell
    Steps:
    Make a new document.
    Draw a text frame. Type some text into it.
    Label the frame "some label".
    Draw another empty graphic or text frame.
    Run script
    -->result is, myText statements error out. Why is this?
    Now group all items on page.
    Run script.
    -->result is, myUngrouped can't continue. This is expected.
    Comment out myUngrouped statement
    Run script.
    -->result is, myText statements work OK.

    On 19/8/08 1:14 AM, "SuperMacGuy" <[email protected]> wrote:<br /><br />> set myText to (get contents of every page item of all page items whose label<br />> is "some label") <br /><br />The syntax is a bit tricky. The key is that all page items returns a list,<br />so what you want is certain items -- not page items -- from that list. So:<br /><br />set myText to (every item of all page items whose label is "some label")<br /><br /><br />-- <br />Shane Stanley <[email protected]>

  • [CS3 Server] Page items copy problem

    I'm trying to copy page items from one document to other. I use kCopyCmdBoss command.
    Command processes successfully but extra pages are generated in destination document and InDesign fails after opening it.
    What could be a problem?
    Thanks in advance.

    -- This works in CS4:
    tell application "Adobe InDesign CS4"
    tell document 1
    tell page 2
    set d to duplicate page item "textframe1" -- the text frame labeled "textframe1"
    -- FYI, d has a class of list:
    -- "text frame id 328 of page id 237 of spread id 232 of document "Untitled-2" of application "Adobe InDesign CS4""
    end tell
    move d to page 4 -- moves to 0,0 on pg4
    end tell
    end tell

  • Convert page coordinate to page item coordinate

    Hello All,
    I have problem regarding co-ordinate system.
    I have Rects in page co-ordinate system  and want to convert with respect to pageItem co-ordinate.
    This Rects are resides within a frame, my requirement is to convert pagecoordinateRect to innerRect.
    I have tried using TransformParentRectToInner Or TransformPasteboardRectToInner  using IGeometry interface of page item.
    Left and Right points are converted but Top and Bottom points are not updated.
    Please help me to sort out above problem.
    Thanks
    Govind

    getUserPoint(int x, int y)
    Gets the user space point corresponding to the mouse click.
    getUserPoint in Java API converts from screen to user space ( lat/lon or whatever coordinate system you are using)

  • Convert page co-ordinate to page item co-ordinate

    Hello All,
    I have problem regarding co-ordinate system.
    I have Rects in page co-ordinate system  and want to convert with respect to pageItem co-ordinate.
    This Rects are resides within a frame, my requirement is to convert pagecoordinateRect to innerRect.
    I have tried using TransformParentRectToInner Or TransformPasteboardRectToInner  using IGeometry interface of page item.
    Left and Right points are converted but Top and Bottom points are not updated.
    Please help me to sort out above problem.
    Thanks
    Govind

    Not sure if this question should be asked in scripting or SDK forum, but this is definitely not the right place. The folks who hang out here don't do much coding.

  • How to separate my adornments from effects applied to page item?

    Hi All,
    I have my own graphical page item. And I also draw special border and, the most important, my special label if my object is bigger than its frame. (Text frame behaviour is the example for me).
    I tried to draw adornments in MyShape::DrawPageItemAdornments reimplemented method. I also tried to draw my adornments in the way of FrameLabel SDK sample adding my IAdornmentShape implementation.
    But in all these cases my adornments have drop shadow and all other effects applied to the item.
    Is there any possibility to separate adornments from the effects like drop shadow?
    I need your help very much!
    Thank you in advance.
    Sofia

    Any new iCloud account will be assigned an @icloud.com address at this point.  If LinkedIn will accept this, you can create a second iCloud account on your device by going to Settings>Mail,Contacts,Calendars>Add Account>iCloud.  However, mail synced with a "secondary" iCloud account like this will only be fetch, as push is only supported in the primary account.
    Otherwise, you'll have to set it up using another email provider like Gmail.

Maybe you are looking for

  • Korean characters not displaying on itunes

    I transferred my korean music to my macbook from windows computer...In my folder or file, it shows in Korean perfectly fine with no gibberish language. However, when I open them in itunes, in itunes a couple of the songs do not display in the korean

  • Mail Alerts from the BW Servers

    Hello, We wnat to implement a scenario where by if any of the data loads are failed, the system should send out an email to the team, and a SMS with the same information to the mobile also. So Anybody can help me in providing with the details on abou

  • Purchased albums- do not sync in order

    My purchased albums do NOT sync in the playlist order of the album. Shuffle is NOT on. Now I am getting messages that my software is too old, click on the tab on my nano. WHAT TAB? Gateway crap desktop   Windows XP   Intel Pentium III, over 512mb RAM

  • Alternative to Webassist Dinamic Flash Charts?

    Hi all, I just bought Dinamic Flash Chart from webassist and I dicovered the bad way it has too much limitations. Is there an alternative to integrate in dreamweaver (8)? Thanks in advance. tony

  • TS2446 Forgot the answer of security question

    I was forgot the security Q&A,how/where do I reset these security question?