working with pdf in c# : Copy pdf bookmarks software SDK dll winforms wpf azure web forms air_htmldevguide33-part479

325
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
function restServiceCall()  
{  
//Create the HTTP request object  
var request = new air.URLRequest( "http://service.example.com/" );  
request.method = air.URLRequestMethod.GET;  
//Add the URL variables  
var variables = new air.URLVariables();  
variables.method = "test.echo";  
variables.api_key = "123456ABC";  
variables.message = "Able was I, ere I saw Elba.";  
request.data = variables;  
//Initiate the transaction  
window.requestor = new air.URLLoader();  
requestor.addEventListener( air.Event.COMPLETE, httpRequestComplete );  
requestor.addEventListener( air.IOErrorEvent.IOERROR, httpRequestError );  
requestor.addEventListener( air.SecurityErrorEvent.SECURITY_ERROR, httpRequestError );  
requestor.load( request );  
}  
function httpRequestComplete( event )  
{  
air.trace( event.target.data );  
}  
function httpRequestError( error ){  
air.trace( "An error occured: " + error.message );  
}
In JavaScript within an AIR application, you can make the same request using the XMLHttpRequest object:
<html>  
<head><title>RESTful web service request</title>  
<script type="text/javascript">  
function makeRequest()  
{  
var requestDisplay = document.getElementById( "request" );  
var resultDisplay  = document.getElementById( "result" );  
//Create a conveninece object to hold the call properties  
var request = {};  
request.URL = "http://service.example.com/";  
request.method = "test.echo";  
request.HTTPmethod = "GET";  
request.parameters = {};  
request.parameters.api_key = "ABCDEF123";  
request.parameters.message = "Able was I ere I saw Elba.";  
var requestURL = makeURL( request );  
xmlhttp = new XMLHttpRequest();  
xmlhttp.open( request.HTTPmethod, requestURL, true);  
xmlhttp.onreadystatechange = function() {  
if (xmlhttp.readyState == 4) {  
resultDisplay.innerHTML = xmlhttp.responseText;  
}  
 
xmlhttp.send(null);  
Copy pdf bookmarks - 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
bookmarks pdf; creating bookmarks pdf
Copy pdf bookmarks - 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 bookmark a pdf file; copy pdf bookmarks
326
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
requestDisplay.innerHTML = requestURL;  
}  
//Convert the request object into a properly formatted URL  
function makeURL( request )  
{  
var url = request.URL + "?method=" + escape( request.method );  
for( var property in request.parameters )  
 
url += "&" + property + "=" + escape( request.parameters[property] );  
 
return url;  
}  
</script>  
</head>  
<body onload="makeRequest()">  
<h1>Request:</h1>  
<div id="request"></div>  
<h1>Result:</h1>  
<div id="result"></div>  
</body>  
</html>
XML-RPC web service requests
Flash Player 9 and later, Adobe AIR 1.0 and later
An XML-RPC web service takes its call parameters as an XML document rather than as a set of URL variables. To 
conduct a transaction with an XML-RPC web service, create a properly formatted XML message and send it to the web 
service using the HTTP 
POST
method. In addition, you should set the 
Content-Type
header for the request so that the 
server treats the request data as XML.
The following example uses DOM methods to create an XML-RPC message and an XMLHttpRequest to conduct the 
web service transaction:
<html>  
<head>  
<title>XML-RPC web service request</title>  
<script type="text/javascript">  
function makeRequest()  
{  
var requestDisplay = document.getElementById( "request" );  
var resultDisplay  = document.getElementById( "result" );  
var request = {};  
request.URL = "http://services.example.com/xmlrpc/";  
request.method = "test.echo";  
request.HTTPmethod = "POST";  
request.parameters = {};  
request.parameters.api_key = "123456ABC";  
request.parameters.message = "Able was I ere I saw Elba.";  
var requestMessage = formatXMLRPC( request );  
xmlhttp = new XMLHttpRequest();  
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
create bookmarks in pdf from excel; bookmark pdf in preview
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
bookmark template pdf; bookmarks pdf reader
327
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
xmlhttp.open( request.HTTPmethod, request.URL, true);  
xmlhttp.onreadystatechange = function() {  
if (xmlhttp.readyState == 4) {  
resultDisplay.innerText = xmlhttp.responseText;  
}  
 
xmlhttp.send( requestMessage );  
requestDisplay.innerText = xmlToString( requestMessage.documentElement );  
}  
//Formats a request as XML-RPC document  
function formatXMLRPC( request )  
{  
var xmldoc = document.implementation.createDocument( "", "", null );  
var root = xmldoc.createElement( "methodCall" );  
xmldoc.appendChild( root );  
var methodName = xmldoc.createElement( "methodName" );  
var methodString = xmldoc.createTextNode( request.method );  
methodName.appendChild( methodString );  
root.appendChild( methodName );  
var params = xmldoc.createElement( "params" );  
root.appendChild( params );  
var param = xmldoc.createElement( "param" );  
params.appendChild( param );  
var value = xmldoc.createElement( "value" );  
param.appendChild( value );  
var struct = xmldoc.createElement( "struct" );  
value.appendChild( struct );  
for( var property in request.parameters )  
{  
var member = xmldoc.createElement( "member" );  
struct.appendChild( member );  
var name = xmldoc.createElement( "name" );  
var paramName = xmldoc.createTextNode( property );  
name.appendChild( paramName )  
member.appendChild( name );  
var value = xmldoc.createElement( "value" );  
var type = xmldoc.createElement( "string" );  
value.appendChild( type );  
var paramValue = xmldoc.createTextNode( request.parameters[property] );  
type.appendChild( paramValue )  
member.appendChild( value );  
}  
return xmldoc;  
}  
//Returns a string representation of an XML node  
function xmlToString( rootNode, indent )  
{  
if( indent == null ) indent = "";  
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
creating bookmarks in pdf files; how to add a bookmark in 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.
add bookmark pdf file; export pdf bookmarks to excel
328
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
var result = indent + "<" + rootNode.tagName + ">\n";  
for( var i = 0; i < rootNode.childNodes.length; i++)  
 
if(rootNode.childNodes.item( i ).nodeType == Node.TEXT_NODE )  
{  
result += indent + "    " + rootNode.childNodes.item( i ).textContent + "\n";  
}  
 
if( rootNode.childElementCount > 0 )  
 
result += xmlToString( rootNode.firstElementChild, indent + "    " );  
 
if( rootNode.nextElementSibling )  
 
result += indent + "</" + rootNode.tagName + ">\n";  
result += xmlToString( rootNode.nextElementSibling, indent );  
 
else  
 
result += indent +"</" + rootNode.tagName + ">\n";  
 
return result;  
}  
</script>  
</head>  
<body onload="makeRequest()">  
<h1>Request:</h1>  
<pre id="request"></pre>  
<h1>Result:</h1>  
<pre id="result"></pre>  
</body>  
</html>
Opening a URL in another application
Flash Player 9 and later, Adobe AIR 1.0 and later
You can use the 
navigateToURL()
function to open a URL in the default system web browser. 
For the URLRequest object you pass as the 
request
parameter of this function, only the 
url
property is used.
The first parameter of the 
navigateToURL()
function, the 
navigate
parameter, is a URLRequest object (see “Using 
the URLRequest class” on page 316). The second is an optional 
window
parameter, in which you can specify the 
window name. For example, the following code opens the www.adobe.com web page:
var url = "http://www.adobe.com";  
var urlReq = new air.URLRequest(url);  
air.navigateToURL(urlReq);
Note: When using the 
navigateToURL()
function, the runtime treats a URLRequest object that uses the POST method 
(one that has its 
method
property set to 
URLRequestMethod.POST
) as using the GET method.
When using the 
navigateToURL()
function, URI schemes are permitted based on the security sandbox of the code 
calling the 
navigateToURL()
function. 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
how to add bookmarks to a pdf; add bookmarks pdf
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
by C#.NET PDF to HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
create bookmark in pdf automatically; excel hyperlink to pdf bookmark
329
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
Some APIs allow you to launch content in a web browser. For security reasons, some URI schemes are prohibited when 
using these APIs in AIR. The list of prohibited schemes depends on the security sandbox of the code using the API. 
(For details on security sandboxes, see “AIR security” on page  69.)
Application sandbox (AIR only)
Any URI scheme can be used in URL launched by content running in the AIR application sandbox. An application 
must be registered to handle the URI scheme or the request does nothing. The following schemes are supported on 
many computers and devices: 
http:
https:
file:
mailto:
— AIR directs these requests to the registered system mail application
sms:
— AIR directs 
sms:
requests to the default text message app. The URL format must conform to the system 
conventions under which the app is running. For example, on Android, the URI scheme must be lowercase.
navigateToURL( new URLRequest( "sms:+15555550101") );
tel:
— AIR directs 
tel:
requests to the default telephone dialing app. The URL format must conform to the 
system conventions under which the app is running. For example, on Android, the URI scheme must be lowercase.
navigateToURL( new URLRequest( "tel:5555555555") );
market:
— AIR directs 
market:
requests to the Market app typically supported on Android devices.
navigateToURL( new URLRequest( "market://search?q=Adobe Flash") );  
navigateToURL( new URLRequest( "market://search?q=pname:com.adobe.flashplayer") );
Where allowed by the operating system, applications can define and register custom URI schemes. You can create a 
URL using the scheme to launch the application from AIR.
Remote sandboxes
The following schemes are allowed. Use these schemes as you would use them in a web browser. 
http:
https:
mailto:
— AIR directs these requests to the registered system mail application
All other URI schemes are prohibited.
Local-with-file sandbox
The following schemes are allowed. Use these schemes as you would use them in a web browser. 
file:
mailto:
— AIR directs these requests to the registered system mail application
All other URI schemes are prohibited.
Local-with-networking sandbox
The following schemes are allowed. Use these schemes as you would use them in a web browser. 
http:
https:
VB.NET PDF: Basic SDK Concept of XDoc.PDF
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
creating bookmarks in pdf documents; how to bookmark a pdf file
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
edit, C#.NET PDF pages extract, copy, paste, C# page with another PDF page from another PDF file text, images, interactive elements, such as links and bookmarks.
add bookmark to pdf reader; how to add bookmarks to pdf document
330
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
HTTP communications
Last updated 9/28/2011
mailto:
— AIR directs these requests to the registered system mail application
All other URI schemes are prohibited.
Local-trusted sandbox
The following schemes are allowed. Use these schemes as you would use them in a web browser. 
file:
http:
• https:
mailto:
— AIR directs these requests to the registered system mail application
All other URI schemes are prohibited.
Sending a URL to a server
Flash Player 9 and later, Adobe AIR 1.0 and later
You can use the 
sendToURL()
function to send a URL request to a server. This function ignores any server response. 
The 
sendToURL()
function takes one argument, 
request
, which is a URLRequest object (see “Using the URLRequest 
class” on page 316). Here is an example: 
var url = "http://www.example.com/application.jsp";  
var variables = new air.URLVariables();  
variables.sessionId = new Date().getTime();  
variables.userLabel = "Your Name";  
var request = new air.URLRequest(url);  
request.data = variables;  
air.sendToURL(request);
This example uses the URLVariables class to include variable data in the URLRequest object. For more information, 
see “Using the URLLoader class” on page  319. 
331
Last updated 9/28/2011
Chapter 24: Communicating with other 
Flash Player and AIR instances
Flash Player 9 and later, Adobe AIR 1.0 and later
The LocalConnection class enables communications between Adobe® AIR® applications, as well as between SWF 
content running in the browser. You can also use the LocalConnection class to communicate between an AIR 
application and SWF content running in the browser. The LocalConnection class allows you to build versatile 
applications that can share data between Flash Player and AIR instances. 
About the LocalConnection class
Flash Player 9 and later, Adobe AIR 1.0 and later
LocalConnection objects can communicate only among AIR applications and SWF files that are running on the same 
client computer. However, the applications can run in different applications. For example, two AIR applications can 
communicate using the LocalConnection class, as can an AIR application and a SWF file running in a browser. 
The simplest way to use a LocalConnection object is to allow communication only between LocalConnection objects 
located in the same domain or the same AIR application. That way, you do not have to worry about security issues. 
However, if you need to allow communication between domains, you have several ways to implement security 
measures. For more information, see the discussion of the 
connectionName
parameter of the 
send()
method and the 
allowDomain()
and 
domain
entries in the LocalConnection class listing in the ActionScript 3.0 Reference for the 
Adobe Flash Platform
To add callback methods to your LocalConnection objects, set the 
LocalConnection.client
property to an object 
that has member methods, as the following code shows: 
var lc = new air.LocalConnection();  
var clientObject = new Object();  
clientObject.doMethod1 = function() {  
air.trace("doMethod1 called.");  
}  
clientObject.doMethod2 = function(param1) {  
air.trace("doMethod2 called with one parameter: " + param1);  
air.trace("The square of the parameter is: " + param1 * param1);  
}  
lc.client = clientObject;
The 
LocalConnection.client
property includes all callback methods that can be invoked. 
isPerUser property
The 
isPerUser
property was added to Flash Player (10.0.32) and AIR (1.5.2) to resolve a conflict that occurs when 
more than one user is logged into a Mac computer. On other operating systems, the property is ignored since the local 
connection has always been scoped to individual users. The 
isPerUser
property should be set to 
true
in new code. 
However, the default value is currently 
false
for backward compatibility. The default may be changed in future 
versions of the runtimes.
332
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
Communicating with other Flash Player and AIR instances
Last updated 9/28/2011
Sending messages between two applications
Flash Player 9 and later, Adobe AIR 1.0 and later
You use the LocalConnection class to communicate between different AIR applications and between different Adobe® 
Flash® Player (SWF) applications running in a browser. You can also use the LocalConnection class to communicate 
between an AIR application and a SWF application running in a browser. 
The following code defines a LocalConnection object that acts as a server and accepts incoming LocalConnection calls 
from other applications: 
var lc = new air.LocalConnection();  
lc.connect("connectionName");  
var clientObject = new Object();  
clientObject.echoMsg = function(msg) {  
air.trace("This message was received: " + msg);  
}  
lc.client = clientObject;
This code first creates a LocalConnection object named 
lc
and sets the 
client
property to an object, 
clientObject
When another application calls a method in this LocalConnection instance, the runtime looks for that method in the 
clientObject
object.
If you already have a connection with the specified name, an Argument Error exception is thrown, indicating that the 
connection attempt failed because the object is already connected. 
The following snippet demonstrates how to create a LocalConnection with the name 
conn1
:
connection.connect("conn1");
Connecting to the primary application from a secondary application requires that you first create a LocalConnection 
object in the sending LocalConnection object; then call the 
LocalConnection.send()
method with the name of the 
connection and the name of the method to execute. For example, to send the 
doQuit
method to the LocalConnection 
object that you created earlier, use the following code:
sendingConnection.send("conn1", "doQuit");
This code connects to an existing LocalConnection object with the connection name 
conn1
and invokes the 
doMessage()
method in the remote application. If you want to send parameters to the remote application, you specify 
additional arguments after the method name in the 
send()
method, as the following snippet shows:
sendingConnection.send("conn1", "doMessage", "Hello world");
Connecting to content in different domains and to AIR 
applications
Flash Player 9 and later, Adobe AIR 1.0 and later
To allow communications only from specific domains, you call the 
allowDomain()
or 
allowInsecureDomain()
method of the LocalConnection class and pass a list of one or more domains that are allowed to access this 
LocalConnection object, passing one or more names of domains to be allowed. 
333
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
Communicating with other Flash Player and AIR instances
Last updated 9/28/2011
There are two special values that you can pass to the 
LocalConnection.allowDomain()
and 
LocalConnection.allowInsecureDomain()
methods: 
*
and 
localhost
. The asterisk value 
(*)
allows access from 
all domains. The string 
localhost
allows calls to the application from content locally installed, but outside of the 
application resource directory. 
If the 
LocalConnection.send()
method attempts to communicate with an application from a security sandbox to 
which the calling code does not have access, a 
securityError 
event(
SecurityErrorEvent.SECURITY_ERROR
) is 
dispatched. To work around this error, you can specify the caller's domain in the receiver's 
LocalConnection.allowDomain()
method.
If you implement communication only between content in the same domain, you can specify a 
connectionName
parameter that does not begin with an underscore (
_
) and does not specify a domain name (for example, 
myDomain:connectionName
). Use the same string in the 
LocalConnection.connect(connectionName)
command. 
If you implement communication between content in different domains, you specify a 
connectionName 
parameter 
that begins with an underscore. Specifying the underscore makes the content with the receiving LocalConnection 
object more portable between domains. Here are the two possible cases:
• If the string for 
connectionName
does not begin with an underscore, the runtime adds a prefix with the 
superdomain name and a colon (for example, 
myDomain:connectionName
). Although this ensures that your 
connection does not conflict with connections of the same name from other domains, any sending 
LocalConnection objects must specify this superdomain (for example, 
myDomain:connectionName
). If you move 
the HTML or SWF file with the receiving LocalConnection object to another domain, the runtime changes the 
prefix to reflect the new superdomain (for example, 
anotherDomain:connectionName
). All sending 
LocalConnection objects have to be manually edited to point to the new superdomain.
• If the string for 
connectionName
begins with an underscore (for example, 
_connectionName
), the runtime does 
not add a prefix to the string. This means the receiving and sending LocalConnection objects use identical strings 
for 
connectionName
. If the receiving object uses 
LocalConnection.allowDomain()
to specify that connections 
from any domain will be accepted, you can move the HTML or SWF file with the receiving LocalConnection object 
to another domain without altering any sending LocalConnection objects. 
A downside to using underscore names in 
connectionName
is the potential for collisions, such as when two 
applications both try to connect using the same 
connectionName
. A second, related downside is security-related. 
Connection names that use underscore syntax do not identify the domain of the listening application. For these 
reasons, domain-qualified names are preferred. 
Adobe AIR
To communicate with content running in the AIR application security sandbox (content installed with the AIR 
application), you must prefix the connection name with a superdomain identifying the AIR application. The 
superdomain string starts with 
app#
followed by the application ID followed by a dot (.) character, followed by the 
publisher ID (if defined). For example, the proper superdomain to use in the 
connectionName
parameter for an 
application with the application ID, 
com.example.air.MyApp
, and no publisher ID is: 
"app#com.example.air.MyApp"
. Thus, if the base connection name is “appConnection,” then the entire string to use 
in the 
connectionName
parameter is: 
"app#com.example.air.MyApp:appConnection"
. If the application has the 
publisher ID, then the that ID must also be included in the superdomain string: 
"app#com.example.air.MyApp.B146A943FBD637B68C334022D304CEA226D129B4.1"
334
HTML DEVELOPER’S GUIDE FOR ADOBE AIR
Communicating with other Flash Player and AIR instances
Last updated 9/28/2011
When you allow another AIR application to communicate with your application through the local connection, you 
must call the 
allowDomain()
of the LocalConnection object, passing in the local connection domain name. For an 
AIR application, this domain name is formed from the application and publisher IDs in the same fashion as the 
connection string. For example, if the sending AIR application has an application ID of 
com.example.air.FriendlyApp
and a publisher ID of 
214649436BD677B62C33D02233043EA236D13934.1
, then 
the domain string that you would use to allow this application to connect is: 
app#com.example.air.FriendlyApp.214649436BD677B62C33D02233043EA236D13934.1
. (As of AIR 1.5.3, not 
all AIR applications have publisher IDs.)
Documents you may be interested
Documents you may be interested