free pdf viewer c# : Delete text from pdf acrobat SDK Library API .net asp.net wpf sharepoint JasperReports-Ultimate-Guide-328-part1357

T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
each page from the source document into a grid-like structure using the special algorithm 
mentioned in the “Grid Exporters” section, earlier in this chapter.
By default, the CSV exporter uses commas to separate column values and newline 
characters to separate rows in the resulting file. However, you can redefine the delimiters 
using the two special exporter parameters 
FIELD_DELIMITER
and 
RECORD_DELIMITER
which both accept 
java.lang.String
values.
P
LAIN
T
EXT
E
XPORTER
The 
net.sf.jasperreports.engine.export.JRTextExporter
implementation 
represents a plain text exporter that tries to convert the JasperReports document into a 
simple text document with a fixed page width and height, measured in characters. Users 
can specify the desired page width and height, and the engine will make the best effort to 
fit text elements into the corresponding text page. The basic idea of the algorithm is to 
convert pixels to characters (find a pixel/character ratio). To achieve this, use the 
following parameters:
CHARACTER_WIDTH
and 
CHARACTER_HEIGHT
parameters: These specify how many 
pixels in the original report should be mapped onto a character in the exported text.
PAGE_WIDTH
and 
PAGE_HEIGHT
parameters: These specify the text page width and 
height in characters.
Note that both width and height must be specified and that character sizes have priority 
over page sizes.
Since the algorithm causes loss of precision, a few precautions should be taken when 
creating templates that will eventually be exported to plain text:
 Report sizes and text page sizes should be divisible (for example, specify a 
template width of 1,000 pixels and a page width of 100 characters, resulting in a 
character width of 10 pixels).
 Text element sizes should also follow the preceding rule (for example, if the 
character height is 10 pixels and a particular text element is expected to span two 
rows, then the text element should be 20 pixels tall).
 For best results, text elements should be aligned in a grid-like fashion.
 Text fields should not be too small. Following are two examples of problems that 
this can cause:
*If the element height is smaller than the character height, then the element will 
not appear in the exported text file.
*If the character width is 10 and the element width is 80, then only the first eight 
characters will be displayed.
Users can specify the text that should be inserted between two subsequent pages by using 
the 
BETWEEN_PAGES_TEXT
parameter. The default value is two blank lines.
P
AGE
269
Delete text from pdf acrobat - 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
delete text from pdf file; copy paste text pdf file
Delete text from pdf acrobat - 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
export highlighted text from pdf to word; erase text from pdf file
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
The line separator to be used in the generated text file can be specified using the 
LINE_SEPARATOR
exporter parameter. This is most useful when you want to force a 
particular line separator, knowing that the default line separator is operating system 
dependent, as specified by the 
line.separator
system property of the JVM.
Check the supplied 
/demo/samples/text
sample to see the kind of output this exporter 
can produce.
P
AGE
270
.NET PDF Document Viewing, Annotation, Conversion & Processing
Redact text content, images, whole pages from PDF file. Annotate & Comment. Edit, update, delete PDF annotations from PDF file. Print.
export text from pdf to excel; get text from pdf c#
C# PDF Converter Library SDK to convert PDF to other file formats
Allow users to convert PDF to Text (TXT) file. can manipulate & convert standard PDF documents in other external third-party dependencies like Adobe Acrobat.
extract text from pdf with formatting; extract text from pdf file using java
C
ONFIGURATION
F
ILES
The configuration properties of the JasperReports library can be specified using a 
properties file. The file can be read from the file system, accessed as a resource from the 
classpath, or loaded from an URL. The default name of the properties file is 
jasperreports.properties
. The 
net.sf.jasperreports.properties
system 
property can be used to specify a different file name or location. The default or custom 
name is successively interpreted as a file name, a resource name, and an URL; the 
properties are read from the first succeeding source.
Most of the configuration properties have default values hard-coded in the library. These 
values act as defaults for the properties read from the file. Therefore, the properties file 
can contain only properties whose values differ from the default.
To access and set configuration properties at runtime, use the 
net.sf.jasperreports.engine.util.JRProperties
static methods. This class 
contains constants for all the configuration properties. 
These are the most useful methods:
String getProperty(String key)
: Returns the value of a property as a 
String
boolean getBooleanProperty(String key)
: Returns the value of a property 
as a 
boolean
void setProperty(String key, String value)
: Sets the value of a property
void setProperty(String key, boolean value)
: Sets the value of a 
Boolean property
Prior to version 1.0.0, some of the configuration properties were specified by way of 
system properties. This has been deprecated in version 1.0.0 in favor of using a 
properties file. The names of the properties have also changed.
Using system properties to configure JasperReports is still partially supported for 
backward compatibility. If the system properties are set, their values are used when 
initializing the corresponding configuration properties. Setting and changing the 
configuration properties via 
java.lang.System.setProperty
after the configuration 
properties are initialized is no longer supported; use the 
JRProperties
methods instead. 
Table 19-1 shows the configuration properties currently used by the library, along with 
the old (pre-1.0.0) property names.
Table 19-1. JasperReports Configuration Properties
P
AGE
271
C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. PowerPoint to PDF Conversion.
copy and paste text from pdf to excel; get text from pdf file c#
C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
copying text from pdf to word; extract text from pdf file
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
Property Name
Former System Property Name
net.sf.jasperreports.compiler.class
jasper.reports.compiler.clas
s
net.sf.jasperreports.compiler.xml.validatio
n
jasper.reports.compile.xml.v
alidation
net.sf.jasperreports.compiler.keep.java.fil
e
jasper.reports.compile.keep.
java.file
net.sf.jasperreports.compiler.classpath
jasper.reports.compile.class
.path
net.sf.jasperreports.compiler.temp.dir
jasper.reports.compile.temp
net.sf.jasperreports.crosstab.bucket.measur
e.limit
None
net.sf.jasperreports.default.font.name
None
net.sf.jasperreports.default.font.size
None
net.sf.jasperreports.default.pdf.font.name None
net.sf.jasperreports.default.pdf.encoding
None
net.sf.jasperreports.default.pdf.embedded
None
net.sf.jasperreports.ejbql.query.hint.*
None
net.sf.jasperreports.ejbql.query.page.size
None
net.sf.jasperreports.export.graphics2d.min.
job.size
None
net.sf.jasperreports.export.pdf.font.*
None
net.sf.jasperreports.export.pdf.fontdir.*
None
net.sf.jasperreports.export.pdf.force.lineb
reak.policy
None
net.sf.jasperreports.export.pdf.force.svg.s
hapes
None
net.sf.jasperreports.export.xml.validation jasper.reports.export.xml.va
lidation
net.sf.jasperreports.file.buffer.os.memory.
threshold
None
net.sf.jasperreports.hql.clear.cache
None
net.sf.jasperreports.hql.field.mapping.desc
riptions
None
net.sf.jasperreports.hql.query.list.page.si
ze
None
net.sf.jasperreports.hql.query.run.type
None
P
AGE
272
VB.NET PDF: How to Create Watermark on PDF Document within
create a watermark that consists of text or image (such And with our PDF Watermark Creator, users need no external application plugin, like Adobe Acrobat.
extract text from pdf java; cut text from pdf document
C# Windows Viewer - Image and Document Conversion & Rendering in
standard image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
extract highlighted text from pdf; extract pdf text to excel
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
net.sf.jasperreports.jdbc.fetch.size
None
net.sf.jasperreports.properties
None
net.sf.jasperreports.query.executer.factory
.*
None
net.sf.jasperreports.subreport.runner.facto
ry
None
net.sf.jasperreports.viewer.render.buffer.m
ax.size
None
net.sf.jasperreports.virtualizer.files
.delete.on.exit
None
The meaning of each property can be found in the related chapters of this guide.
In the future, more configuration properties will be supported by the JasperReports 
library to reduce its reliance on hard-coded constant values for various internal settings.
P
AGE
273
C# Excel - Excel Conversion & Rendering in C#.NET
Excel documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Excel to PDF Conversion.
cut text pdf; copy and paste text from pdf to word
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
other documents are compatible, including PDF, TIFF, MS free hand, free hand line, rectangle, text, hotspot, hotspot more plug-ins needed like Acrobat or Adobe
acrobat remove text from pdf; copy text from encrypted pdf
A
DVANCED
J
ASPER
R
EPORTS
Previous chapters have presented the core functionality that most people will use when 
working with the JasperReports library. However, some complex requirements of your 
specific applications might force you to dig deeper into the JasperReports functionality. 
The following sections provide a closer look at those aspects that can help you make 
fuller use of the JasperReports library.
I
MPLEMENTING
D
ATA
S
OURCES
The JasperReports library comes with several default implementations of the 
net.sf.jasperreports.engine.JRDataSource
interface. This interface supplies the 
report data when invoking the report-filling process, as explained in the previous 
chapters of this book.
These default implementations let you generate reports using data from relational 
databases retrieved through JDBC, from Java Swing tables, or from collections and 
arrays of JavaBeans objects.
However, your application data might have a special structure or an organization that 
prevents you from using any of the default implementations of the data source interface 
that come with the library. In such situations, you will have to create custom 
implementations for the 
net.sf.jasperreports.engine.JRDataSource
interface to 
wrap your special report data so that the reporting engine can understand and use it when 
generating the reports.
Creating a custom implementation for the 
net.sf.jasperreports.engine.JRDataSource
interface is not very difficult since 
you have to implement only two methods. The first one, the 
next()
method, is called by 
the reporting engine every time it wants the current pointer to advance to the next virtual 
record in the data source. The other, the 
getFieldValue()
method, is called by the 
reporting engine with every iteration through the data source to retrieve the value for 
each report field.
If your custom data source is also supposed to work with subreports that are placed 
inside bands that cannot split due to the 
isSplitAllowed="false"
property, you can 
implement the 
JRRewindableDataSource
interface. This interface contains an extra 
method that lets the record pointer move back before the first virtual record in the data 
source if the subreport needs to restart on a new page.
P
AGE
274
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
C
USTOMIZING
V
IEWERS
The JasperReports library comes with built-in viewers that enable you to display the 
reports stored in the library’s proprietary format or to preview your report templates 
when you create them.
These viewers are represented by the following two classes:
net.sf.jasperreports.view.JasperViewer
: Use this class to view generated 
reports, either as in-memory objects or serialized objects on disk or even stored in 
XML format.
net.sf.jasperreports.view.JasperDesignViewer
: Use this class to preview 
report templates, either in JRXML or compiled form.
However, these default viewers might not suit everybody’s needs. You may want to 
customize them to adapt to certain application requirements. If you need to do this, be 
aware that these viewers actually use other, more basic visual components that come 
with the JasperReports library.
The report viewers mentioned previously use the visual component represented by the 
net.sf.jasperreports.view.JRViewer
class and its companions. It is in fact a 
special 
javax.swing.JPanel
component that is capable of displaying generated 
reports. It can be easily incorporated into other Java Swing–based applications or 
applets.
If the functionality of this basic visual component does not meet your needs, you can 
adapt it by subclassing it. For example, to create an extra button on the toolbar of this 
viewer, extend the component and add that button yourself in the new visual component 
you obtain by subclassing.
This is shown in the 
/demo/samples/webapp
sample, where the “Printer Applet” 
displays a customized version of the report viewer with an extra button in the toolbar.
Another very important issue is that the default report viewer that comes with the library 
does not know how to deal with document hyperlinks that point to external resources. It 
deals only with local references by redirecting the viewer to the corresponding local 
anchor.
However, JasperReports lets you handle the clicks made on document hyperlinks that 
point to external documents. To do this, simply implement the 
net.sf.jasperreports.view.JRHyperlinkListener
interface and add an instance 
of this listener class to register with the viewer component, using the 
addHyperlinkListener()
method exposed by the 
net.sf.jasperreports.view.JRViewer
class. By doing this, you ensure that the 
viewer will also call your implementation of the 
gotoHyperlink()
method in which 
you handle the external references yourself.
There are two ways of rendering the current document page on the viewer component:
P
AGE
275
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
 Creating an in-memory buffered image and displaying that image
 Rendering the page content directly to the 
Graphics2D
context of the viewer 
component
The first approach has the advantage of smoother scroll operations, since the page 
content is rendered only once as an image, after which the scroll operations occur within 
the view port of that image. The drawback is that at high zoom ratios, the image could 
become so large that an out-of-memory error could occur.
The second approach avoids any potential memory problems at high zoom ratios by 
rendering page content directly onto the view component, but this results in a drop of 
performance that can be seen when scrolling the page.
Switching between the two rendering methods can be controlled by setting the 
net.sf.jasperreports.viewer.render.buffer.max.size
configuration property. 
The value of this property represents the maximum size (in pixels) of a buffered image 
that would be used by the JRViewer component to render a report page (the first 
rendering technique). If rendering a report page requires an image larger than this 
threshold (that is, image width 
·
image height > maximum size), then the report page 
will be rendered directly on the viewer component.
By default, this configuration property is set to 0, which means that only direct rendering 
is performed, no matter what the zoom ratio.
U
SING
J
ASPER
R
EPORTS
IN
W
EB
E
NVIRONMENTS
Recent surveys indicate that JasperReports is usually used inside web-based applications 
to render dynamic content.
When using JasperReports inside such applications, keep in mind how to handle report 
templates, reference report resources, and deal with images when exporting to HTML.
A small web application that does these things is included as one of the samples. The 
/demo/samples/webapp
directory inside the project distribution package contains the 
source files of a simple web application that uses JasperReports for rendering a report. 
This report can be viewed in HTML and PDF format, or even directly as a 
JasperPrint 
object using the built-in Swing viewer as an applet inside the browser.
C
OMPILING
R
EPORT
T
EMPLATES
Any Java application that needs reporting functionality can use the JasperReports library 
in two ways:
 To generate documents out of static report templates that get compiled at 
development time and are distributed in the compiled form as part of the 
application distribution files
 To generate documents out of dynamically built or so-called ad hoc report 
P
AGE
276
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
templates that are the result of some user input at runtime
In the first case, 
*.jasper
files containing compiled report templates are deployed as 
resources inside the application distribution package, just as images or normal Java 
*.class
files are distributed and deployed. The compilation of the static report 
templates should be part of the application build system, taking into account that the 
library is shipped with a ready-to-use Ant task for bulk-compiling multiple report 
template files at once.
The second scenario assumes that static report templates cannot be used, or at least are 
subject to some runtime modifications based on user feedback. Runtime-created or 
runtime-modified report templates must be compiled on the fly. Report compilation in a 
web environment can be a challenge if JDK-based report compilers are used, because 
they require a temporary working directory and an explicitly set classpath. However, 
recent versions of JasperReports use the JDT-based compiler by default, which is both 
faster and easier to use because it does not require any configuration. To use it, make 
sure the 
jdt-compiler.jar
file distributed with the JasperReports project source files 
inside the 
/lib
directory is part of the web application classpath.
D
EPLOYING
R
EPORT
T
EMPLATES
AND
R
ESOURCES
Report templates can reference other resources such as images, fonts, or other report 
templates used as nested subreports. In any Java application, but especially inside web 
applications where locating files on disk is more challenging, the best way to locate static 
resources is by means of classpath. All the resources that need to be loaded using a 
relative location at runtime should be part of the application’s classpath. Images, fonts, 
and subreports should be referenced inside a report template using their relative location 
within the classpath. By doing this, you ensure that links between those resources are 
still valid regardless of how the application is actually deployed.
D
ELIVERING
I
MAGES
IN
HTML F
ORMAT
Since images cannot be embedded in the HTML output directly, but are supposed to be 
retrieved by the browser from their specified public URL, a web application using 
JasperReports for generating reports in HTML must be specially configured for the 
JRHtmlExporter
.
JasperReports is now shipped with a ready-to-use servlet implementation that can deliver 
images from a 
JasperPrint
document or a list of 
JasperPrint
documents placed on 
the HTTP session.
The HTML exporter can be configured so that all the images point to this servlet in their 
URLs. To do this, supply the URL prefix to use for all the images as the value for the 
IMAGES_URI
exporter parameter.
P
AGE
277
T
HE
J
ASPER
R
EPORTS
U
LTIMATE
G
UIDE
The image servlet is implemented by the 
net.sf.jasperreports.j2ee.servlets.ImageServlet
class. An example is in the 
supplied 
/demo/samples/webapp
sample inside the project distribution. 
P
AGE
-
BY
-P
AGE
HTML V
IEWER
The 
JRHtmlExporter
can be configured to export one page at a time. With the source 
JasperPrint
document kept on the HTTP session, an application can simulate a viewer 
that allows users to view the document page by page, as we do with the built-in Swing 
viewer, instead of viewing all the pages at the same time, one after the other.
The provided 
/demo/samples/webapp
sample shows how such a simple HTML viewer 
can be implemented inside a web application.
S
ENDING
PDF C
ONTENT
TO
THE
B
ROWSER
Although it can send binary PDF content directly into an output stream, the PDF exporter 
must be used in combination with an in-memory 
java.io.ByteArrayOutputStream 
when used inside a web application to send output to the browser on the client side. It 
must measure the length of the binary output that it produces before even attempting to 
send that output directly to the browser because some browsers need to know the size of 
the binary content they will receive in order to work properly.
The downside is that you consume extra memory by temporarily storing PDF content 
instead of sending it directly to the consumer.
A
PPLET
V
IEWER
If a web-based application is used only or mainly inside an intranet, and it is acceptable 
to use Java applets for enhanced usability, generated reports can be viewed with the 
built-in Swing viewer. The server application would no longer need to export the 
JasperPrint
objects to more popular formats such as HTML or PDF, but can instead 
send the objects over the network in serialized form to an applet that can display them 
natively.
Among the files available for download on the JasperReports web site is one called 
jasperreports-x.x.x-applet.jar
. This JAR file is smaller than the complete 
jasperreports-x.x.x.jar
because it contains only the class interfaces that the 
viewer needs to display documents in the proprietary 
JasperPrint
format, making it 
more appropriate for an applet.
An applet making use of this smaller JAR file is in the supplied 
/demo/samples/webapp
sample provided with the project’s source files.
P
AGE
278
Documents you may be interested
Documents you may be interested