save pdf file in c# : Acrobat split pdf bookmark application control utility html azure windows visual studio DHSC_BestPractices_October133-part1501

Single-pane Browser Help Systems
In some situations, you may not need to deploy a fancy, multiframe HTML Help solution to support a software application.
In these situations, you can add a few lines of JavaScript to the beginning of your main Help file to process incoming
hyperlink calls that target a particular HTML Help file.
For example, if my software application needed to display a particular Help screen (targetHelpTopic.html), I
could build a hyperlink that would call the main Help file (1file.html) and ask it to display my target Help topic.
Here's the HTML hyperlink call.
<a href="1file.html?targetHelpTopic.html">link</a>
Here's the JavaScript to put at in your main Help file.
<HTML>
<!-- One-pane Browser Help System 1file.html -->
<body>
<script language="javascript">
targetTopic = window.location.search.substring(1);
window.location.href=targetTopic
</script>
</body>
</html>
When the main Help file (1file.html) receives the HTML hyperlink call <a
href="1file.html?targetHelpTopic.html">link</a>, it identifies any text that follows the question
mark (?) as one or more arguments being passed to it. In this example, the script identifies targetHelpTopic.html
as that argument and makes that HTML file name the current topic to be displayed in the browser.
Note: This setup works well for captive or embedded Help systems with restrictive or highly predictable calling
procedures. If a user or an application calls the main Help file without specifying a target topic, the main Help file
will generate an Error 404 "File not found".
Multiframe Browser Help Systems
Many browser-based Help systems use mutlitple frames to provide the customer with topic navigation, search, indexing,
and other basic amenities. To get a multiframe Help system to respond to the same context-sensitive hyperlink call is a
bit more complicated becuase of some restrictions in how HTML frames and JavaScript interact..
Here are the elements of our little example.
Software
Application
nav
Frame
contents
Frame
dhsc_help.html
cshelp.js
default.html
target.html
dhsc_help.html?\
Web Browser
target.html
Description
Elements
Any software application that can generate HTTP calls to a browser will work. For the sake of simplicity,
I use an HTML document that contains one hypertext link.
Software
application
Draft | Developing Custom DITA-based Help Systems | 31
Acrobat split pdf bookmark - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
copy bookmarks from one pdf to another; acrobat split pdf bookmark
Acrobat split pdf bookmark - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to add bookmarks to pdf files; add bookmark to pdf reader
Description
Elements
<html>
<a href="dhsc_help.html?target.html" target=_blank>
Call the help system file and pass it an argument
(the name of the target help topic).</a>
</html>
The software application passes two arguments to the Help browser:
Hyperlink
• Main HTML Help file name (
dhsc_help.html
)
• Target Help file name to be displayed (
target.html
) in the main Help window.
Preserving the question mark (?) between the name of the main Help file name and the target Help
topic file name is critical.Your browser uses this question mark to delimit the name of the target Help
topic (
target.html
) from the name of the main Help file (
dhsc_help.html
).
The main Help file here contains little more than a call to a JavaScript library file that perfroms all the
real work.
Main Help file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DHSC CS Help Demo</title>
<!--Insert cshelp.js library -->
<script language="Javascript" src="cshelp.js">/script>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1">
</head>
<script language="javascript">
insertFrameset()
</script>
</html>
The 
cshelp.js
library contains only one JavaScript function named 
insertFrameset
.
cshelp.js
function insertFrameset ()
{
defaultTopic = "default.html";
targetTopic = window.location.search.substring(1);
if (targetTopic=="")
{
target_contentsframe=defaultTopic
}
else
{
target_contentsframe=targetTopic
}
document.write('<FRAMESET cols="20%, 80%">');
document.write('<FRAME src="nav.html" name="navframe">');
document.write('<FRAME src="'+target_contentsframe+'" 
name="contentframe">');
document.write('</FRAMESET>');
}
The variable targetTopic points to the name of the target topic (
target.html
) embedded in the
hyperlink call. If the JavaScript function receives no argument from the hyperlink that calls it, it uses
32 | Draft | Developing Custom DITA-based Help Systems
C# PDF Converter Library SDK to convert PDF to other file formats
manipulate & convert standard PDF documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat.
add bookmarks to pdf; convert word to pdf with bookmarks
.NET PDF Document Viewing, Annotation, Conversion & Processing
Merge, split PDF files. Insert, delete PDF pages. Edit, update, delete PDF annotations from PDF file. Print. Support for all the print modes in Acrobat PDF.
bookmarks in pdf from word; split pdf by bookmark
Description
Elements
the name of the HTML topic declared as defaultTopic.The final lines of the script build the frameset
calls that specify frame dimensions and contents (HTML files).
Summary
These JavaScript functions support small-to-medium Help systems in any language because they place the entire burden
of constructing and managing context-sensitive hypertext links on the calling application. With larger Help systems or
with distributed Help systems, this overloading becomes risky or impossible.
Stan Doherty
OASIS DITA Help Subcommittee
OASIS DITA Technical Committee
HTMLSearch Plug-in
This topic provides an introduction to the DITA plug-in named HTMLSearch.
The HTMLSearch plug-in for the DITA Open Toolkit builds a keyword-based search index and a default frame-based
user interface for any collection of DITA topics referenced by a DITA map file.
Overview
Nadege Quaine (nquaine@hotmail.com), the contributor of the tocjsbis plug-in, has also contributed this plug-in. As of
this writing, the most current version of the plug-in is dated April 8, 2008 and is distributed as htmlsearch1.04.zip.
The HTMLSearch plug-in first runs the XHTML transform that comes with the DITA-OT and then runs an indexing
application against those XHTML output files. HTMLSearch deposits the keyword index and the supporting JavaScript
worker libraries in a subdirectory named search.
Draft | Developing Custom DITA-based Help Systems | 33
C# Windows Viewer - Image and Document Conversion & Rendering in
standard image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
export pdf bookmarks to text file; bookmarks pdf files
C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
adding bookmarks in pdf; export pdf bookmarks to excel
Each of these JavaScript index files correlates discovered keywords to one or more numerals representing particular
XHTML output topics.
The keyword "ant," for example, appears in three XHTML topics. These target topics are referenced numerically (1, 2,
5) and indexed separately in the file search\htmlFileList.js.
34 | Draft | Developing Custom DITA-based Help Systems
When you open the default HTMLSearch web page (frameset.html) in the output directory, it opens three frames
containing a keyword input box, some default information about the plug-in, and a splash screen.
Results from a keyword search are displayed in the right-hand pane.
Draft | Developing Custom DITA-based Help Systems | 35
Clicking a hyperlink in the results list displays the target topic containing the keyword in the same right-hand pane.
36 | Draft | Developing Custom DITA-based Help Systems
The plug-in works fine in all versions of the DITA-OT because it is really interacting with XHTML output from the
DITA-OT, not Open Toolkit resources per se. Beyond minor variations in the way the HTML displays in different
browsers, HTMLSearch output works reliably in all modern browsers.
Setup and configuration
The HTMLSearch plug-in is a free download from the Yahoo DITA-OT site.
http://tech.groups.yahoo.com/group/dita-users/files/Demos/
After you have unzipped this archive to a local directory, you can browse the README.txt file to get a feel for what
HTMLSearch offers and how you can install it in your DITA-OT demo directory.
Installing the plug-in presents no surprises.
1. Copy the un-archived htmlsearch subdirectory into the demo subdirectory of your DITA Open Toolkit directory.
2. Open a shell command window from your DITA-OT directory.
3. Enter the following command to integrate the new plugin or plugins with your current DITA-OT environment.
ant -f integrator.xml
4. From the DITA-OT root directory, enter the following command to build the sample DITA topics.
ant -f demo/htmlsearch/buildsample.xml xhtml2search
5. Load the newly generated demo\htmlsearch\out\frameset.html file in your browser.
That is about all that is involved with installing and configuring the plug-in.
Authoring
There are no DITA source-level authoring considerations for this plug-in; it works on XHTML output topics generated
by the DITA-OT XHTML transform.
Draft | Developing Custom DITA-based Help Systems | 37
Integration
Integrating output from the HTMLSearch plug-in with tocjsbis output or with your local favorite HTML implementation
is possible, but challenging. If you have some experience modifying (or hacking) HTML frames and JavaScript code,
have at it. Otherwise, you might consider continuing to use HTMLSearch output as a stand-alone complement to your
other output transformations.
Consider the following tips when planning your customization effort.
• Quotation marks in DITA map navtitles: If the navtitles in your DITA map file(s) contain quotation marks, remove
them before running the HTMLSearch plug-in. HTMLSearch passes these quotation marks through to its indexed
output, effectively breaking JavaScript syntax in the search\htmlFileInfoList.js file.
• Directory levels for XHTML output: The HTMLSearch plug-in writes the hyperlinked results of a keyword search
to a frame named contentwin. The initial static HTML loaded into that frame lives in the output subdirectory
named sub. The filepaths in the hyperlinks written to that frame, therefore, are relative to an HTML file in sub. If
you are using default XHTML output from the tocjs or tocjsbis, you may need to edit the JavaScript code that builds
that relative path. Test removing the three characters "../" in line 131 of search\nwSearchFnt.js if you
need to adjust HTMLSearch hyperlink paths to match target directory paths from tocjsbis or other DITA-OT XHTML
output transformations.
linkString = "<li><a href=\"../"+tempPath+"\">"+tempTitle+"</a>";
• Target frame name for keyword search input box: The HTMLSearch plug-in loads its input box into a frame named
"searchwin" in its default interface. To integrate that input box into a different set of named HTML frames, you will
need to change the name of the input box frame from "searchwin" to the new target frame name in lines 32, 39, 47,
242, and 248 in search\nwSearchFnt.js. For example, change "searchwin" to "your_frame_name" in the
following line in search\nwSearchFnt.js:
expressionInput=parent.frames['searchwin'].document.ditaSearch_Form.textToSearch.value
• Target frame name for keyword search results: The HTMLSearch plug-in writes its list of keyword search results
(hits) to a frame named "contentwin" in its default interface. To have those results displayed in a different frame in
your implementation, you will need to change the name of the input box frame from "contentwin" to the new target
frame name in lines 146 and 414 in search\nwSearchFnt.js. For example, change "contentwin" to
"your_frame_name" in the following line:
with (parent.frames['contentwin'].document) {
• Target frame name for target topics: The HTMLSearch plug-in displays target topics in the same "contentwin" frame
as the search results. If you would like to have both the list of search results and displayed target topics displayed
simultaneously in separate frames, you will need to change that way that HTMLSearch builds hyperlinks. Specifically,
you'll need to add an HTML "target=framename" attribute to line 131 in search\nwSearchFnt.js. For example,
insert the string target='topicwin' (or your_frame_name) into line 131. Here's the original ...
linkString = "<li><a href=\"../"+tempPath+"\">"+tempTitle+"</a>";
and the update ...
linkString = "<li><a href=\"../"+tempPath+"\"
target='topicwin'>"+tempTitle+"</a>";
After this change, HTMLSearch builds hyperlinks in the keyword search results frame that specify a different target
window for displaying target XHTML topics.
These are the most visible variables that you'll need to consider when customizing HTMLSearch output for your own
help implementation.
Output
Although the customization process can sound scary, it does produce some very nice results. Here is a prototype Help
implementation for my current company. The goal here is to integrate the output from HTMLSearch with output from
tocjsbis in a garden-variety three-tab, multi-frame HTML shell. Initially, the search UI is linked to a Search tab.
38 | Draft | Developing Custom DITA-based Help Systems
When the customer clicks the Search tab, a re-implementation of the HTMLSearch UI is displayed.
Draft | Developing Custom DITA-based Help Systems | 39
Search results appear in a lower frame in the left-hand navigation frame.
When the customer clicks one of the hyperlinks in the results list, that topic is displayed in the right-hand frame.
Summary
Customizing HTMLSearch to integrate it with tocjsbis or other XHTML output transformations from the Open Toolkit
goes a long way toward making DITA-generated Help more usable and familiar to contemporary audiences.
Stan Doherty
40 | Draft | Developing Custom DITA-based Help Systems
Documents you may be interested
Documents you may be interested