free pdf viewer c# : Extract pdf text to word SDK Library project wpf asp.net .net UWP JasperReports-Ultimate-Guide-36-part1365

T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
JasperReport jasperReport =
(JasperReport)JRLoader.loadObjectFromLocation(
"C:/MyApp/src/reports/MyReport.jasper");
String author = 
jasperReport.getProperty("com.mycompany.report.author");
String desc = 
jasperReport.getProperty("com.mycompany.report.description");
I
MPORTING
P
ACKAGES
Using the Java language for writing the report expressions gives great flexibility to the 
library because report designers can leverage existing code inside JasperReports’ parent 
Java applications.
When using Java, all the report expressions are put into a Java source file that is created 
on the fly at report-compilation time. This source file is compiled to bytecode by the 
report compiler and used for expression evaluation at report-filling time. Being a normal 
Java source file, it can have import statements at the top to simplify how classes are 
referenced inside the source code. When entire packages are imported, report expressions 
can reference application classes by name rather than full class name (including the 
package), resulting in shorter and simpler report expressions.
For importing entire packages or single classes, several 
<import>
tags can be used 
inside the report template.
Listing 7-3 gives the JRXML syntax for importing packages.
Listing 7-3. JRXML Syntax
<!ELEMENT import EMPTY>
<!ATTLIST import
value CDATA #REQUIRED
>
The following example shows how to import an entire package and a single class:
<import value="com.mycompany.myapp.mypackage.*"/>
<import value="com.mycompany.myapp.MyClass"/>
A report template can contain any number of import tags.
S
TYLES
A report style is a collection of style settings declared at the report level. These settings 
can be reused throughout the entire report template when setting the style properties of 
report elements.
P
AGE
49
Extract pdf text to word - extract text content from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File
copy text from encrypted pdf; cut and paste pdf text
Extract pdf text to word - VB.NET PDF Text Extract Library: extract text content from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
How to Extract Text from PDF with VB.NET Sample Codes in .NET Application
copy text from scanned pdf to word; copy text from pdf
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
Listing 7-4 gives the JRXML syntax for the report style definitions.
Listing 7-4. JRXML Syntax
<!ELEMENT style (conditionalStyle*)>
<!ATTLIST style
name CDATA #IMPLIED
isDefault (true | false) "false"
style CDATA #IMPLIED
mode (Opaque | Transparent) #IMPLIED
forecolor CDATA #IMPLIED
backcolor CDATA #IMPLIED
pen (None | Thin | 1Point | 2Point | 4Point | Dotted) #IMPLIED
fill (Solid) #IMPLIED
radius NMTOKEN #IMPLIED
scaleImage (Clip | FillFrame | RetainShape) #IMPLIED
hAlign (Left | Center | Right | Justified) #IMPLIED
vAlign (Top | Middle | Bottom) #IMPLIED
border (None | Thin | 1Point | 2Point | 4Point | Dotted) 
#IMPLIED
borderColor CDATA #IMPLIED
padding NMTOKEN #IMPLIED
topBorder (None | Thin | 1Point | 2Point | 4Point | Dotted) 
#IMPLIED
topBorderColor CDATA #IMPLIED
topPadding NMTOKEN #IMPLIED
leftBorder (None | Thin | 1Point | 2Point | 4Point | Dotted) 
#IMPLIED
leftBorderColor CDATA #IMPLIED
leftPadding NMTOKEN #IMPLIED
bottomBorder (None | Thin | 1Point | 2Point | 4Point | Dotted) 
#IMPLIED
bottomBorderColor CDATA #IMPLIED
bottomPadding NMTOKEN #IMPLIED
rightBorder (None | Thin | 1Point | 2Point | 4Point | Dotted) 
#IMPLIED
rightBorderColor CDATA #IMPLIED
rightPadding NMTOKEN #IMPLIED
rotation (None | Left | Right | UpsideDown) #IMPLIED
lineSpacing (Single | 1_1_2 | Double) #IMPLIED
isStyledText (true | false) #IMPLIED
fontName CDATA #IMPLIED
fontSize NMTOKEN #IMPLIED
isBold (true | false) #IMPLIED
isItalic (true | false) #IMPLIED
isUnderline (true | false) #IMPLIED
isStrikeThrough (true | false) #IMPLIED
pdfFontName CDATA #IMPLIED
P
AGE
50
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
PDF in C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files
c# read text from pdf; get text from pdf c#
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document.
can't copy and paste text from pdf; copy text from pdf without formatting
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
pdfEncoding CDATA #IMPLIED
isPdfEmbedded (true | false) #IMPLIED
pattern CDATA #IMPLIED
isBlankWhenNull (true | false) #IMPLIED
>
<!ELEMENT conditionalStyle (conditionExpression?, style)>
<!ELEMENT conditionExpression (#PCDATA)>
R
EPORT
S
TYLE
N
AME
The 
name
attribute of a 
<style>
element is mandatory. It must be unique because it 
references the corresponding report style throughout the report.
D
EFAULT
R
EPORT
S
TYLE
You can use 
isDefault="true"
for one of your report style declarations to mark the 
default for elements that do not or cannot have another style specified. 
C
ASCADING
R
EPORT
S
TYLES
Each report style definition can reference another style definition from which it will 
inherit some or all of its properties. The 
style
attribute specifies the name of the parent 
report style.
Note
All the other report style properties are explained in detail in the chapters that present the report 
elements to which they apply.
C
ONDITIONAL
S
TYLES
Sometimes users need to change a report element style at runtime based on certain 
conditions (for example, to alternate adjacent row colors in a report detail section). To 
achieve this goal, you can set some style properties to be enabled only if a specified 
condition is 
true
. This is done using conditional styles.
A conditional style has two elements: a Boolean condition expression and a style. The 
style is used only if the condition evaluates to 
true
. The following code gives an 
example of using a conditional style:
<style name="alternateStyle" fontName="Arial" forecolor="red">
<conditionalStyle>
<conditionExpression>
new Boolean($V{REPORT_COUNT}.intValue() % 2 == 0)
P
AGE
51
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET.
extract text from pdf to excel; copying text from pdf to word
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
VB.NET Tutorial for How to Convert PDF to Word (.docx) Document in VB.NET. using RasterEdge.XDoc.PDF; Convert PDF to Word Document in VB.NET Demo Code.
delete text from pdf with acrobat; copy text from protected pdf
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
</conditionExpression>
<style forecolor="blue"/>
</conditionalStyle>
</style>
In the preceding example, elements with this style will have red 
forecolor
. But the 
presence of the conditional style modifies the behavior, and when rendered on an even 
row, the same elements will have blue 
forecolor
.
An important aspect is the priority of styles. When applied, a conditional style will 
override the properties of its parent style. In the preceding example, an even detail row 
will inherit the 
fontName
property from the parent style and overwrite the 
forecolor 
property.
A style can contain more than one conditional style. In this case, all conditionals that 
evaluate to 
true
will be appended to the existing style (the second style will be 
appended to the first, and so on). Here is a more elaborate example:
<style name="alternateStyle" fontName="Arial" forecolor="red">
<conditionalStyle>
<conditionExpression>
new Boolean($V{REPORT_COUNT}.intValue() % 2 == 0)
</conditionExpression>
<style forecolor="blue"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression>
new Boolean($F{AMOUNT}.intValue() > 10000)
</conditionExpression>
<style isBold="true"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression>
new Boolean($F{AMOUNT}.intValue() > 20000)
</conditionExpression>
<style isBold="false" isItalic="true"/>
</conditionalStyle>
</style>
In this example, if the field amount is greater than 10,000, the second conditional style is 
true
, and the element displays in bold (it also has red color or blue color depending on 
whether it is on an even or odd row). If the amount is greater than 20,000, then the last 
two style conditions will be 
true
and will be applied in order. They will override 
isBold
and add 
isItalic
.
For amounts over 10,000, elements will be written in bold, and for amounts over 20,000, 
elements will be written in italic (but not bold). Of course, all conditional styles will 
inherit the font from the parent style.
P
AGE
52
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
A convenient C#.NET control able to turn all Word text and image content into high quality PDF without losing formatting. Convert
how to copy and paste pdf text; extract text from pdf file
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
get text from pdf file c#; extract text from pdf java
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
By default, the style condition expressions are evaluated during the report filling process 
at the time that the style reference is used. The conditional expression evaluation will use 
the current values of referenced variables and fields, regardless of the 
evaluationTime 
attribute of the element that makes use of the style.
If the evaluation of the condition expression of the style needs to be delayed, just like the 
value of the text field or the image element that uses the conditional style, the 
net.sf.jasperreports.style.evaluation.time.enabled
configuration property 
should be set to 
true
.
R
EFERENCING
A
R
EPORT
S
TYLE
All report elements can reference a report style to inherit all or part of the style 
properties. A report style declaration groups all the style-related properties supported 
throughout the library, but an individual element inherits only those style properties that 
apply to it. The others will be ignored.
See ”Report Elements” on page 114 for details about applying styles to report elements.
S
TYLE
TEMPLATES
Report styles can also be defined in external style template files that are referenced by 
report templates. This allows report designers to define in a single place a common look 
for a set of reports.
A style template is an XML file that contains one or more style definitions. A template 
can include references to other style template files, hence one can organize a style library 
as a hierarchical set of style template files.
Style template files use by convention the 
*.jrtx
extension, but this is not mandatory.
These files use a simple DTD schema, illustrated below:
Listing 7-5. JRXML Syntax
<!ELEMENT jasperTemplate (template*, style*)>
<!ELEMENT template (#PCDATA)>
<!ELEMENT style (pen?, box?)>
The 
<jasperTemplate>
element is the root of a style template file. The 
<template> 
element is used to include references to other template files; the contents of this element 
is interpreted as the location of the referred template file.
The 
<style>
element is identical to the element with the same name from report design 
templates (JRXML files), with the exception that a style in a style template cannot 
contain conditional styles. This limitation is caused by the fact that conditional styles 
involve report expressions, and expressions can only be interpreted in the context of a 
single report definition. Each style must specify a name, and the style names have to be 
unique inside a style template.
P
AGE
53
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Able to extract single or multiple pages from adobe The portable document format, known as PDF document, is a they are using different types of word processors
copy and paste text from pdf; copy text from pdf to word with formatting
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET: Extract PDF Pages and Save into a New PDF File. You VB.NET: Extract PDF Pages and Overwrite the Original PDF File. Instead
copy text from pdf to word; copy text from pdf online
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
The following is an example of a styles template file which refers a base template file 
and defines two styles:
<?xml version="1.0"?>
<!DOCTYPE jasperTemplate PUBLIC "-//JasperReports//DTD 
Template//EN"
"http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd">
<jasperTemplate>
<!-- include another styles template file -->
<template><![CDATA[base_styles.jrtx]]></template>
<!-- a style can use as parent one of the styles from the 
included template file -->
<style name="Regular" style="Base" isDefault="true" 
fontSize="12"/>
<style name="Emphasis" fontSize="12" forecolor="red"/>
</jasperTemplate>
A report can use style templates by explicitly referring them in its definition. References 
to a style templates are included in JRXML reports as 
<template>
elements. Such an 
element contains an expression that is resolved at fill time to a style template instance. 
The DTD definition of the JRXML 
<template>
element is:
Listing 7-6. JRXML Syntax
<!ELEMENT template (#PCDATA)>
<!ATTLIST template
class (java.lang.String | java.io.File | java.net.URL | 
java.io.InputStream | net.sf.jasperreports.engine.JRTemplate) 
"java.lang.String">
The template expression can only use constants/literals and report parameters. Variables 
and fields cannot be used because the template expressions are evaluated before the 
report calculation engine is initialized. If the template expression evaluates to 
null
, the 
engine ignores the template reference.
Style template locations are interpreted in the same manner as image or subreport 
locations, that is, the engine attempts to load the location as an URL, a disk file or a 
classpath resource.
Styles from included template files can be used in the report just as local styles, that is, 
they can be referred by report elements or used as base styles for other (derived) styles.
The style templates are loaded at report fill time, and style name references are resolved 
once all the templates have been loaded. If a style name reference cannot be resolved, 
that is, no style can be found in the loaded templates for a style name used in the report, 
the fill process will fail with an exception that specifies which style could not be 
resolved.
P
AGE
54
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
When loading style templates and resolving style names to styles, a tree/graph of style 
templates is created, the top of the tree being the set of styles defined in the report. On 
this tree, style name references are resolved to the last style that matches the name in a 
depth-first traversal. For instance, if a report contains a style named 
Normal
and the 
report also includes a style template that contains a style named 
Normal
, an element 
referring the 
Normal
style would use the style defined in the report. The same principle 
applies to the way the default style is determined: the last style which is marked as 
default is used as report default style.
The following example illustrates how style templates can be referenced in a JRXML 
report definition:
<jasperReport ...>
<template>”report_styles.jrtx”</template>
<!-- parameters can be used in style template expressions →
<template>$P{BaseTemplateLocation} + 
”report_styles.jrtx”</template>
<template class=”java.net.URL”>$P{StyleTemplateURL}</template>
<parameter name=”BaseTemplateLocation”/>
<parameter name=”StyleTemplateURL” class=”java.net.URL”/>
...
At the API level, style templates are represented by 
net.sf.jasperreports.engine.JRTemplate
instances. A reference to a 
style template in a report is represented by a 
net.sf.jasperreports.engine.JRReportTemplate 
instance. Such references can 
be added to a 
JasperDesign
object via the 
addTemplate()
method, and the list of 
template references can be obtained by calling the 
getTemplates()
method.
In more complex cases, style templates can be injected into a report by using the built-in 
REPORT_TEMPLATES
report parameter. This parameter expects as value a collection (as 
in 
java.util.Collection
) of 
net.sf.jasperreports.engine.JRTemplate 
instances. The user report fill code can either load style templates on its own from 
template XML files using 
net.sf.jasperreports.engine.xml.JRXmlTemplateLoader
, or instantiate style 
template objects by any other means, and pass the dynamically loaded style template list 
to the report fill process using the 
REPORT_TEMPLATES
parameter.
Style templates passed to a report via the 
REPORT_TEMPLATES
parameter are placed after 
the templates referenced in the report definition, hence styles from the parameter 
templates override styles with identical names from the statically referenced templates.
A working example of a report that uses style templates can be seen in the 
/demo/samples/templates
sample included in the JasperReports project.
P
AGE
55
R
EPORTING
D
ATA
In “Filling Report Templates” on page 19, we mentioned that there are three entities that 
must be supplied as input to the report-filling process: the report template, the parameter 
values, and the data source of the report.
Previous chapters have addressed the report templates. Now we are going to take a closer 
look at parameters and the report data source. These are the only sources of data that the 
reporting engine uses to fill the report. This data is organized according to the template 
defined in the report design to produce a ready-to-print, page-oriented document.
E
XPRESSIONS
Expressions are a powerful feature of JasperReports. They can be used to declare report 
variables that perform various calculations, group data on the report, specify report text 
field content, or further customize the appearance of report objects. 
We mentioned in the “Expressions Scripting Language” section on page 10 that by 
default, the Java language is used for writing report expressions, but other scripting 
languages can be used if a corresponding report compiler able to produce the information 
needed for expression evaluation at runtime is available. Currently, JasperReports ships 
with report compilers that can compile report templates using the Groovy scripting 
language, JavaScript or BeanShell script, inside report expressions.
For simplicity’s sake, we’ll explain how report expressions work assuming that they 
have been written using the Java language only. 
Since all JasperReports expressions are (or are assumed to be) real Java expressions, you 
can use inside them any class you like, as long as you refer to it using the complete class 
name (including the package), or are adding the proper imports to your report template, 
as explained in “Report Template Structure” on page 40. You also have to make sure that 
the classes you are using in the report expressions are available in the classpath when 
you compile your report and when you fill it with data.
In a JRXML report template, there are several elements that define expressions, 
including 
<variableExpression>
<initialValueExpression>
<groupExpression>
<printWhenExpression>
<imageExpression>
, and 
<textFieldExpression>
P
AGE
56
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
S
YNTAX
Report expressions would be useless if there were no way to reference in them the report 
parameters, report fields, or declared report variables. For this reason, a special 
JasperReports syntax on top of the scripting language allows you to introduce such 
references in the report expressions you create in the JRXML report template.
Report parameter references are introduced using the 
$P{}
character sequence, as in the 
following example:
<textFieldExpression>
$P{ReportTitle}
</textFieldExpression>
This example assumes that the report design declares a report parameter named 
ReportTitle
, whose class is 
java.lang.String
. The text field will display the value 
of this parameter when the report is filled.
To use a report field reference in an expression, you must put the name of the field 
between the 
$F{
and 
}
character sequences. For example, to display the concatenated 
values of two data source fields in a text field, define an expression like this one: 
<textFieldExpression>
$F{FirstName} + " " + $F{LastName}
</textFieldExpression>
The expression can be even more complex, as in the following example: 
<textFieldExpression>
$F{FirstName} + " " + $F{LastName} + " was hired on " + 
(new SimpleDateFormat("MM/dd/yyyy")).format($F{HireDate}) + "."
</textFieldExpression>
To reference a report variable in an expression, you must put the name of the variable 
between 
$V{
and 
}
, as in this example: 
<textFieldExpression>
"Total quantity : " + $V{QuantitySum} + " kg."
</textFieldExpression>
As you can see, the parameter, field, and variable references introduced by the special 
JasperReports syntax are in fact real Java objects. Knowing their class from the 
parameter, field or variable declaration made in the report template, you can even call 
methods on those object references in your expressions.
Here’s one way to extract and display the first letter from a 
java.lang.String
report 
field:
<textFieldExpression>
$F{FirstName}.substring(0, 1)
</textFieldExpression>
P
AGE
57
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
When support for internationalization was added to JasperReports, a new token was 
introduced in the JasperReports syntax to allow access to the locale-specific resources 
inside the report’s associated resource bundle. The 
$R{}
character syntax extracts the 
locale-specific resource from the resource bundle based on the key that must be put 
between the brackets:
<textFieldExpression>
$R{report.title}
</textFieldExpression>
The preceding text field displays the title of the report by extracting the 
String
value 
from the resource bundle associated with the report template based on the runtime-
supplied locale and the 
report.title
key. More on internationalization can be found in 
”Internationalization” on page 272.
In some rare cases (for example, debugging), there is the need to escape an expression 
token like the ones described previously. The escape syntax for the tokens requires 
duplicating the 
$
character. Escaping a 
$P{paramName}
token is achieved by writing 
$
$P{paramName}
in the expression. When escaped, an expression token is preserved as-is 
in the resulting expression, and no attempt to parse the token is made.
C
ALCULATOR
What is the calculator object? It is the entity inside JasperReports that evaluates 
expressions and increments variables or datasets at report-filling time. When a report 
template is compiled, the report compiler produces and stores in the compiled report 
template (
JasperReport
object) information that it will use at report-filling time to 
build an instance of the 
net.sf.jasperreports.engine.fill.JRCalculator
class.
The Java-based report compilers generate a Java source file and compile it on the fly. 
This generated class is a subclass of the 
JRCalculator
, and the bytecode produced by 
compiling it is stored inside the 
JasperReport
object. At report-filling time, this 
bytecode is loaded and the resulting class is instantiated to obtain the calculator object 
needed for expression evaluation.
To better understand this calculator object, look at the provided 
/demo/samples/beanshell
sample, which shows how the BeanShell scripting library 
can be used with JasperReports for expressions evaluation. During report compilation 
using the supplied 
net.sf.jasperreports.compilers.JRBshCompiler
, a BeanShell 
script is generated and kept inside the resulting JasperReport object. At report-filling 
time, this script will be loaded by an instance of the 
net.sf.jasperreports.compilers.JRBshCalculator
implementation and will 
serve for expression evaluation.
Only the report compiler creates the calculator instance because only the report compiler 
can make sense of the information it stored in the compiled report template at report-
compilation time.
P
AGE
58
Documents you may be interested
Documents you may be interested