save pdf file in c# : Create bookmarks in pdf reader application control utility html azure windows visual studio DHSC_BestPractices_October132-part1500

<toc label="Garage (hierarchy)" topic="concepts/garagetasks.html">
<topic label="Garage Tasks" href="concepts/garagetasks.html">
<topic label="Organizing the workbench and tools" href="tasks/organizing.html"/>
<topic label="Taking out the garbage" href="tasks/takinggarbage.html"/>
<topic label="Spray painting" href="tasks/spraypainting.html"/>
<topic label="Washing the car" href="tasks/washingthecar.html"/>
<topic label="Garage Concepts" href="concepts/garageconcepts.html">
<topic label="Lawnmower" href="concepts/lawnmower.html"/>
<topic label="Paint" href="concepts/paint.html"/>
<topic label="Shelving" href="concepts/shelving.html"/>
<topic label="Tool box" href="concepts/toolbox.html"/>
<topic label="Tools" href="concepts/tools.html"/>
<topic label="Water hose" href="concepts/waterhose.html"/>
<topic label="Wheelbarrow" href="concepts/wheelbarrow.html"/>
<topic label="Workbench" href="concepts/workbench.html"/>
<topic label="Windshield washer fluid" href="concepts/wwfluid.html"/>
Building DITA content in Eclipse
It is possible to use Eclipse as your IDE for developing, building, and testing your Eclipse plug-in projects. Refer to the
DITA Open Toolkit User Guide topic entitled "Running DITA builds in Eclipse."
Detailed instructions exist in the DITA-OT Help for producing Eclipse Help. Refer to DITA Open Toolkit User Guide
topic entitled "Processing to Eclipse Help targets."
The image shows the content after it has been transformed and the plug-in has been added to a basic Eclipse run-time
If you intend to take advantage of active Help or the dynamic content capabilities within the Eclipse Help system, such
as link filtering, be prepared to create your own post-processing transforms to incorporate the required markup.
Draft | Developing DITA-based Help for Existing Help Environments | 21
Create bookmarks in pdf reader - add, remove, update PDF bookmarks in, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
convert excel to pdf with bookmarks; create pdf bookmarks from word
Create bookmarks in pdf reader - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to add bookmarks on pdf; bookmark pdf reader
Whether creating documentation for an Eclipse-based application or one that simply uses the Eclipse Help system to
deliver user assistance, consider DITA to source content. Since Eclipse Help is one of the key output targets for the
DITA Open Toolkit, setup, configuration, and processing are all straightforward and well-documented. For additional
instructions on such advanced Eclipse Help capabilities as active Help, dynamic content, or remote Help, refer to the
current Eclipse documentation, located at
Jeff Antley
OASIS DITA Help Subcommittee
Leximation AIR Help Plug-in
This topic introduces the concept of AIR Help and provides information about generating AIR Help from DITA.
The Leximation AIR Help DITA-OT plug-in is not yet publicly available; information about the availability of this plug-in
will be posted to
AIR Help is an evolving new option for delivering online user assistance. This help delivery format does not specifically
define appearance or functionality, but refers to any user assistance application that was developed with Adobe’s AIR
(Adobe Integrated Runtime) technology. Applications developed using AIR can be installed on the Mac, Windows, and
Linux operating systems, and are highly customizable, making it an ideal technology from which to develop an online
help deliverable.
Currently there are two commercially available products for generating AIR Help, Adobe’s “RoboHelp Packager for
AIR” and MadCap Software’s “Flare.” RoboHelp Packager for AIR (beta) allows you to export an AIR Help file from
a RoboHelp WebHelp project. At this time, there is no connection between RoboHelp and DITA other than the option
of authoring DITA files in FrameMaker and importing the FrameMaker files into RoboHelp. Flare offers AIR Help as
one of the standard output formats from their latest version.
The other option for creating AIR Help is custom development. You can take any browser-based set of HTML files and
“wrap” them up in an AIR application. The most basic AIR application is one that contains an embedded web browser
(based on WebKit) which essentially lets you present your HTML-based help in your custom browser.
The Leximation AIR Help DITA-OT plug-in provides a direct path from DITA to AIR Help. This implementation of
AIR Help provides the following features:
• Tabbed navigation panels for Contents, Index, and Search
• Full text search that allows for both local and remote search indexes
• Forward, Back, Home buttons as well as Next/Previous Browse buttons that follow the structure of topics in the
Contents tab
• The ability to make context sensitive calls from an external application
• Position and size of window is preserved between sessions
• Sync with TOC functionality
Additionally, you may customize the AIR Help interface to add features or to modify the appearance as needed.
Setup and configuration
Currently, in order to install and use this plug-in you must recompile the dost.jar file. For this reason, the plug-in
is not publicly available. Updates are being made to the DITA-OT 1.5 that will support the modifications to the indexing
pipeline required by this plug-in. Setup and configuration information will be made available once the OT has been
Assuming the plug-in has been installed, the following information will apply.
22 | Draft | Developing DITA-based Help for Existing Help Environments
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
creating bookmarks in pdf from word; bookmark pdf in preview
VB.NET PDF File Split Library: Split, seperate PDF into multiple
file into multiple ones by PDF bookmarks or outlines As String = Program.RootPath + "\\" 1.pdf" Dim outputFileName 1 to (Page Count - 1). ' Create output PDF
how to add bookmarks to pdf document; adding bookmarks to a pdf
For the most basic output, no extra effort is needed. Run your DITA map through the plug-in, and it will:
• Generate the “local” full text search index
• Compile the SWF
• Build batch files for testing and final AIR file creation
The following data is used from the map file when building the AIR file:
• /map/topicmeta/copyright
• /map/topicmeta/prodinfo/prodname
• /map/topicmeta/prodinfo/vrmlist/vrm (the last one)
• /map/topicmeta/prodinfo/prognum
• /map/topicmeta/othermeta/@name=’remote-search-index-url’ (@content specifies the location for the remote search
index which is loaded on startup)
The Index is built from available indexterm elements.
After a successful build, just run the airhelp-test.bat batch file to view and test the new AIR Help file. When
you’re ready to build the final AIR file, just run the airhelp-packager.bat batch file.
No specific authoring requirements are needed.
Because an AIR Help file is actually a desktop application, you launch the help system by making a system call to run
the executable. If no command line parameters are provided, the AIR Help file will open with the default topic displayed.
In order to launch the help system on a specific topic, use the following command line syntax:
<path/app_executable> <target_topic>
For example, the following call will display the “Image” topic in the DITA Reference AIR Help file:
"c:\program files\ditaref\ditaref.exe" image.html
To launch the help system with the search panel selected and pre-populated with a query, use the following syntax:
<path/app_executable> "search:using conrefs"
To launch the help system with an external URL (website) displayed, use the following syntax:
Additional command line parameters can be added as needed.
Because only one instance of each AIR Help application can exist at one time, if you make a system call to the application
when one is already running, the result of the new call replaces the running instance.
This plug-in uses the HTML generated by the dita2html target, and only controls the interface features of the “container”
Draft | Developing DITA-based Help for Existing Help Environments | 23
C# PDF File Compress Library: Compress reduce PDF size in
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
create bookmarks pdf file; bookmarks pdf
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
create bookmarks in pdf from excel; how to add a bookmark in pdf
Figure 2: Example AIR Help application window
Because AIR Help is very new and still under development, it may be best for some to wait for further development to
be completed. However, because of its cross-platform support and reduced testing effort, you may find that it is worth
closer investigation as a potential help delivery format.
The DITA Open Toolkit HTMLHelp Transform
This topic provides a brief introduction to the HTMLHelp transform in the DITA Open Toolkit.
We would be remiss not to call attention to the original HTMLHelp transform that has been bundled with the DITA
Open Tookit for several years.
Output from the DITA Open Toolkit HTMLHelp plug-in serves as input to the Microsoft HTML Help Compiler. If you
choose to build your DITA sources on teh same Windows system on which you have installed a copy of the Microsoft
HTML Help Software Development Kit, you will be able to generate a ready-to-deploy MS HTML Help .chm library
from your DITA-OT ant script. Otherwise, you an copy output from the DITA Open Toolkit HTMLHelp transform on
your DITA-OT build system to some other Windows system on which the HTML Help SDK has been installed.
24 | Draft | Developing DITA-based Help for Existing Help Environments
C# Create PDF Library SDK to convert PDF from other file formats
file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields.
excel print to pdf with bookmarks; create bookmarks in pdf reader
.NET PDF SDK - Description of All PDF Processing Control Feastures
Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. PDF Create.
export pdf bookmarks; how to create bookmark in pdf automatically
Setup and configuration
Once you have installed and configured the DITA Open Toolkit, you have the HTMLHelp transform installed by default
and ready to use. See the DITA Open Toolkit User's Guide for detailed information about working with transforms and
about specifying the HTMLHelp transform specifically as a processing target (dita2htmlhelp).
To download the latest Microsoft HTML Help 1.4 SDK, go to the following MSDN web site. It is a free download.
Note:  If you run the test build script that is bundled with the Open Toolkit, sample_all.xml, you can verify
that the HTMLHelp transform is installed and configured correctly by looking in the
ant/out/samples/htmlhelp subdirectory.
To generate ready-to-deploy .chm libraries from most any DITA source collection, you do not really have to customize
or rework your DITA source files.
MS HTML Help output
DITA source
Contents tab entries
DITA map entries
Index tab entries
index entries
full-text search index
running text
Truth be known, there are also limitations to both this DITA-OT transform and to the MS HTML Help run-time
environment. Factor these into your planning.
• Context-sensitive mapping: The DITA-OT HTMLHelp transform is not designed to process context-sensitive mappings
between DITA source topics and the context IDs associated with those target topics. To feed the MS HTML Help
compiler with the appropriate context-sensitive ID maps and/or alias files, consider developing a custom shell for
the Open Toolkit or building your HTML Help output with WinANT. See WinANT Options Supporting Microsoft
HTML Help  on page 49 for more information about the latter.
• HTML support in MS HTML Help: The Microsoft HTML Help application displays HTML topics in a captive HTML
viewer. This viewer supports most, but not all, of the HTML output that you can generate from the DITA-OT XHTML
transform. If, for example, you are working with SVG images or some interactive JavaScript libraries, test them with
output from the HTMLHelp transform before deploying them.
The .chm library produced by the combination of the DITA-OT HTMLHelp transform and the MS HTML Help compiler
is very functional.
Here's what output from the DITA-OT test collection looks like.
Draft | Developing DITA-based Help for Existing Help Environments | 25
VB.NET Create PDF Library SDK to convert PDF from other file
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields in Visual Basic .NET application.
how to bookmark a pdf file in acrobat; export pdf bookmarks to text
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
bookmark pdf documents; editing bookmarks in pdf
Note: The DITA-OT test collection source files contain no index entries, so no index entries are generated in MS
HTML Help.
If you have requirements to deploy a general-purpose Help collection to Windows customers without context-sensitive
integration, consider using the DITA-OT HTMLHelp transform. It is functional, realiable and fast. Once all your content
in is .chm format, you can convert it to other distribution formats with second-tier conversion tools such as chm2web.
If you have requirements to integrate .chm output with Windows applications as Context-sensitive Help, you'll need
to invest some time managing maps and alias files outside the DITA environment and then integrating them with .chm
output using WinAnt or other custom processing environments.
26 | Draft | Developing DITA-based Help for Existing Help Environments
Developing Custom DITA-based Help Systems
This topic introduces solutions for developing custom Help implementations using DITA source and/or output.
If your company has developed a custom Help viewer or custom run-time environment, it is unlikely that the default
output from an existing DITA plug-in will be what you need. This section of the Best Practices Guide explains how to
use DITA plug-ins and other tools to generate the base ingredients for a custom help implementation. You will need to
invest some amount of post-processing effort, therefore, to integrate output from multiple DITA plug-ins and/or to
customize output for exactly what you need.
Figure 3: DITA Source to Customized Help Environments
We can't really help you with these post-processing or customization tasks, but we can help you generate the ingredient
content and point out some common issues that might affect your customizations.
• DHTML Effects in HTML Generated from DITA on page 27
• Dynamic Rendering of DITA into XHTML on page 29
• JavaScript-Based Context Sensitive Help on page 30
• HTMLSearch Plug-in on page 33
• TOCJS and TOCJSBIS Plug-ins on page 41
• WinANT Options Supporting HTML-Based Output on page 47
• WinANT Options Supporting Microsoft HTML Help  on page 49
DHTML Effects in HTML Generated from DITA
This topic describes an approach to creating expanding text and other DHTML effects in HTML-based output generated
from DITA content.
It is common for Help systems to use layering techniques to limit the amount of information presented to the reader.
The reader chooses to view the information by clicking on a link. Most layering techniques, including expanding text,
dropdown text and popup text, are implemented using Dynamic HTML.
The DITA Open Toolkit HTML transformations do not provide for layering effects. However, some changes to the
XSL-T files, and the use of outputclassmetadata in the DITA topic content, along with some judicious use of JavaScript
and CSS, can deliver these layering effects.
Draft | Developing Custom DITA-based Help Systems | 27
Authoring Example
In the following example illustrating the technique, a note element is to output as dropdown text, where the note label
is used to toggle the display of the note text. The note element is simply marked up with an outputclass distinct attribute
value (in this case, hw_expansion).
< note outputclass="hw_expansion" type="note">Text of the note</note>
Without any modification, the DITA OT will transform the note element to a paragraph element with a CSS class of the
outputclass value.
XSL-T Changes Example
In the example illustrating the technique, the following changes to the way the XSL-T file processes the note element
are made:
<xsl:template match="*[contains(@class, 'topic/note ')]">
<xsl:if test="@outputclass='hw_expansion'" >
<a class="pseudolink_up" onclick="hwToggle(this);">Note: </a>
<div > 
<xsl:if test="@outputclass='hw_expansion'" > 
<xsl:attribute name="class"> 
<xsl:value-of select="@outputclass" />
JavaScript and CSS Addition Examples
For the layering DHTML effect to work, a JavaScript routine must be written to control the toggling of the display of
the dropdown text. Likewise, CSS classes used in the layering (in this example, pseudolink_up and hw_expansion) must
be defined in the CSS file for the output.
A simple JavaScript toggling routine is as follows:
function hwToggle(me) {
var nextS=getNextSibling(me.parentNode);
if(!='block') {'block';
else {'none';
function getNextSibling(startBrother){
try {
catch(er) {
return null;
//alert('Sorry! No more siblings!');
return null;
endBrother = endBrother.nextSibling;
28 | Draft | Developing Custom DITA-based Help Systems
return endBrother;
A simple set of CSS settings are:
color: blue;
cursor: hand;
border-bottom: blue 1px dashed;
background-position: left center;
background-image: url(images/purple_right_sm.jpg);
background-repeat: no-repeat;
padding-left: 15px;
color: green;
cursor: hand;
border-bottom: blue 1px dashed;
background-position: left center;
background-image: url(images/purple_down_sm.jpg);
background-repeat: no-repeat;
padding-left: 15px;
When the build file is created, references should be made to include the CSS file (containing the CSS rules) and the
JavaScript file (containing the toggle routine).
Working Example
The layering technique described here is used in a production environment on a Web site which dynamically renders
DITA content as XHTML. (Refer to Web page using DHTML layering technique.)
Although some technical knowledge is required to implement DHTML effects in output, the techniques are not onerously
complex. With a small investment in effort, a big payoff in functionality can be achieved.
Dynamic Rendering of DITA into XHTML
This topic describes the concept of dynamic transformation of DITA content on a Web server into XHTML for delivery
to any Web browser.
In many cases, Help content is best delivered as HTML. For content authored in DITA, the process is typically to
transform the content into HTML (or, more likely, XHTML), and then transfer the output files to a Web browser. In
some cases, it may be desirable to host the DITA source files on the Web server, and use server-side processing to
dynamically transform the content to HTML when a browser requests the information.
When DITA content is transformed to a delivery format through the DITA Open Toolkit, or another publishing process,
the result is a collection of deliverable files that also need to be managed. The deliverable files (typically XHTML) must
Draft | Developing Custom DITA-based Help Systems | 29
be copied to a Web server for delivery. When the source content changes, the output has to be re-generated, and then
copied once more to the Web server.
Most Web servers support some sort of server-side processing technology; examples are ASP.Net, PHP and JSP. Many
of these technologies are XML-aware, and are capable of handling dynamic XSL-T transformations.
It is possible to set up a system whereby Help content, written and stored in DITA format, is stored on a server, and then
dynamically transformed into HTML for delivery.
Setup and configuration
To set up a dynamic transformation system, the services of a developer or someone familiar with a server-side processing
and XSL-T is required. The developer will need to devise a menu system (perhaps derived from a ditamap file), and a
topic rendering system.
Once the system is in place, DITA topics can be either authored directly onto the Web server (perhaps through FTP,
WebDAV or a network share).
While it is relatively easy to set up a simple menu system and a simple topic rendering system, it is not easy to handle
more advanced DITA features such as conrefs, reltables and composite topics. For example, conref elements need to be
resolved prior to the XSL-T transformation. In the DITA Open Toolkit, the generation of output comprises a number
of stages to first resolve references to build an interim document, and then process the interim document into the output.
However, If the DITA content is simple enough, this limitation is not an impediment.
The HyperWrite Web site uses these techniques through ASP.Net to generate the breadcrumb trails, navigation system,
menu pages, and articles topics from a ditamap file and numerous DITA concept topics. (Some content topics are also
hosted in DocBook format.)
The primary advantage of the dynamic transformation approach is to minimise file management. The main disadvantage
is that the technique is practically limited to simple content structures. Some other dedicated Web delivery methods,
such as Eclipse Help, Mark Logic Content Server, or other CMS solutions, may provide greater support for complex
content structures.
JavaScript-Based Context Sensitive Help
This topic explains how to configure your browser-based Help system to respond to context-sensitive Help requests
from a software application.
If you are deploying a browser-based Help system in conjunction with a software application, you can configure your
main HTML Help file to display a specific target Help file when so requested by a calling software application.
Note: The following JavaScript functions do not depend technically on anything inside your DITA source files or
anything generated by the DITA Open Toolkit. They are generic functions that support generic HTML.
30 | Draft | Developing Custom DITA-based Help Systems
Documents you may be interested
Documents you may be interested