free pdf viewer c# : Copy text from pdf in preview control SDK platform web page wpf azure web browser JasperReports-Ultimate-Guide-35-part1364

T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
NET
.
SF
.
JASPERREPORTS
.
ENGINE
.
XML
.JRP
RINT
X
ML
L
OADER
Generated documents can be stored in XML format if they are exported using the 
net.sf.jasperreports.engine.export.JRXmlExporter
. After they’re exported, 
you can parse them back into 
net.sf.jasperreports.engine.JasperPrint
objects 
by using this 
JRPrintXmlLoader
.
P
AGE
39
Copy text from pdf in preview - 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 online; get text from pdf into excel
Copy text from pdf in preview - 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 paste pdf text; extract text from pdf open source
R
EPORT
T
EMPLATE
S
TRUCTURE
Generally speaking, a report template contains all the information about the structure and 
the aspects of the documents that will be generated when the data is provided. This 
information determines the position and content of various text or graphic elements that 
will appear in the document, their appearance, the custom calculations, the data grouping 
and data manipulation that should be performed when the documents are generated, and 
so on.
Creating report templates was discussed in “Filling Report Templates” on page 19. This 
chapter will delve into the structure of a report template and demonstrate how each 
component and property can be used to achieve specific functionality.
JRXML
JRXML is the name we use when referring to XML files that represent the definition of a 
JasperReports template and that comply with the mentioned XSD structure.
When working with JRXML report templates, JasperReports uses its own internal XSD 
files to validate the XML content it receives for processing. If the XML validation 
passes, it means that the supplied report design corresponds to the JasperReports-
required XML structure and syntax, and the engine is able to generate the compiled 
version of the report design.
Valid JRXML report templates always point to the JasperReports internal XSD files for 
validation. If the XSD reference is not specified, report compilation will fail abruptly. 
This should not be a big problem since the XSD reference is always the same and can 
simply be copied from previous report templates. To start with, you can copy it from the 
supplied samples.
XSD R
EFERENCE
As already mentioned, the engine recognizes only the XSD references that point to its 
internal XSD files. You cannot make a copy of the XSD files found among the library 
source files and point to that copy in your JRXML report templates. To do that, you must 
alter the code of some of the library classes, including the 
net.sf.jasperreports.engine.xml.JRXmlDigester
class.
P
AGE
40
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview component enables compressing and
copy paste text pdf file; cut text from pdf document
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
Copy, paste and cut PDF image while preview without adobe reader component installed. Image resize function allows VB.NET users to zoom and crop image.
extracting text from pdf; delete text from pdf file
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
If you encounter problems, such as the engine not finding its own internal XSD files due 
to some resource-loading problems, make sure you have eliminated every possible cause 
before deciding to use external XSD files. You will probably not encounter such a 
problem since the resource-loading mechanism of the library has improved with time.
The root element of a JRXML report template is 
<jasperReport>.
This is what a 
typical JasperReports JRXML report template file looks like and how the XSD is 
referenced:
<?xml
version="1.0"?>
<jasperReport
xmlns="http://jasperreports.sourceforge.net/jasperreports
"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
xi:schemaLocation="http://jasperreports.sourceforge.net/jasperrep
orts http://jasperreports.sourceforge.net/xsd/jasperreport.xsd
"
name="name_of_the_report"  >
...
</jasperReport>
The first ellipsis (
...
) represents the report-design properties and settings, and the 
second ellipsis represents the various suppressed report-design elements, such as report 
parameters, fields, variables, groups, report sections, and so on. Examples of these 
follow in later chapters of this book.
JRXML E
NCODING
When creating JRXML report templates in different languages, pay special attention to 
the encoding attribute that can be used in the header of the XML file. By default, if no 
value is specified for this attribute, the XML parser uses UTF-8 as the encoding for the 
content of the XML file.
This is important because the report design often contains localized static texts, which 
are introduced when manually editing the JRXML file.
For most Western European languages, the 
ISO-8859-1
encoding, also known as 
LATIN1
, is sufficient. For example, it includes the special French characters é, â, è, and 
ç, and can be specified using the encoding attribute shown in the following example:
<?xml
version="1.0" encoding="ISO-8859-1"?>
<jasperReport
xmlns="http://jasperreports.sourceforge.net/jasperreports
"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
P
AGE
41
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
Add text to PDF document in preview. • Add text box to PDF file in preview. • Draw PDF markups. Search PDF text in preview. • View PDF outlines.
export highlighted text from pdf; a pdf text extractor
How to C#: Preview Document Content Using XDoc.Word
How to C#: Preview Document Content Using XDoc.Word. Get Preview From File. You may get document preview image from an existing Word file in C#.net.
copy formatted text from pdf; extract text from pdf with formatting
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
xi:schemaLocation="http://jasperreports.sourceforge.net/jasperrep
orts http://jasperreports.sourceforge.net/xsd/jasperreport.xsd
"
name="name_of_the_report"  >
...
</jasperReport>
To find out the encoding type to specify when editing XML files in a particular 
language, check the XML documentation.
R
EPORT
T
EMPLATE
P
ROPERTIES
You have already seen that 
<jasperReport>
is the root element of a JRXML report 
design. This section will show in detail the properties of a report-design object and the 
JRXML attributes that correspond to them. 
Listing 7-1 gives the JRXML syntax for the report template properties. 
Listing 7-1. JRXML Syntax
<!ELEMENT jasperReport (property*, import*, reportFont*, style*, 
subDataset*, 
parameter*, queryString?, field*, sortField*, variable*, 
filterExpression?, group*, 
background?, title?, pageHeader?, columnHeader?, detail?, 
columnFooter?, 
pageFooter?, lastPageFooter?, summary?)>
<!ATTLIST jasperReport
name CDATA #REQUIRED
language CDATA "java"
columnCount NMTOKEN "1"
printOrder (Vertical | Horizontal) "Vertical"
pageWidth NMTOKEN "595"
pageHeight NMTOKEN "842"
orientation (Portrait | Landscape) "Portrait"
whenNoDataType (NoPages | BlankPage | AllSectionsNoDetail) 
"NoPages"
columnWidth NMTOKEN "555"
columnSpacing NMTOKEN "0"
leftMargin NMTOKEN "20"
rightMargin NMTOKEN "20"
topMargin NMTOKEN "30"
bottomMargin NMTOKEN "30"
isTitleNewPage (true | false) "false"
isSummaryNewPage (true | false) "false"
isSummaryWithPageHeaderAndFooter (true | false) "false"
isFloatColumnFooter (true | false) "false"
scriptletClass CDATA #IMPLIED
resourceBundle CDATA #IMPLIED
P
AGE
42
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
copy and paste pdf text; copy and paste text from pdf to excel
How to C#: Preview Document Content Using XDoc.PowerPoint
How to C#: Preview Document Content Using XDoc.PowerPoint. Get Preview From File. You may get document preview image from an existing PowerPoint file in C#.net.
delete text from pdf preview; copy text from locked pdf
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
whenResourceMissingType (Null | Empty | Key | Error) "Null"
isIgnorePagination (true | false) "false"
formatFactoryClass CDATA #IMPLIED
>
R
EPORT
N
AME
Every report design needs a name. It's name is important because the library uses it when 
generating files, especially when the default behavior is preferred for compiling, filling, 
or exporting the report.
The name of the report is specified using the 
name
attribute of the 
<jasperReport> 
element, and its inclusion is mandatory. Spaces are not allowed in the report name—it 
must be a single word.
L
ANGUAGE
Report expressions are usually written using the Java language. However, you can use 
other languages as long as a report compiler is available to help evaluate these 
expressions at report-filling time.
The default value for the 
language
property is 
java
, meaning that the Java language is 
used for writing expressions, and that a report compiler capable of generating and 
compiling a Java class on the fly is used for producing the bytecode needed for 
expression evaluation at runtime.
Report compilers reference this property to see whether they can compile the supplied 
report template or whether a different report compiler should be used, depending on the 
actual scripting language.
The distribution includes a sample inside the 
/demo/samples/groovy
folder, which 
demonstrates how other scripting languages can be used in JasperReports templates.
C
OLUMN
C
OUNT
JasperReports lets users create reports with more than one column on each page. 
Multicolumn report templates also have an associated column-filling order specified by 
the next attribute in this section, 
printOrder
. Figure 3-1 on page 22 shows an example 
of what multicolumn report templates look like.
By default, the reporting engine creates reports with one column on each page.
P
RINT
O
RDER
For reports having more that one column, it is important to specify the order in which the 
columns will be filled. You can do this using the 
printOrder
attribute of the 
<jasperReport>
element. 
P
AGE
43
VB.NET PDF delete text library: delete, remove text from PDF file
Visual Studio .NET application. Delete text from PDF file in preview without adobe PDF reader component installed. Able to pull text
copy text pdf; c# extract pdf text
VB.NET PDF replace text library: replace text in PDF content in vb
and ASP.NET webpage. Find and replace text in PDF file in preview without adobe PDF reader component installed. Able to pull text
c# get text from pdf; copy text from protected pdf to word
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
There are two possible situations:
 Vertical filling: Columns are filled from top to bottom and then left to right 
(
printOrder="Vertical"
).
 Horizontal filling: Columns are filled from left to right and then top to bottom 
(
printOrder="Horizontal"
).
The default print order is 
printOrder="Vertical"
.
P
AGE
S
IZE
There are two attributes at this level to specify the page size of the document that will be 
generated: 
pageWidth
and 
pageHeight
. Like all the other JasperReports attributes that 
represent element dimensions and position, these are specified in pixels. JasperReports 
uses the default Java resolution of 72 dots per inch (DPI). This means that 
pageWidth="595"
will be about 8.26 inches, which is roughly the width of an A4 sheet 
of paper.
The default page size corresponds to an A4 sheet of paper: 
pageWith="595" pageHeight="842"
P
AGE
O
RIENTATION
The 
orientation
attribute determines whether the documents use the 
Portrait
or the 
Landscape
format. JasperReports requires you to adapt the page width and the page 
height when switching from 
Portrait
documents to 
Landscape
, and vice versa. For 
example, assume that you want to create an A4 report using the 
Portrait
layout.
An A4 report has approximately this size: 
pageWidth="595" pageHeight="842" orientation="Portrait"
If you decide to use the 
Landscape
layout for your A4 document, you must be sure to 
modify the page width and page height accordingly, as follows:
pageWidth="842" pageHeight="595" orientation="Landscape"
This is because JasperReports has to know exactly the absolute width and height of the 
pages it will draw on, and does not necessarily consider the value supplied in the 
orientation
attribute, at least not at report-filling time.
This 
orientation
attribute is useful only at report-printing time to inform the printer 
about the page orientation, and in some special exporters. The default page orientation is 
"Portrait"
.
P
AGE
44
VB.NET PDF insert text library: insert text into PDF content in vb
Add text to certain position of PDF page in Visual Basic .NET class. Add text to PDF in preview without adobe reader component installed.
extract all text from pdf; copy and paste text from pdf to word
C# PDF replace text Library: replace text in PDF content in C#.net
Visual Studio .NET. Replace text in PDF file in preview on ASPX webpage. Able to replace PDF text in ASP.NET program. Other PDF edit
edit pdf replace text; copying text from pdf to excel
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
P
AGE
M
ARGINS
Once the page size is decided, you can specify what margins the reporting engine should 
preserve when generating the reports. Four attributes control this: 
topMargin
leftMargin
bottomMargin
, and 
rightMargin
(see Figure 3-1 on page 22).
The default margin for the top and bottom of the page is 20 pixels. The default margin 
for the right and left margins is 30 pixels.
C
OLUMN
S
IZE
AND
S
PACING
Reports may have more that one column, as shown in the preceding discussion of the 
columnCount
attribute. However, the reporting engine has to know how large a column 
can be and how much space should be allowed between columns. Two attributes control 
this: 
columnWidth
and 
columnSpacing
.
Also, when you compile a report JasperReports checks whether the width of the overall 
columns and the space between them exceed the specified page width and page margins.
Since there is only one column by default, the default column spacing is 0 pixels and the 
default column width is 555 pixels (the default page width minus the default left and 
right margins).
E
MPTY
D
ATA
S
OURCE
B
EHAVIOR
The data source for a report might not contain any records. In this case, it is not clear 
what the output should be. Some may expect to see a blank document and others may 
want some of the report sections to be displayed anyway.
The 
whenNoDataType
attribute lets you decide how the generated document should look 
when there is no data in the data source supplied to it.
The possible values of this attribute are as follows:
 Empty document: The generated document will have no pages in it. Viewers might 
throw an error when trying to load such documents 
(
whenNoDataType="NoPages"
).
 Blank page: The generated document will contain a single blank page 
(
whenNoDataType="BlankPage"
).
 All sections displayed: All the report sections except the detail section will appear 
in the generated document (
whenNoDataType="AllSectionsNoDetail"
).
The default value for this attribute is 
whenNoDataType="NoPages"
.
P
AGE
45
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
T
ITLE
AND
S
UMMARY
S
ECTION
P
LACEMENT
To display the title or summary section on a separate page, set one or both of the 
following attributes to 
true
isTitleNewPage 
isSummaryNewPage.
Both of these Boolean attributes are set to 
false
by default.
When the summary section stretches to a new page, or starts on a new page altogether, it 
is not accompanied by the page header and page footer. In order to force the page header 
and page footer to reappear on summary trailing pages, set the 
isSummaryWithPageHeaderAndFooter
to 
true; 
it is set to 
false
by default.
Note
Even if you choose to display the summary section in the remaining space of the last page, a new page 
will automatically start if the report has more than one column and the second column has already started on the 
last page.
C
OLUMN
F
OOTER
P
LACEMENT
The 
isFloatColumnFooter
Boolean property lets users customize the behavior of the 
column footer section. By default, this section is rendered at the bottom of the page, just 
above the page footer. In certain cases, it is useful to render it higher on the page, just 
below the last detail or group footer on that particular column. To do this, set the 
isFloatColumnFooter
property to 
true
.
S
CRIPTLET
C
LASS
The 
scriptletClass
attribute lets you specify the name of the scriptlet class designed 
for the current report. You will learn more about scriptlets in “Scriptlets” on page 230, 
where you'll see that there can be multiple scriptlet instances associated with a report. 
This attribute here is just a convenient way to specify the scriptlet class in case there is 
only one scriptlet associated with the report.
This attribute is used by the engine only if no value is supplied for the built-in 
JRParameter.REPORT_SCRIPTLET
parameter. If neither the attribute nor the parameter 
is used, and no other scriptlet is specified for the report using named scriptlet tags the 
reporting engine uses a single 
net.sf.jasperreports.engine.JRDefaultScriptlet
instance as the report 
scriptlet.
P
AGE
46
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
R
ESOURCE
B
UNDLE
To generate reports in different languages from the same report template, associate a 
resource bundle with the template and make sure that the locale-specific resources inside 
report expressions are retrieved based on the 
$R{}
syntax (explained in “Reporting Data” 
on page 56).
There are two ways to associate the 
java.util.ResourceBundle
object with the 
report template. 
The first is a static association made by setting the 
resourceBundle
property of the 
report template object to the base name of the target resource bundle.
A dynamic association can be made by supplying a 
java.util.ResourceBundle 
object as the value for the 
REPORT_RESOURCE_BUNDLE
parameter at report-filling time. 
See “Internationalization” on page 234 for more details.
M
ISSING
R
ESOURCES
B
EHAVIOR
The 
whenResourceMissingType
property allows users to choose the desired behavior 
of the engine when it deals with missing locale-specific resources in the supplied 
resource bundle. There are four different values that can be used to deal with missing 
resources:
Null
: The null value is used (
whenResourceMissingType="Null"
).
Empty
: An empty string is used (
whenResourceMissingType="Empty"
).
Key
: The key is used (
whenResourceMissingType="Empty"
).
Error
: An exception is raised in case a locale-specific resource is not found in the 
supplied resource bundle for the given key and locale 
(
whenResourceMissingType="Error"
).
P
AGINATION
When the 
isIgnorePagination
property is set to 
true
, the report-filling engine will 
completely ignore page break–related settings inside the report template and generate the 
document on a single, very long page. The value of this property can be overridden at 
runtime using the optional, built-in 
IS_IGNORE_PAGINATION
parameter.
F
ORMATTING
N
UMBERS
, D
ATES
AND
T
IMES
The 
formatFactoryClass
attribute lets you specify the name of the factory class 
implementing the 
net.sf.jasperreports.engine.util.FormatFactory
interface, 
which should be instantiated by the engine in order to produce 
java.text.DateFormat 
and 
java.text.NumberFormat
objects to use for date and number formatting in the 
current report.
P
AGE
47
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
This attribute specifying the factory class name is used only if no value is supplied for 
the built-in 
JRParameter.REPORT_FORMAT_FACTORY
parameter.
If neither of the attribute nor the parameter is used, the engine will eventually instantiate 
the 
net.sf.jasperreports.engine.util.DefaultFormatFactory
implementation 
of the factory interface, which produces 
java.text.SimpleDateFormat
and 
java.text.DecimalFormat
objects for date and number formatting.
You need to use this attribute or the built-in 
JRParameter.REPORT_FORMAT_FACTORY 
parameter only if the report relies on custom date and number formatters.
C
USTOM
P
ROPERTIES
Sometimes it is useful to put some information into the report template itself. This 
information can be used by the parent application at runtime after loading the report 
template, or it can be used by the UI report-design tools to store designer-specific 
information, like whether to display the rules, the size of the snap grid, and so on.
Some of the properties can be transferred onto the generated document and can be used 
by exporter to tailor their behavior. These are also know as exporter hints and more 
details about them can be found in ”Report Exporters” on page 235.
The report templates can store application or user-defined properties in the form of 
named values that can be archived by using any number or 
<property>
tags inside the 
report template.
Listing 7-2 gives the JRXML syntax for the report custom properties.
Listing 7-2. JRXML Syntax
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #IMPLIED
>
It is recommended that property names rely on some namespace policy, just as Java 
application packages do, to ensure that no naming conflict arises when several 
applications store information in the same report template.
Here is how a named value can be put inside the report template:
<property name="com.mycompany.report.author" value="John Smith"/>
<property name="com.mycompany.report.description" value="Displays 
sales data"/>
At runtime, this application-defined data can be retrieved from the report template using 
the API, as follows:
P
AGE
48
Documents you may be interested
Documents you may be interested