FDK - change level highest element (NoName) to get a new book of FM valid
Hello world
Using the FDK I saved a DITAMAP (referring to several files of concept) as a book with FM components, and the resulting book is not valid with the highest level of NoName element.
If I select the NoName element in view of structure of FrameMaker, then concept within the catalogue of the item and click the button change my book is now valid after an update of the book.
Is there a way using the FDK to achieve a valid book after the save operation?
Using the FDK I'm outlining a way to select all the items in the book, all packaging in a part of the concept, and then selecting the item NoName and unpacking. For me, this option feels like I correct structure subsequently was not defining the structure of the recorded book.
The newly created file book already has concept element definitions without importing it.
This would be a case of some sort by specifying a template to use when recording?
If I can give you more details please do not hesitate to ask.
Any input at all would be much appreciated.
Hi Joey,
Getting around in tree structure with code FDK is tricky business. It is difficult to get your head around a F_ElementRangeT structure and what really mean members. Ten years to do this and I still barely get it
So, at some point I hunkered down and made a lot of experiences, then built a function that manages the determinations range element for me, based on any place that I could think of that I might want to place an insertion point. I rely on that now very strongly and don't think much on the beaches of the item more. He has worked for a long time so I don't mess with it, just call it if necessary. I send an existing item ID, and then a constant that specifies where I'm looking to go from this element.
I pasted this function below, called ws_SetElementRange(). I guess that this name is not if great because it isn't really anything... it simply defines a structure of range item for you according to a reference that is passed. Then, you can use this reference to set the insertion point to with the FP_ElementSelection property, if you wanted to. I've included an example of another function that does just that, called ws_SetInsertionPoint(). At that time, I expect that my code struck these two functions, a billion times or so, because as I said, I look at them the strongly.
Note that there is a call to a function ws_GetElementTag() in there that will not solve for you. You will need to replace it with another method of obtaining the tag of the element. The tag is important to determine if the reference item is a text node or not, because those that cause different contingencies.
In addition, I see here some old notations that I could not use it today, but I think that everything is valid C. You may want to modernize the way in which the various members of the structure are referenced, but probably should not if you do not want.
I hope this can be useful.
Russ
#define ws_BEFORE_ELEMENT 1
#define ws_AFTER_ELEMENT 2
#define ws_BEGINNING_OF_BRANCH 3
#define ws_END_OF_BRANCH 4
#define ws_SELECT_ELEMENT 5
#define ws_SELECT_CONTENTS 6
UIntT ws_SetElementRange (F_ObjHandleT docId,
F_ObjHandleT elemId,
IntT location,
F_ElementRangeT * turning it over)
{
Return UIntT = True;
F_ObjHandleT tempElemId;
StringT elementTag;
TextRange F_TextRangeT;
If (! docId |! elemId) return False;
elementTag = ws_GetElementTag (docId, elemId, False);
If it is a text node, convert us 'start of the branch.
'before the element"and the same thing in 'end of branch',
respectively. They are functionally the same things and
the before/after the routines that happened to work properly. The
others have no text nodes, I don't know why but it
really doesn't matter.
If (Sie (elementTag))
{
if(location == ws_BEGINNING_OF_BRANCH)
location = ws_BEFORE_ELEMENT;
Another yew (rental is ws_END_OF_BRANCH)
location = ws_AFTER_ELEMENT;
}
Switch (rental)
{
case ws_BEGINNING_OF_BRANCH:
(* turning it over).beg.parentId = (* returning).end.parentId = elemId.
(* turning it over).beg.childId = (* returning) =.end.childId
F_ApiGetId (docId, elemId, FP_FirstChildElement);
If (!) (* Returning) ().beg.childId)
(* turning it over).beg.childId = (* returning).end.childId = 0;
(* turning it over).beg.offset = (* returning).end.offset = 0;
break;
case ws_END_OF_BRANCH:
(* turning it over).beg.parentId = (* returning).end.parentId = elemId.
(* turning it over).end.childId = (* returning).beg.childId = 0;
If the element has no children, we must define the
shifts up. This will put us at the end of everything
text which may exist.
tempElemId = F_ApiGetId (docId, elemId, FP_FirstChildElement);
If (tempElemId)
(* turning it over).beg.offset = (* returning).end.offset = 0;
on the other
(* turning it over).beg.offset = (* returning).end.offset = FV_OBJ_END_OFFSET;
break;
case ws_BEFORE_ELEMENT:
We can get before the HLE.
tempElemId = F_ApiGetId (docId, elemId, FP_ParentElement);
If (tempElemId)
{
(* turning it over).beg.parentId = (* returning) =.end.parentId
F_ApiGetId (docId, elemId, FP_ParentElement);
(* turning it over).beg.childId = (* returning).end.childId = elemId.
(* turning it over).beg.offset = (* returning).end.offset = 0;
}
another return = False;
break;
case ws_AFTER_ELEMENT:
We can get after the HLE.
tempElemId = F_ApiGetId (docId, elemId, FP_ParentElement);
If (tempElemId)
{
(* turning it over).beg.parentId = (* returning) =.end.parentId
F_ApiGetId (docId, elemId, FP_ParentElement);
(* turning it over).beg.childId = (* returning) =.end.childId
F_ApiGetId (docId, elemId, FP_NextSiblingElement);
If (!) (() * Back).beg.childId) (* returning).beg.childId = (* returning).end.childId = 0;
(* turning it over).beg.offset = (* returning).end.offset = 0;
}
another return = False;
break;
case ws_SELECT_ELEMENT:
If it is a text node, we simply retrieve the element
text vary and convert it. It's the same for the selection
the element or the content, because the element's content
If (Sie (elementTag))
{
textRange = F_ApiGetTextRange (docId, elemId, FP_TextRange);
(* turning it over) .beg = F_ApiTextLocToElementLoc (docId, & textRange.beg);
(* turning it over) .end = F_ApiTextLocToElementLoc (docId, & textRange.end);
}
on the other
{
(* turning it over).beg.parentId = (* returning) =.end.parentId
F_ApiGetId (docId, elemId, FP_ParentElement);
(* turning it over).beg.childId = elemId.
(* turning it over).end.childId = F_ApiGetId (docId, elemId, FP_NextSiblingElement);
If (!) (() * Back).end.childId) (* returning).end.childId = 0;
(* turning it over).beg.offset = (* returning).end.offset = 0;
}
break;
case ws_SELECT_CONTENTS:
If it is a text node, we simply retrieve the element
text vary and convert it. It's the same for the selection
the element or the content, because the element's content
If (Sie (elementTag))
{
textRange = F_ApiGetTextRange (docId, elemId, FP_TextRange);
(* turning it over) .beg = F_ApiTextLocToElementLoc (docId, & textRange.beg);
(* turning it over) .end = F_ApiTextLocToElementLoc (docId, & textRange.end);
}
on the other
{
The end offset depends on whether the element has children
tempElemId = F_ApiGetId (docId, elemId, FP_FirstChildElement);
(* turning it over).beg.parentId = (* returning).end.parentId = elemId.
If (tempElemId)
(* turning it over).beg.childId = tempElemId;
other (* returning).beg.childId = 0;
(* turning it over).end.childId = 0;
(* turning it over).beg.offset = 0;
If (tempElemId)
(* turning it over).end.offset = 0;
other (* returning).end.offset = FV_OBJ_END_OFFSET;
}
break;
}
DS(&elementTag);
return return;
}
UIntT ws_SetInsertionPoint (F_ObjHandleT docId,
F_ObjHandleT elemId,
IntT location)
{
Return UIntT = True;
F_ElementRangeT er.
If (! docId |! elemId) return False;
Return = ws_SetElementRange (docId, elemId, localization, &er);)
if(returnVal == true)
F_ApiSetElementRange (FV_SessionId, docId, FP_ElementSelection, &er);)
return return;
}
Tags: Adobe FrameMaker
Similar Questions
-
I am a registered owner of first items 12 and got a new computer, but it does not have a CD/DVD player then, how can I install it on my new computer
reneethanig
What is the before and after the operating system?
If you have the serial number purchased for your first items 12 on a particular operating system, you can download the installation for this files go to the following link and then insert your serial number purchased when asked.
For any question or need more information, feel free to ask.
Thank you.
RTA
-
Change HARD drive on a laptop computer brand new - is warranty still valid?
Just ordered a new HP envy 17-J008eo laptop for bikes.
I want to chage the harddrive provided on a SSD hard drive and now I wonder about the Finland HP warranty policy, Europe - should it be cancelled if I change the HARD drive? (planning on ordering extended 3 year warranty as well)
Hello
According to my understanding, that you do not want to install SSD drive on the Unit came while the SDS disc is not covered by the HP warranty & if you need to service your unit, you may need to install the Orginal drive which as well as unity.
-
I forgot my Adobe ID code I was able to get a new password and my email has not changed, but it seems to me to need an Adobe ID to start using my Photoshop elements 12 new. What should do? It's incredibly frustrating!
Thanks, Sarika, for trying to help me. That link led me to more than one set of steps and I didn't know what to do. But I started to change my password for the 2nd time and struck me somehow to where I can now user ss12.
-
The highest element of several bays
I have four tables 1 d (each approximately 80 long items) stored in locations slightly different in a cluster of 'Super' (the most relevant levels can be seen in the image below). I need to find the value of the highest element in these paintings. I came with two methods, but it's getting late in the day and they all seem sadly convoluted. What is the best/better way to do this? In a similar example, I also find the item lowest of four different pictures.
Use the function Array Max & Min
Ben64
-
I try to open a new tab, but whenever I get a new window no matter what I tried to change the settings or uninstall or reinstall of firefox it just does the same thing its never happened before why now?
Create a new profile as a test to see if your profile is the source of the problems.
See "basic troubleshooting: a new profile:
There may be extensions and plugins installed by default in a new profile, so check that in "tools > Modules > Extensions & Plugins" in case there are still problems.
If this new profile works then you can transfer files from the old profile to the new profile, but make sure not to copy corrupted files.
See:
-
my wifi password has been changed and now I want to get back in touch with the new password HOW
my wifi password has been changed and now I want to get back in touch with the new password HOW
Hey gerritfrompretoria,
If you are not prompted to use the new password to your Wi - Fi network when trying to connect, you may have to remove the network on your system. This can be done by the following steps.
- Open system preferences in the Apple menu
- Choose the network
- Select a Wi - Fi connection on the left
- Click Advanced... in the bottom right
- Choose your network from the list of preferred networks
- Click on the '-' at the bottom of the list
- Click OK
- Click on apply
Once removed try to connect to your Wi - Fi network normally and you will be prompted for the password.
Sincerely
-
I use outlook express 6 and I can receive an email of great but when I try to send it after making the necessary changes, i.e. the signature I get the message "too big for the server" responses I've seen so far tell me absolutely nothing
Well, the error message says it all. "" too big for server".
There is a limit imposed by your ISP/mail server, which you don't mention.
Not only the servers have limits on the size, this is not necessarily the same for incoming and outgoing messages.
If you say you use the e-mail program and the name of your e-mail server, maybe we can shed light on the more specific issue, but the problem is definitely with them and not Outlook Express.
P.S. I'm not sure what you mean by 'signature'
-
When I am listening to music on iTunes my continuous volume change levels.
When I am listening to music on iTunes my continuous volume change levels. any ideas on how to solve this problem?
original title: volume levels
Hello
1. is the issue limited only to iTunes?
2. don't you make changes to the computer before the show?
Please follow the steps from the link below.
http://support.Apple.com/kb/TS1362
If you're still having problems with iTunes, I suggest that you contact the support team of Apple for assistance.
-
No matter how many times, I'm trying to upgrade the level of play that soon I push enter again game, it comes down to benner
The solution was to choose the play button just after connecting with a new game and choose change level. The message is that microsoft will look for a set of intermediate level available the next time that you click the game Spades to play. / i do not know if he did the very next time, but it certainly made the second time. Beginner level will not change on the initial graphics, but when I choose intermediate, I can see correct statistics for intermediate level AND although the level remains at the beginner when I go to play another game, the level I play is intermediate.
-
When you try to download photoshop elements 13 I get the following message - signature download adobe photoshop elements 13 (2) exe is corrupted or invalid what can I do
redownload.
If the problem persists, use a different browser or another wired connection or a download manager.
or if you follow the 7 steps you can directly download a free trial here: Adobe Photoshop elements 13 Direct Download Links, first too. ProDesignTools
and activate it with your serial number.
If you have a problem from the download, you follow the 7 steps, or your browser does not accept cookies.
the most common problem is caused by failing to meticulously follow the steps 1, 2, and/or 3 (which adds a cookie to your system, allowing you to download the correct version of the adobe.com site).
failure to obtain this cookie translates into an error page displayed after clicking on a link on prodesigntools.com or initiates the download of an incorrect (e.g., current) version.
-
How can I get a new serial number for my 11 elements that I want to load on my new Hp envy touchsmart pc running Windows 10?
Hello
«If you have purchased a license for Photoshop/Premiere elements 11 and saved in (http://adobe.com), that you can sign in here and get the license key of series under "" manage account > Products and Plans > my products "»
If you purchased a volume for Photoshop/Premiere elements 11 license, then you can connect to Volume Licensing Adobe website (http://licensing.adobe.com/) to access the series to activate license key product. You can access the link as follows to download the installer of Photoshop or Premiere elements 11.
Download Photoshop Elements | 10, 12, 14, 11, 13
Download Adobe Premiere Elements 14, 10, 11, 12, 13
You can also access the link as follows for details how to access the serial key.
Find the serial number of your Adobe product quickly
Thank you.
-
I lost my license key to my Photoshop Elements 8, can I get a new one?
Hello
I lost my license key to my Photoshop Elements 8, the program was part of an agreement of packadge when I bought my Canon 9000 scanner - for which I stil have the receipt. I did register online as a user and have an Adobe account - unfortunately I can't see the program 'under products"in my profile. I still program insalled on a quickly dying old labtop - is possible to extrct the license key? Or any idea how I can get a new license key? Thank you
Allan
Yes, you can get serial numbers programs installed using:
-
Hello, we have downloaded photoshop elements 14, and whenever we get our serielnumber to inter, we get a messeage "" adobe can not valid this number "what do we do now!"
is your pse 14 an upgrade?
If not, error: "serial number is not valid for this product". Adobe Creative Suite
-
I use a mac and would like to buy the package of Lightroom. I had the trial and it was fine. I was enrolled in the Belize and I get an error message saying that the country is not supported. In the United Kingdom, I changed my region and I still get the same error message?
Hello
Try to subscribe through pricing and membership creative cloud plans | Adobe Creative Cloud
Hope that helps!
Kind regards
Sheena
Maybe you are looking for
-
Open a new tab next to current, not to the right of the related content
The current options to open as a new tab in firefox must be open at the end of the right hand of the band tabs, or open it to the right end of the related content tabs.If the number of tabs between the current tab and the tab exceeds the visible thro
-
I am suddenly unable to leave Mail. The option is grayed out and leads to not allow me to stop my Mac. What can I do?
-
Label Sony &; sons at startup KDL40 EX500
Is there a way to avoid the label Sony and the sound at startup? I have a new Bravia KDL 40 EX500 - very slow at startup and a bit boring. THX
-
Hi guys,. I'm new to labview. Currently I use Labview 8.5 to connect with Tektronix GST 2024 B osciliscope to calculate the power. First, I use the example of Labview code. I joined the power but I want only the first cycle between 0 and 0.1. Are the
-
NUM of Ref pb to save the file
Hello I have a problem of registration when you use the file refnum of one vi to another I use AE to memorize the file refnum, it s ok if done everything in a single sequence, but not if the reading is done in a vi a writing and close in another. If