" /> Technical Communication: June 2009 Archives

« May 2009 | Main | July 2009 »

June 30, 2009

Update on Updates!

,,,,,,,,,,,,


Dear Framers


I hope all of you have comfortably installed 9.0.2 by now. Though this was difficult to accommodate in our tight schedule but my first objective is to remove your pains and I feel satisfied that 9.0.2 fixed the issues which crept in through the mega 9.0.1 patch.


Let me briefly describe the fixes of 9.0.2



  1. Commands drop down in the designers work NOW and numbering building block in Para designer do get populated NOW if FM is launched afresh and the designers are present in the workspace.

  2. FrameMaker DOES NOT crash on inserting any file of a type other than the type defined for the column in a reltable.

  3. FrameMaker DOES NOT crash while opening a file with view->options set as "Facing Pages"


Now let's talk something about the new trends. You know that FrameMaker 9 provides innovative, robust, forward-looking and complete support for DITA. With the complete technical communication solution in form of TCS2, the cross-product integrations add to the power of your workflows.


DITA as a standard and FrameMaker as the DITA tool are great to adopt. The tool allows you to leverage the power of DITA Specialization. But some users ask for something more. That "something" is expert help on specializing  DITA in FrameMaker.


We spent lot of time writing, reviewing and polishing expert help and published a white paper named "Integrating DITA Specialization with ADOBE® FRAMEMAKER® 9".


You can download this paper from http://help.adobe.com/en_US/FrameMaker/9.0/DITA/framemaker_9_dita_integration.pdf


I am also including it below.





Based on popular demand and criticality of the need, we'll keep working on such information packages. Please keep sharing your feedback with me at mahesh@adobe.com


Take care


- Mahesh



June 18, 2009

RoboHelp-FrameMaker Integration: Some Tips


Topic Name Marker

One of the most powerful features of FrameMaker Integration is the power to separately define a Topic name and the File name for pagination (breaking of Documents into smaller HTML topics)

Marker.jpg

We all know that by using any Custom marker, we can paginate (break) a document into multiple topic by specifying the marker name in the above shown field in Others Setting TAB on the conversion settings dialog

This marker can be used for two more things

1. It can be used to specify the Title on the topic thus created
2. It can be used to specify Name of the corresponding HTML file thus created (name of the physical file)

How to Use it:-

To specify the Title we have to write a Pipe Symbol ‘|’ and the Title after it in the Marker text of the Marker used for pagination

* To specify any specific File name for the HTML generated, we have to write the Filename (just the name not the extension) in the Marker Text
* To specify both Title and File name we write "File name | Title" in the marker text


For elaboration of Topic Name Marker, see section “Topic Name Marker” on Topic “Integrating with Adobe Technical Communication Suite / Importing FrameMaker documents into RoboHelp/ Pagination for Help” in the Help



Creating Sub-Index directly from FrameMaker

Everyone of us know how do we get the Index marked (using Index marker in document) into RoboHelp but very few of us must be having idea of the power of RoboHelp to get even a Sub-Index from FrameMaker documents

How to Use it:-

We take an example that we want to create Sub-Index for ‘Variable’ say ‘How to create Variable’, ‘How to Modify Variable’ and ‘How to Delete Variable’

So first to create the Index for Variable we go to that part where Variable is referred place an Index marker and type marker text as “Variable”
Secondly we go to the part of document where its creation is described and place an Index marker and type marker text as “Variable: How to create Variable”
Then we go to the part of document where its modification is described and place an Index marker and type marker text as “Variable: How to Modify Variable”
Then we go to the part of document where its deletion is described and place an Index marker and type marker text as “Variable: How to Delete Variable”

So when we Import/Link this FrameMaker document into RoboHelp and Mark the Index for conversion we get these Sub-Index items too and hence we will have one more level of editing power at FrameMaker end.



Improving the referenced Images (without call outs)

Most of the times we face the issue that the image that was referenced in the FrameMaker documents and which even do not have any call outs (text in a box or a line on the image inserted using “Graphics->Tools”) are not generated properly in the RoboHelp.
For such scenarios we can just specify ‘Width’ and ‘Height’ in Preferred Dimensions of Image in the Conversion Setting dialog to zero as shown below


ImageSettings.bmp



cheers!
Ashish Chandtra Gupta
RoboHelp Engineering


June 15, 2009

Scripting for TCS Unleashed

[Enhanced Anchored Frame Conversion in FM Linking]

Scripting in TCS

The feature of Scripting in RoboHelp can be leveraged in TCS to extend the feature of conversion of FrameMaker documents to RoboHelp XHTML topics (FrameMaker Linking). TCS users need certain tweaks in FM Linking and Import feature to suit the feature as per their requirements. Some of these tweaks can be achieved through Scripting. This blog talks about one such tweak and explains how one can write a script to achieve this.

Enhanced Anchored Frame Conversion through Scripting

During update of a linked FrameMaker document in RoboHelp, an anchored frame present in the document is converted to a web supported image in RoboHelp XHTML topic. The properties of anchored frames are also converted to image settings (image size, image border etc.) in XHMLT topics. However, at times, a user may need to tweak these settings for individual images. Or a user may not be satisfied with the quality of image generated in RoboHelp and may wish to replace it with a processed image.

We can achieve all of this through a simple script. Here is how we can write and use such a script maintaining the Single Sourcing route.

We can observe that the problem involves two steps.

1. Mention the image settings for each anchored frame

We can achieve this by inserting a marker in the FrameMaker document before each anchored frame to which settings are to be applied. Let us define a new marker type say “Graphic” for this purpose.

Insert this marker before the anchored frame. Consider two image settings as of now viz. image replacement and image resizing.

GraphicMarker.jpg

 

resize=150 means zoom in the image size to 150% while inserting in XHTML topic.

replace=true means  whenever this marker is found in the document, replace the image with a new image of the same name placed in a specified images folder.

(Non-programmers may skip this section further and jump to the next section to start using the script)

2. Process and apply those settings to the corresponding image

 Run a script to process the marker to understand the individual image settings mentioned above and modify the image tag in XHTML topic in RoboHelp accordingly.

This script shall be executed once the RoboHelp topic has been generated from RoboHelp User Interface.  This script shall patch the image tags of the topic with the help of following steps.

a.  Start reading the HTML of the topic in the form of a token list. Here is an example of an HTML token list  <html> <head> <title> </title> </head>  etc.

b. Look for marker (basically XHTML PI) in the topic. The marker in HTML looks like this <?rh_marker name="Graphic" text="resize=150,replace=true"?>

c. Obtain the maker name and text and check if its name matches with our “Graphic” marker.

var tknmgr = RoboHelp.getTokenManager(filepath);
if (tknmgr != null)
{
      var bResize = false;
      var bReplace = false;
      for(index=1;index<=tknmgr.count;index++)
      {
          var token = tknmgr.item(index);		
          var strName = token.name;

//Looking for marker PI
if ((token.tokenType == tokenPI_Identifier) && (strName.indexOf(markerToken) != -1))
{
// Extract the string with attribute name
strMarkerName = strName.substring(strName.indexOf("name=")+6, strName.indexOf("text")-2);
// extract the string with attribute text
strMarkerText = strName.substring(strName.indexOf("text=")+6, strName.indexOf("?>")-1);
// if the marker is of type graphicsStyle
if (strMarkerName = graphicMarker)
{
//Process marker
}
}
}
}


d. Find marker attributes “resize” and “replace”


var strResizePercent = FindMarkerTextAttributeValue(strMarkerText, "resize");
// see if the processing instructions contains resize
if (strResizePercent  != "")
{
nResizePercent = parseFloat(strResizePercent);
bResize = true;
}
var strReplace = FindMarkerTextAttributeValue(strMarkerText, "replace");
// see if the processing instructions contains replace
if(strReplace == "true")
bReplace = true;

e. Look for image <img> tag. When found, do resizing and image
replacement stuff.


For resizing, read the current width and height and calculate the new
width and height as per the percentage mentioned in the marker text. For
replacing the image, update the “src” attribute of the img tag with the
new image path. New image path can be obtained by the image folder path
mentioned in the script and the current image name.



if(token.tokenType == RoboHelp.TokenType.TOKENTAG && token.tagType == RoboHelp.TagType.TAGIMAGE)
{
// Do resizing and replacing stuff
}

f. Save the topic.


g. Repeat this for all the topics in the project.

The Complete Functional Script

Please download the attached script file for the entire functional script. The script has the following variables which should be updated by the user before using the script.

var imagePath = "/Images";  //Image folder path relative to the project folder
var graphicMarker = "Graphic";  //FM marker type

Further Enhancements to the script

  • This script can be further enhanced to include other image settings like image margin, image border etc. for each image.
  • The script can be changed to not to replace the RoboHelp generated images and do some post processing of generated images using Adobe Photoshop.

Several other TCS functionalities may be designed using scripting.
Explore the power of scripting and extend TCS features.

Happy Scripting !!!

Mayank Agrawal
RoboHelp Engineering


June 9, 2009

Numbering in Hierarchical Books

,,,

Adobe FrameMaker9 has introduced hierarchy in books. Two new logical entities Folders and Groups have been added in books to support hierarchy.
file5.jpg
Figure 1: Book containing Chapter, Section and Sub-section

Levels in Hierarchy


1.Chapter Level
All the files and components that are directly present at the root level are considered to be at Chapter Level.
2.Section Level
All the files and components that are directly under the Folder present at root level are considered to be at Section Level.
3.Sub-section Level
Files and components that are present directly under Folder at Section Level are considered to be at Sub-section Level.
Note:Group’s should always be ignored while determining the level of hierarchy.

Selecting the components at different levels

To select all the components at Chapter, Section and Sub-section level one can use corresponding menu items Edit->Select->Chapter/Section/Sub-section Components. In Fig1 all the components at Chapter level are shown selected.

Setting the Numbering Properties

file2.jpg Figure 2: Selection and status of Numbering tabs on Chapter level components.

On setting the value as “Continue Numbering from Previous Chapter/Section/Sub-Section in Book” we get the following values for the files and components present in the book.
file3.jpg
New Building Blocks named <$sectionnum> and <$subsectionnum> and new Variables ‘Section Number’ and ‘Sub Section Number’ are also added to support numbering in Paragraph Designer and Variables respectively.






Open in a different window
Books in FrameMaker9 support additional formats like book, XML and ditamap i.e. they can now be added within the books and numbering can be set on these files as well.

Numbering in Child Book components.


file4.jpg
Figure 3: Book containing Child Book

Child Book implies book present within another book.In this figure ParentBook.book is a book that contains another book ChildBook.book within it. All the fm files and Child Book are present at the Chapter Level.The components present in the ChildBook.book are considered to be present at next level relative to the ParentBook.book.






Open in a different window
Please let me know your comments and suggestions.

Thanks and Regards,
Mayank Gupta
FrameMaker Engineering


June 1, 2009

You, Me and Conferences

,,,,,,,,

Hello Framers!

Hope things are going great with you. It’s been a while since I met some of you.

Like every year, this year too I had planned to meet you personally at various conferences but it seems that the first half of 2009 didn’t want me to meet you at conferences.FrameMaker Chautauqua didn’t take place this year; then due to some urgent business meeting, I couldn’t attend WritersUA. Then the stage was all set for the grand STC conference but my STC program was hacked with the alert ‘H1N1’ forcing the sudden cancellation. And then unfortunately, DocTrain conference too got cancelled.

But this was for the first half of 2009! As per game theory, if I look at the second half of 2009, it should look more positive giving me ample opportunities to meet you, our Adobe Technical Communication Family!

I am sure you are enjoying working with FrameMaker 9 either as a point product or as a part of TCS2. We also released a couple of patches for the issues reported by you. Initially some of you reported that you were not comfortable adjusting with the pleasant changes brought in FM9. This was natural and now I am sure that with lot of e-seminars, tutorials, white-papers and engineering blogs, you have become experts in working with the new release.

Since change is inevitable, there have been some other changes too which you might not be aware of. Let me share a couple of them with you. I was blessed with a daughter less than an year ago. People say that in the year of global slowdown, my body has seen a sharp growth in adipose tissue which I have validated with weighing machines!

I am including a picture from STC 2008. When I meet you next, it would be easy for you to relate the change!

STC%202008.jpg

Please keep sharing your feedback and I hope to meet you soon.

Take care

Mahesh