free pdf viewer c# : Get text from pdf into excel Library control class asp.net web page windows ajax JasperReports-Ultimate-Guide-311-part1339

T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
<!ELEMENT initialValueExpression (#PCDATA)>
In its expression, a variable can reference other report variables, fields, or parameters. 
With every iteration through the data source, variables are evaluated/incremented in the 
same order as they are declared. Therefore, the order of variables as they appear in the 
report template is very important. 
V
ARIABLE
N
AME
Just as for parameters and fields, the 
name
attribute of the 
<variable>
element is 
mandatory and allows referencing the variable by its declared name in report 
expressions.
V
ARIABLE
C
LASS
The class attribute contains the name of the class to which the variable values belong. 
The default is 
java.lang.String
, but you can declare report variables of any class as 
long as the class is available in the classpath, both at report-compilation time and report-
filling time.
R
ESET
T
YPE
The value of a report variable can change with every iteration, but it can be brought back 
to the value returned by its initial value expression at specified times during the report-
filling process. This behavior is controlled using the 
resetType
attribute, which 
indicates when the variable should be reinitialized during the report-filling process. 
There are five reset types for a variable:
 No reset: The variable will never be initialized using its initial value expression and 
will only contain values obtained by evaluating the variable’s expression 
(
resetType="None"
).
 Report-level reset: The variable is initialized only once, at the beginning of the 
report-filling process, with the value returned by the variable’s initial value 
expression (
resetType="Report"
).
 Page-level reset: The variable is reinitialized at the beginning of each new page 
(
resetType="Page"
).
 Column-level reset: The variable is reinitialized at the beginning of each new 
column (
resetType="Column"
).
 Group-level reset: The variable is reinitialized every time the group specified by 
the 
resetGroup
attributes breaks (
resetType="Group"
).
The default value for this attribute is 
resetType="Report"
.
P
AGE
99
Get text from pdf into excel - 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
extract text from pdf open source; copy text from pdf without formatting
Get text from pdf into excel - 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
copying text from pdf into word; how to copy and paste pdf text
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
R
ESET
G
ROUP
If present, the 
resetGroup
attribute contains the name of a report group and works only 
in conjunction with the 
resetType
attribute, whose value must be 
resetType="Group"
.
I
NCREMENT
T
YPE
This property lets you choose the exact moment to increment the variable. By default, 
variables are incremented with each record in the data source, but in reports with 
multiple levels of data grouping, some variables might calculate higher-level totals and 
would need to be incremented only occasionally, not with every iteration through the 
data source.
This attribute uses the same values as the 
resetType
attribute, as follows:
 Row-level increment: The variable is incremented with every record during the 
iteration through the data source (
incrementType="None"
).
 Report-level increment: The variable never gets incremented during the report-
filling process (
incrementType="Report"
).
 Page-level increment: The variable is incremented with each new page 
(
incrementType= "Page"
).
 Column-level increment: The variable is incremented with each new column 
(
incrementType="Column"
).
 Group-level increment: The variable is incremented every time the group specified 
by the 
incrementGroup
attributes breaks (
incrementType="Group"
).
I
NCREMENT
G
ROUP
If present, the 
incrementGroup
attribute contains the name of a report group. It works 
only in conjunction with the 
incrementType
attribute, whose value must be 
incrementType="Group"
.
C
ALCULATIONS
As mentioned, variables can perform built-in types of calculations on their corresponding 
expression values. The following subsections describe all the possible values for the 
calculation attribute of the 
<variable>
element.
Calculation Nothing
This is the default calculation type that a variable performs. It means that the variable’s 
value is recalculated with every iteration in the data source and that the value returned is 
obtained by simply evaluating the variable’s expression. 
P
AGE
100
C# PDF insert text Library: insert text into PDF content in C#.net
Font font = new Font("Arial", 36F, FontStyle.Italic); // Get the first page from the document. value, The string text wil be added into PDF page, 0
can't copy text from pdf; export highlighted text from pdf
VB.NET PDF insert text library: insert text into PDF content in vb
Dim inputFilePath As String = Program.RootPath + "\\" 1.pdf" Dim doc As PDFDocument = New PDFDocument(inputFilePath) ' get a text manager from the document
erase text from pdf; copy text from scanned pdf
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
Calculation Count
A count variable includes in the count the non-null values returned after evaluating the 
variable’s main expression, with every iteration in the data source. Count variables must 
always be of a numeric type. However, they can have non-numeric expressions as their 
main expression since the engine does not care about the expression type, but only 
counts for the non-null values returned, regardless of their type.
Only the variable’s initial value expression should be numeric and compatible with the 
variable’s type, since this value will be directly assigned to the count variable when 
initialized.
Calculation DistinctCount
This type of calculation works just like the 
Count
calculation, the only difference being 
that it ignores repeating values and counts only for distinct non-null values.
Calculation Sum
The reporting engine can sum up the values returned by the variable’s main expression if 
you choose this type of calculation; but make sure the variable has a numeric type. You 
cannot calculate the sum of a 
java.lang.String
or 
java.util.Date
type of report 
variable unless a customized variable incrementer is used, as explained in the 
“Incrementers” section later in this chapter.
Calculation Average
The reporting engine can also calculate the average for the series of values obtained by 
evaluating the variable’s expression for each record in the data source. This type of 
calculation can be performed only for numeric variables (see the following 
“Incrementers” section, later in this chapter for details).
Calculation Lowest and Highest
Choose this type of calculation when you want to obtain the lowest or highest value in 
the series of values obtained by evaluating the variable’s expression for each data source 
record.
Calculation StandardDeviation and Variance
In some special reports, you might want to perform more advanced types of calculations 
on numeric expressions. JasperReports has built-in algorithms to obtain the standard 
deviation and the variance for the series of values returned by evaluation of a report 
variable’s expression.
P
AGE
101
C#: Use OCR SDK Library to Get Image and Document Text
you will see how to use RaterEdge .NET OCR SDK in your application to extract and get text from Tiff Extracted text can be output to Word or PDF document.
get text from pdf c#; cut and paste text from pdf document
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET Sample Code: Extract PDF Pages and Save into a New PDF File in C#.NET. You can easily get pages from a PDF file, and then use these pages to create and
copy text from pdf online; how to copy and paste pdf text
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
Calculation System
This type of calculation can be chosen only when you don’t want the engine to calculate 
any value for your variable. That means you are calculating the value for that variable 
yourself, almost certainly using the scriptlets functionality of JasperReports.
For this type of calculation, the only thing the engine does is to conserve the value you 
have calculated yourself, from one iteration in the data source to the next.
Calculation First
When using the calculation type 
First
, the variable will keep the value obtained after 
the first incrementation and will not change it until the reset event occurs.
Here is a simple report variable declaration that calculates the sum for a numeric report 
field called 
Quantity
:
<variable name="QuantitySum" class="java.lang.Double" 
calculation="Sum">
<variableExpression>$F{Quantity}</variableExpression>
</variable>
If you want the sum of this field for each page, here’s the complete variable declaration:
<variable name="QuantitySum" 
class="java.lang.Double" resetType="Page" calculation="Sum">
<variableExpression>$F{Quantity}</variableExpression>
<initialValueExpression>new Double(0)</initialValueExpression>
</variable>
In this example, our page sum variable will be initialized with zero at the beginning of 
each new page.
I
NCREMENTERS
All calculations in the JasperReports engine are performed incrementally. This is 
obvious for variables that calculate counts, sums, or the highest and lowest value of a 
series, but is also true for more complex calculations like average or standard deviation. 
There are formulas that allow updating the average value of a series when a new element 
is added, so the average is updated with each iteration through the data source.
JasperReports provides a built-in set of calculations that depend on the type of the data 
involved. You can also create custom calculation capabilities using simple interfaces.
If a variable needs to perform a certain type of calculation on some special data, 
implement the 
net.sf.jasperreports.engine.fill.JRIncrementer
interface and 
associate that implementation with a report variable that shows the JasperReports engine 
how to handle that custom calculation.
P
AGE
102
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
page reordering and PDF page image and text extraction Note: When you get the error "Could not load file C# Demo Code: Combine and Merge Multiple PDF Files into
copying text from pdf into word; extract text from pdf open source
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
solution to annotate .pdf file with both text & graphics. From this page, you will get a simple VB.NET Decode source PDF document file into an in-memory object
copy text from pdf in preview; export text from pdf to word
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
To associate custom types of calculations with a given report variable, set the 
incrementerFactoryClass
attribute to the name of a class that implements the 
net.sf.jasperreports.engine.fill.JRIncrementerFactory
interface. The 
factory class will be used by the engine to instantiate incrementer objects at runtime 
depending on the 
calculation
attribute set for the variable.
Such customized calculations could be useful for making JasperReports sum up 
java.lang.String
values or for teaching it how to calculate the average value of some 
custom-made numeric data (third-party optimized implementations of big decimal 
numbers, for instance).
B
UILT
-I
N
R
EPORT
V
ARIABLES
The following built-in system variables are also provided in expressions.
PAGE_NUMBER
This variable’s value is its current page number. At the end of the report-filling process, 
it will contain the total number of pages in the document. It can be used to display both 
the current page number and the total number of pages using a special feature of 
JasperReports text field elements, the 
evaluationTime
attribute. You can see this 
happening in most of the samples. Check the 
/demo/samples/jasper
sample for an 
example.
COLUMN_NUMBER
This variable contains the current column number. For example, on a report with three 
columns, the possible values are 1, 2, and 3. The variable restarts from 1 and runs up to 
the defined number of columns for each page in the generated document.
REPORT_COUNT
After finishing the iteration through the data source, this report variable contains the total 
number of records processed.
PAGE_COUNT
This variable contains the number of records that were processed when generating the 
current page.
COLUMN_COUNT
This variable contains the number of records that were processed when generating the 
current column.
P
AGE
103
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 can easily get pages from a PDF file, and then use these pages to create and output a new PDF file.
copy paste text pdf; copy text from pdf reader
VB.NET PDF: Get Started with PDF Library
C#.NET rotate PDF pages, C#.NET search text in PDF This page is designed to help users to get started with Create(2) ' Save the new created PDF document into
get text from pdf into excel; delete text from pdf acrobat
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
GroupName_COUNT
When declaring a report group, the engine automatically creates a count variable that 
calculates the number of records that make up the current group (that is, the number of 
records processed between group ruptures).
The name of this variable is derived from the name of the group it corresponds to, 
suffixed with the 
_COUNT
sequence. It can be used like any other report variable, in any 
report expression, even in the current group expression, as shown in the 
BreakGroup 
group of the 
/demo/samples/jasper
sample).
D
ATA
F
ILTERS
Sometimes it is useful to have a way to filter out records from the data source. When 
SQL queries are used, the filtering is usually done through the 
WHERE
clause of the query.
But when reporting data comes from a data source that is not already filtered, or when 
preprocessing the data would require significant overhead, JasperReports offers an easy 
way to eliminate unwanted records based on a 
Boolean
expression.
Listing 8-6 gives the JRXML syntax for the data filter.
Listing 8-6. JRXML Syntax
<!ELEMENT filterExpression (#PCDATA)>
The 
<filterExpression>
(if present) is evaluated immediately after moving the record 
pointer to the next record in the data source. The evaluation is performed using field and 
variable values corresponding to the new record. If the result of the evaluation is 
Boolean.TRUE
, then the record gets processed by the report-filling engine. If the result is 
null
or 
Boolean.FALSE
, then the current record will be skipped and the data source 
pointer will be moved to the following record.
P
AGE
104
R
EPORT
S
ECTIONS
JasperReports works with templates that are structured into multiple sections, like any 
traditional reporting tool. At report-filling time, the engine iterates through the virtual 
records of the supplied report data source and renders each report section when 
appropriate, depending on each section’s defined behavior.
For instance, the detail section is rendered for each record in the data source. When page 
breaks occur, the page header and page footer sections are rendered as needed.
Sections are made of one or more bands. Bands are portions of the report template that 
have a specified height and width and can contain report elements like lines, rectangles, 
images, and text fields. These sections are filled repeatedly at report-generating time and 
make up the final document. 
B
AND
C
ONTENT
When declaring the content and layout of a report section, in an JRXML report design, 
use the generic element 
<band>
. Listing 9-1 shows JRXML syntax for report bands.
Listing 9-1. JRXML Syntax
<!ELEMENT band (printWhenExpression?, (break | line | rectangle | 
ellipse | image 
| staticText | textField | subreport | pieChart | pie3DChart | 
barChart 
| bar3DChart | xyBarChart | stackedBarChart | stackedBar3DChart| 
lineChart 
| xyLineChart | areaChart | xyAreaChart | scatterChart | 
bubbleChart 
| timeSeriesChart | highLowChart | candlestickChart | meterChart 
| thermometerChart | multiAxisChart | stackedAreaChart | 
elementGroup | crosstab
| frame)*)>
<!ATTLIST band
height NMTOKEN "0"
splitType (Stretch | Prevent | Immediate) #IMPLIED
>
P
AGE
105
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
Report sections, sometimes referred to as report bands, represent a feature and 
functionality common to almost all reporting tools.
B
AND
H
EIGHT
The 
height
attribute in a report band declaration specifies the height in pixels for that 
particular band and is very important in the overall report design. 
The elements contained by a certain report band should always fit the band’s dimensions; 
this will prevent potentially bad results when generating the reports. The engine issues a 
warning if it finds elements outside the band borders when compiling report designs.
P
REVENTING
B
AND
S
PLIT
In some cases it is desirable to keep the whole contents of a given band in one piece to 
prevent page breaks when the band stretches beyond its initial specified height. To do 
this, use the 
splitType
attribute, as follows:
 Split stretched content: The band never splits within its declared height. The band 
will not start rendering on the current page if the remaining available space is not at 
least equal to the band's declared height. However, if the band stretches on the 
current page, the region that is added to the original height is allowed to split onto 
the next page (
splitType="Stretch"
).
 Prevent split on first attempt: The band starts to render normally, but if the bottom 
of the page is reached without finishing the band, the whole contents of the band 
that are already being laid out are moved to the next page. If the band does not fit 
on the next page, the split occurs normally, as band split prevention is effective 
only on first split attempt (
splitType="Prevent"
).
 Split immediately: The band is allowed to split anywhere except above its topmost 
element (
splitType="Immediate"
).
If a split type is not specified, the default is given by the 
net.sf.jasperreports.band.split.type
configuration property.
S
KIPPING
B
ANDS
All the report sections allow you to define a report expression that will be evaluated at 
runtime to decide if that section should be generated or skipped when producing the 
document.
This expression is introduced by the 
<printWhenExpression>
tag, which is available 
in any 
<band>
element of the JRXML report design and should always return a 
java.lang.Boolean
object or 
null
.
P
AGE
106
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
M
AIN
S
ECTIONS
When building a report template, you must define the content and the layout of its 
sections. The entire structure of the report template is based on the following sections: 
<title>
<pageHeader>
<columnHeader>
<groupHeader>
<detail>
<groupFooter>
<columnFooter>
<pageFooter>
<lastPageFooter>
<summary>
and 
<background>
. All report sections are optional, but of course all useful templates 
have at least one such section.
Listing 9-2 gives the JRXML syntax for including the main report sections.
Listing 9-2. JRXML Syntax
<!ELEMENT background (band?)>
<!ELEMENT noData (band?)>
<!ELEMENT title (band?)>
<!ELEMENT pageHeader (band?)>
<!ELEMENT columnHeader (band?)>
<!ELEMENT detail (band?)>
<!ELEMENT columnFooter (band?)>
<!ELEMENT pageFooter (band?)>
<!ELEMENT lastPageFooter (band?)>
<!ELEMENT summary (band?)>
So let’s take a closer look at each report section and see how it behaves.
T
ITLE
This is the first section of the report. It is generated only once during the report-filling 
process and represents the beginning of the resulting document.
The title section precedes even the page header section. To print the page header before 
the title section, put the elements on the page header at the beginning of the title section 
as well. You can suppress the actual page header on the first page using the 
<printWhenExpression>
, based on the 
PAGE_NUMBER
report variable.
As described in “Report Template Properties” on page 42, the title section can be 
followed by a page break if the 
isTitleNewPage
attribute is set to 
true
.
P
AGE
107
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
P
AGE
H
EADER
This section appears at the top of each page in the generated document.
C
OLUMN
H
EADER
This section appears at the top of each column in the generated document.
D
ETAIL
For each record in the data source, the engine tries to generate this section. The detail 
section can be made of multiple bands.
C
OLUMN
F
OOTER
This section appears at the bottom of each column in the generated document. It never 
stretches downward to acquire the content of its containing text fields. Its rendering 
position is controlled by the 
isFloatColumnFooter
flag declared at report template 
level.
P
AGE
F
OOTER
This section appears at the bottom of each page in the generated document. Just like the 
column footer section, the page footer never stretches downwards to acquire the content 
of its containing text fields and always retains the declared fixed height.
S
UMMARY
This section is generated only once per report and appears at the end of the generated 
document, but is not necessarily the last section generated. This is because in some cases 
the column footer and/or page footer of the last page follows it.
As mentioned in “Report Template Properties” on page 42, you can have the summary 
section start a new page of its own by setting the 
isSummaryNewPage
attribute to 
true
Even if this attribute remains 
false
, the summary section always starts a new page if it 
does not fit on the remaining space of the last page, or if the report has more than one 
column and it has already started a second column on the last page.
L
AST
P
AGE
F
OOTER
If present, this section replaces the normal page footer section, but only on the last 
occurrence of the page footer, which might not be the last page if the summary is present 
and it overflows on multiple pages or it is rendered alone on its own last page. So it 
behaves more like the last page footer than the footer of the last page.
P
AGE
108
Documents you may be interested
Documents you may be interested