c# httpclient download pdf : Create bookmarks pdf files Library software class asp.net winforms web page ajax cpf1-part1351

MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 11
4.0   Getting Started with a Simple CPF Application
25
This chapter describes the basic procedures for creating a simple CPF application. The procedures 
include creating two action modules and a pipeline, and how to configure a database to make use 
of the pipeline.
This chapter includes the following topics:
• 
Overview of Example CPF Application
• 
Create the Action Modules
• 
Insert the Action Modules into the Modules Database
• 
Create the Pipeline
• 
Configure a Database for Content Processing
• 
Insert and Update a Document in the Database
• 
View the Properties Document
• 
Extend the CPF Application
Create bookmarks pdf files - 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
creating bookmarks pdf files; how to bookmark a pdf file
Create bookmarks pdf files - 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
excel pdf bookmarks; export pdf bookmarks to text file
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 12
4.1
Overview of Example CPF Application
The pipeline portion of this CPF application detects when a document is initially inserted into the 
database and when a document is updated in the database and calls an action module to perform 
processing on the document. If a document is inserted into the database and has a root node of 
book
, the pipeline calls an action module to insert a 
copyright
node as a child of the root node. If 
a document is updated in the database and has a root node of 
book
, the pipeline calls a different 
action module to insert a 
last-updated
node as a child of the root node. 
The following figure illustrates the logical flow of the example CPF application:
Domain
Pipeline
State:
Yes
No
Document
initial?
Root Node
Yes
‘book’?
add-copyright.xqy
No
Yes
No
Root Node
Yes
‘book’?
add-last-updated.xqy
State:
updated?
No
Success?
No
done
Yes
error
Success?
No
done
Yes
error
Condition
Action Module
Final State
C# PDF File Split Library: Split, seperate PDF into multiple files
C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines. This is an C# example of splitting a PDF to two new PDF files.
auto bookmark pdf; adding bookmarks to pdf reader
VB.NET PDF File Split Library: Split, seperate PDF into multiple
PDF file into multiple ones by PDF bookmarks or outlines index: 1 to (Page Count - 1). ' Create output PDF i.ToString() + ".pdf") Next ' Split input PDF file to
add bookmark to pdf reader; acrobat split pdf bookmark
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 13
4.2
Create the Action Modules
The simple pipeline you create in “Create the Pipeline” on page 15 will call two action modules:
• 
a
dd-copyright.xqy
— inserts a 
copyright
node into the document node.
• 
a
dd-last-updated.xq
y
— inserts a 
last-updated
node into the document node.
Create a directory, named 
copyright
, somewhere in your file system. You will later use this 
location to load the CPF application files into MarkLogic Server.
4.2.1
add-copyright.xqy
The 
add-copyright.xqy
action module inserts a 
copyright
node as a child of the document’s 
book
node. Copy the code below into a text editor and save as 
add-copyright.xqy
in the 
copyright
directory.
xquery version "1.0-ml";
import module namespace cpf = "http://marklogic.com/cpf" 
at "/MarkLogic/cpf/cpf.xqy";
declare variable $cpf:document-uri as xs:string external;
declare variable $cpf:transition as node() external;
if (cpf:check-transition($cpf:document-uri,$cpf:transition)) then try 
{
let $doc := fn:doc( $cpf:document-uri )
return
xdmp:node-insert-child( 
$doc/book,
<copyright>
<year>2010</year>
<holder>The Publisher</holder>
</copyright>),
xdmp:log( "add copyright ran OK" ),
cpf:success( $cpf:document-uri, $cpf:transition, () )
}
catch ($e) {
cpf:failure( $cpf:document-uri, $cpf:transition, $e, () )
}
else ()
C# PDF File Compress Library: Compress reduce PDF size in C#.net
and decompression method and Image files compression and Bookmarks. outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
convert excel to pdf with bookmarks; export pdf bookmarks
C# Create PDF Library SDK to convert PDF from other file formats
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
bookmarks pdf file; how to add bookmarks to pdf files
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 14
4.2.2
add-last-updated.xqy
The 
add-last-updated.xqy
action module inserts a 
last-updated
node as a child of the 
document’s 
book
node. Copy the code below into a text editor and save as 
add-last-updated.xqy
in the 
copyright
directory.
xquery version "1.0-ml";
import module namespace cpf="http://marklogic.com/cpf" 
at "/MarkLogic/cpf/cpf.xqy";
declare variable $cpf:document-uri as xs:string external;
declare variable $cpf:transition as node() external;
if (cpf:check-transition($cpf:document-uri,$cpf:transition)) then try 
{
let $doc := fn:doc($cpf:document-uri)
return
xdmp:node-insert-child(
$doc/book,
<last-updated>{fn:current-dateTime()}</last-updated>),
),
xdmp:log( "add last-updated ran OK" ),
cpf:success($cpf:document-uri, $cpf:transition, ())
} catch ($e) {
cpf:failure($cpf:document-uri, $cpf:transition, $e, ())
}
else ()
4.3
Insert the Action Modules into the Modules Database
CPF locates the action modules in the modules database specified in the domain configuration set 
in 
Configure a Database for Content Processing
, Step 
6
. In this example, the modules are placed in 
the Modules database.
Insert the 
add-copyright.xqy
and 
add-last-updated.xqy
modules in the 
copyright
directory into 
the Modules database under the URI 
/copyright/module_name.xqy
. For example, using Query 
Console, set the content-source to the Modules database and enter:
xquery version "1.0-ml";
xdmp:document-load("C:\copyright\add-copyright.xqy", 
<options xmlns="xdmp:document-load">
<uri>/copyright/add-copyright.xqy</uri>
</options>),
xdmp:document-load("C:\copyright\add-last-updated.xqy", 
<options xmlns="xdmp:document-load">
<uri>/copyright/add-last-updated.xqy</uri>
</options>)
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
converter toolkit SDK, preserves all the original anchors, links, bookmarks and font How to Use C#.NET Demo Code to Convert PDF Document to HTML5 Files in C#
bookmark page in pdf; add bookmark pdf
.NET PDF SDK - Description of All PDF Processing Control Feastures
View,Convert,Edit,Process,Protect,SignPDF Files. Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display; Conversion. PDF Create.
how to bookmark a pdf file in acrobat; pdf export bookmarks
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 15
4.4
Create the Pipeline
When CPF is enabled on a database, every document inserted into the database is given a CPF 
state. The CPF state is simply a label, stored as a document property, that identifies where the 
document is in relation to a set of processing steps. A pipeline manages the action modules 
applied to a document by transitioning the document from one state to another. A state transition 
says something like “whenever a document is moved into state A, do Y and then move the 
document into state B.” 
CPF uses a special pipeline, called the Status Change Handling pipeline, to keep track of the 
status of a document during content processing and to set specific states on the document. For 
example, the Status Change Handling pipeline sets the state of a document to 
initial
when it is 
first inserted into the database, to 
updated
when it is updated, and cleans up links when it is 
deleted.
The example pipeline shown below detects when a document is in the 
initial
state and calls the 
add-copyright.xqy
module. When a document is in the 
updated
state, the pipeline calls the 
add-last-updated.xqy
module. If the document is successfully modified by an action module, 
the pipeline transitions the document to the 
done
state; otherwise it transitions the document to the 
error
state. Though it is a good practice to call an action module when an error occurs, this is 
omitted from this example for the sake of simplicity.
Copy the pipeline code below into a text editor and save as 
copyright.xml
in the 
copyright
directory.
<pipeline xmlns="http://marklogic.com/cpf/pipelines">
<pipeline-name>Copyright Pipeline</pipeline-name>
<pipeline-description>Pipeline to test CPF</pipeline-description>
<success-action>
<module>/MarkLogic/cpf/actions/success-action.xqy</module>
</success-action>
<failure-action>
<module>/MarkLogic/cpf/actions/failure-action.xqy</module>
</failure-action>
XDoc.Word for .NET, Advanced .NET Word Processing Features
page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail Convert Word to PDF; Convert Word to HTML5; Convert Create an empty Word file; Load Word from
display bookmarks in pdf; pdf bookmark
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
create bookmarks pdf; how to create bookmark in pdf with
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 16
<state-transition>
<annotation>
When a document containing ‘book’ as a root element is created, 
add a ‘copyright’ statement.
</annotation>
<state>http://marklogic.com/states/initial</state>
<on-success>http://marklogic.com/states/done</on-success>
<on-failure>http://marklogic.com/states/error</on-failure>
<execute>
<condition>
<module>/MarkLogic/cpf/actions/namespace-condition.xqy</module>
<options xmlns="/MarkLogic/cpf/actions/namespace-condition.xqy">
<root-element>book</root-element>
<namespace/>
</options>
</condition>
<action>
<module>add-copyright.xqy</module>
</action>
</execute>
</state-transition>
<state-transition>
<annotation>
When a document containing ‘book’ as a root element is updated, 
add a ‘last-updated’ element
</annotation>
<state>http://marklogic.com/states/updated</state>
<on-success>http://marklogic.com/states/done</on-success>
<on-failure>http://marklogic.com/states/error</on-failure>
<execute>
<condition>
<module>/MarkLogic/cpf/actions/namespace-condition.xqy</module>
<options xmlns="/MarkLogic/cpf/actions/namespace-condition.xqy">
<root-element>book</root-element>
<namespace/>
</options>
</condition>
<action>
<module>add-last-updated.xqy</module>
</action>
</execute>
</state-transition>
</pipeline>
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 17
4.5
Configure a Database for Content Processing
This section describes how to create and configure a database that makes use of Content 
Processing. All of the basic procedures for creating and configuring a database are described in 
the 
Databases
chapter in the Administrator’s Guide.
Perform the following steps to create a database that uses CPF:
1.
Create a forest named 
Samples
.
2.
Create a database named 
Samples
, specifying 
Triggers
as the triggers database, and attach 
the 
Samples
forest to the 
Samples
database.
3.
In the left tree menu, click 
Content Processing
under the 
Samples
database. 
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 18
4.
Click the 
Install
tab, select 
false
for enable conversion, and click the 
Install
button to 
install content processing for the 
Samples
database. This will enable content processing 
without the default conversion option.
5.
In the left tree menu, expand 
Content Processing
under the 
Samples
database, expand 
Domains
and click 
Default Samples
6.
In the evaluation context section at the bottom, confirm that modules is set to Modules. In 
the root field, enter /
copyright/
to identify the base path of the action modules in the 
Modules database. Click 
OK
.
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 19
7.
In the left tree menu, under the 
Samples
database, click 
Pipelines
. In the directory field, 
identify the path to the directory in which you saved the 
copyright.xml
file created in 
“Create the Pipeline” on page 15. Make sure the source is 
(filesystem)
. Click 
OK
to load 
the pipelines located in the 
samples
directory into the 
Triggers
database.
8.
In the left tree menu, expand 
Domains 
and
Default Samples 
under 
Content Processing
and click 
Pipelines
. Select the 
Status Change Handling
and 
Copyright Pipeline
to attach 
the pipelines to the 
Default Samples
domain. Click 
OK
when done.
Your CPF application is now configured and ready to respond to updates to the Samples database.
MarkLogic Server
Getting Started with a Simple CPF Application
MarkLogic 8—February, 2015
Content Processing Framework Guide—Page 20
4.6
Insert and Update a Document in the Database
To see the results of the CPF pipeline, insert a document into the 
Samples
database. For example, 
from Query Console, execute the following query against the 
Samples
database.
Note:  The action modules will only enrich documents that have 
book
as their root node.
xquery version "1.0-ml";
let $contents :=   
<book>
<bookTitle>All About George</bookTitle>
<chapter1>
<chapterTitle>Curious George</chapterTitle>
<para>
George Washington crossed the Delaware to see what was on the 
other side.
</para>
</chapter1>
</book>
return
xdmp:document-insert("/content/george.xml", $contents)
The pipeline detects that the document is in the 
initial
state and calls the 
add-copyright.xqy
action to insert a 
copyright
node as a child of the 
book
node. The 
george.xml
document stored in 
the 
Samples
database will look like the following:
<book>
<bookTitle>All About George</bookTitle>
<chapter1>
<chapterTitle>Curious George</chapterTitle>
<para>
George Washington crossed the Delaware to see what was on the 
other side.
</para>
</chapter1>
<copyright>
<year>2010</year>
<holder>The Publisher</holder>
</copyright>
</book>
Documents you may be interested
Documents you may be interested