how to show .pdf file in asp.net web application using c# : Select text in pdf file SDK software service wpf .net windows dnn UsingFlexCelAPI0-part1765

FLEXCEL STUDIO FOR .NET 
TMS Software 
FlexCel API 
Developers Guide
de
Volume 
Select text in pdf file - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
converting pdf to searchable text format; find and replace text in pdf file
Select text in pdf file - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
search pdf for text in multiple files; search pdf files for text programmatically
Table of Contents 
TABLE OF CONTENTS ............................................................................................................................................. I
. I
I
INTRODUCTION .................................................................................................................................................... 1
. 1
1
BASIC CONCEPTS ................................................................................................................................................. 1
. 1
1
A
RRAYS AND 
C
ELLS
...................................................................................................................................................... 1
1
C
ELL 
F
ORMATS
............................................................................................................................................................. 2
2
C
ELL AND 
S
TYLE 
F
ORMATS
............................................................................................................................................. 3
3
F
ONT 
I
NDEXES
............................................................................................................................................................... 3
3
C
OLORS
....................................................................................................................................................................... 4
. 4
4
D
ATE 
C
ELLS
.................................................................................................................................................................. 5
. 5
5
C
OPYING AND PASTING NATIVE 
E
XCEL DATA
.................................................................................................................. 6
6
READING AND WRITING FILES ............................................................................................................................. 7
. 7
7
O
PENING AND SAVING FILES
.......................................................................................................................................... 7
7
M
ODIFYING FILES
.......................................................................................................................................................... 8
8
U
SING THE 
A
PI
M
ATE TOOL
............................................................................................................................................. 8
8
I
NSERTING
,
C
OPYING AND 
M
OVING 
C
ELLS 
/
R
OWS 
/
C
OLUMNS AND 
S
HEETS
.................................................................. 8
8
CONSIDERATIONS ABOUT EXCEL 2007 SUPPORT ............................................................................................. 10
10
AUTOFITTING ROWS AND COLUMNS ................................................................................................................ 12
. 12
2
A
UTOFITTING 
M
ERGED 
C
ELLS
....................................................................................................................................... 14
14
PREPARING FOR PRINTING ................................................................................................................................ 15
15
M
AKING THE SHEET FIT IN ONE PAGE OF WIDTH
.............................................................................................................. 15
15
R
EPEATING 
R
OWS AND 
C
OLUMNS AT THE TOP
.............................................................................................................. 15
15
U
SING 
P
AGE 
H
EADERS
/F
OOTERS
................................................................................................................................. 16
16
I
NTELLIGENT 
P
AGE 
B
REAKS
........................................................................................................................................... 16
16
The Widow / Orphan problem ................................................................................................................... 17
17
The different printers problem .................................................................................................................... 18
18
Using different levels of “Keep together” ................................................................................................. 19
19
Inserting and copying Rows with a “keep together” level .................................................................... 19
19
USING EXCEL'S USER DEFINED FUNCTIONS (UDF) ............................................................................................ 20
20
I
NTRODUCTION
........................................................................................................................................................... 20
20
Step 1: Defining the Function in .NET ......................................................................................................... 21
21
Step 2: Registering the UDF in FlexCel ....................................................................................................... 22
22
MISCELLANEA ..................................................................................................................................................... 24
24
U
SING 
.NET
LANGUAGES DIFFERENT FROM 
C# ............................................................................................................. 24
24
Operators ..................................................................................................................................................... 24
24
Automatic conversion ................................................................................................................................ 26
26
S
TREAMING 
E
XCEL AND 
P
DF FILES TO THE BROWSER
....................................................................................................... 26
26
F
INDING OUT WHAT FORMAT STRING TO USE IN 
TF
LX
F
ORMAT
.F
ORMAT
............................................................................. 27
27
R
ECALCULATING 
L
INKED 
F
ILES
...................................................................................................................................... 30
30
A
VOIDING THE 
“D
O YOU WANT TO SAVE THE CHANGES
DIALOG ON CLOSE
. ................................................................. 33
33
CLOSING WORDS ............................................................................................................................................... 34
34
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Extract various types of image from PDF file, like XObject Image, XObject Form, Inline Image, etc. C#: Select An Image from PDF Page by Position.
find text in pdf image; pdf find highlighted text
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
RsterEdge XDoc PDF SDK for .NET, VB.NET users are able to extract image from PDF page or file and specified VB.NET : Select An Image from PDF Page by
cannot select text in pdf; find and replace text in pdf
FLE XC EL AP P I DE E V EL L OP P E RS  G G U IDE  
Introduction 
The FlexCel API (Application Programmer Interface) is what you use to read or write Excel 
files on a low level way.  By “low level” we mean that this API is designed to work really 
“close to the metal” and there aren’t many layers between you and the xls/xlsx file being 
created. For example, FlexCel API doesn’t know about datasets, because datasets are a 
higher level concept. If you want to dump a dataset into an xls file using the API, you need 
to loop in all records and enter the contents into the cells. 
In addition to the FlexCel API we provide a higher level abstraction, FlexCelReports, that 
does know about datasets and in general works at a more functional level; a declarative 
approach instead of an imperative approach. What is best for you depends on your 
needs. 
Basic Concepts 
Before starting writing code, there are some basic concepts you should be familiar with. 
Mastering them will make things much easier in the future. 
Arrays and Cells 
To maintain our syntax compatible with Excel OLE automation, most FlexCel indexes/arrays 
are 1-based. 
That is, cell A1 is (1,1) and not (0,0). To set the first sheet as ActiveSheet, you would write 
ActiveSheet=1 and not ActiveSheet=0. 
So, in C++ loops should read: “for (int i=1;i<=Count;i++)”, In VB.NET they should read 
ad 
“for i = 1 to Count” and in Delphi they should be like “for i:=1 to Count” 
Count” 
The two exceptions to this rule are XF and Font indexes, which are 0 based because they 
are so on Excel. 
VB.NET PDF Text Redact Library: select, redact text content from
Convert PDF to SVG. Convert PDF to Text. Convert PDF to JPEG. Convert PDF to Png, Gif, Bitmap Images. File & Page Process. File: Merge, Append PDF Files. File
select text pdf file; searching pdf files for text
C# PDF Text Redact Library: select, redact text content from PDF
Enable users abilities to adjust color and transparency while scraping text from PDF file. Able to redact selected text in PDF document.
text select tool pdf; search pdf documents for text
Cell Formats 
All formats (colors, fonts, borders, etc) on an Excel workbook are stored into a list, and 
referred by number. This number is known as the XF (eXtended Format) index. A simple 
example follows: 
Here Cell B3 has XF=0 and the XF definition for the background color is green. Row 6 has 
XF=2, so all the empty cells on row 6 are yellow. Column C has XF=1, so all the empty cells 
on column C that do not have a Row format are Blue.  
Most formatting methods at FlexCel return an XF index, and then you have to look at the XF 
at the XF 
list (using the GetFormat method) to get a class encapsulating the real format. There are 
two helper methods, GetCellFormatDef and GetCellVisibleFormatDef that obtain the XF 
XF 
index and return the format class in one step. 
To create new formats, you have to use the AddFormat method. Once you get the Id of 
d of 
the new XF, you can use it as you wish.  
Also, you don't have to worry also on inserting a format 2 times, if it already exists, 
AddFormat will return the existing id and not add a new XF entry. 
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
is loaded as sample file for viewing on the viewer. See screeshot as below. Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document
convert pdf to searchable text online; search a pdf file for text
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
is loaded as sample file for viewing on the viewer. See screeshot as below. Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document
convert pdf to searchable text; pdf searchable text
Cell and Style Formats 
XF formats can be of two types, “Cell” or “Style”. Cell formats are applied directly to a cell 
and can have a “ParentStyle” which must be a style format. Style formats cannot have 
ParentStyle and cannot be applied to cells, but they can be used as base for defining 
different Cell formats.  You can know if a TFlxFormat contains a “Style” or “Cell” format by 
looking at its “IsStyle” property. Also, a cell style can link only parts of its format to its parent 
style, for example have the font linked so when you change the font in the style it changes 
the font in the cell, but not the cell borders. In order to set which properties are linked to 
the main style, you need to change the “LinkedStyle” property in TFlxFormat. 
You can create new Style formats with ExcelFile.SetStyle, and new Cell formats with 
ExcelFile.AddFormat. Once you create a new style and give it a name, you can get its 
definition as a TFlxFormat, change its “IsStyle” property to true, define which propertyies 
you want to link with the “LinkedStyle” property, and add that format using AddFormat to 
get the cell format. Once you have the cell style, you can just apply it to a cell. 
The LinkedStyle class has a member, “AutomaticChoose”, which if left 
left 
to true (the default) will compare your new format with the style and 
only link those properties that are the same. 
For example, let’s imagine you create a style “MyHyperlink”, with font 
blue and underlined. Then you create a Cell format that uses 
“MyHyperLink” as parent style, but also has red background, and apply 
it to cell A1. If you leave AutomaticChoose true, FlexCel will detect that the cell format is 
equal in everything to its parent style except in the background, so it will not link the 
background of the cell to the style. If you later change the background of MyHyperlink, 
cell A1 will continue to be red. 
This allows for having “partial styles”, as in the example above, a “hyperlink” style defines 
that text should be blue and underlined, but it doesn’t care about the cell background. If 
you want to manually set which properties you want to have linked instead of FlexCel 
calculating that for you, you need to set AutomaticChoose to false and set the “Linked….” 
Properties in LinkedStyle to the values you want. 
Font Indexes 
The same way we have an XF list were we store the formats for global use, there is a Font 
list were fonts are stored to be used by XFs.  You normally don't need to worry about the 
FONT list because inserting on this list is automatically handled for you when you define an 
XF format. But, if you want to, you can for example change Font number 7 to be 15 points, 
and all XFs referencing Font 7 will automatically change to 15 points. 

C# HTML5 Viewer: Load, View, Convert, Annotate and Edit OpenOffice
pptx) on webpage, Convert CSV to PDF file online, convert CSV to save signatures to OpenOffice and CSV file. Viewer particular text tool can select text on all
how to make a pdf document text searchable; find text in pdf files
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
PDF to text, C#.NET convert PDF to images, C#.NET PDF file & pages Pan around the PDF document. Select text and image to copy and paste using Ctrl+C and Ctrl+V
find and replace text in pdf file; pdf find text
Colors 
While colors in Excel up to 2003 were indexes to a palette of 56 colors, Excel 2007 
introduces true color, and FlexCel 5.0 implements it too. What is nice about them is that 
they can be retrofitted in the xls file format, so while you won’t be able to see true color in 
Excel 2003, an xls file saved with FlexCel 5 and opened in FlexCel 5 or Excel 2007 will have 
true color, even if it is not xlsx. 
There are four kinds of colors that you can use in Excel: 
RGB: This is just a standard color specified by its Red, Green and Blue values. 
Theme: There are 12 theme colors, and each of them can have a different tint 
(brightness) applied. The palette Excel 2007 shows by default is a Theme palette: 
In this case, you can see the 12 theme colors horizontally, and vertically variations 
of those colors with different brightness. Themes are a nice way to specify colors, 
since you can change the theme later, and all colors will change to match. 
Indexed Colors. This is kept for background compatibility with Excel 2003, but we 
strongly recommend you forget about them.  
Automatic Color. This changes depending if the color is a background or a 
foreground. 
You can access any of these variants with the struct “TExcelColor”. 
TExcelColor also automatically converts from a System.Drawing.Color, so you can just 
specify something like: 
MyObject.Color = Color.Blue; 
C# WPF PDF Viewer SDK to view PDF document in C#.NET
PDF to text, C#.NET convert PDF to images, C#.NET PDF file & pages Pan around the PDF document. Select text and image to copy and paste using Ctrl+C and Ctrl+V
search pdf for text; how to select text in a pdf
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Default create. Click to select drawing annotation with default properties. Other Tab. 17. Text box. Click to add a text box to specific location on PDF page.
how to select text in pdf reader; how to make pdf text searchable
If you want to use a theme color, you will have to use: 
MyObject.Color = TExcelColor.FromTheme(…); 
The “NearestColorIndex” used in older version of FlexCel has been deprecated and you 
shouldn’t use it. 
You can find more information about Excel 2007 colors at  
http://tmssoftware.com/site/blog.asp?post=135 
Date Cells 
As you might already know, there is no DATE datatype in Excel. 
Dates are saved as a double floating number where the integer part is the number of days 
that have passed from 1/1/1900, and the fractional part is corresponding fraction of the 
day. For example, the number 2.75 stands for "02/01/1900  06:00:00 p.m." You can see this 
easily at Excel by entering a number on a cell and then changing the cell format to a 
date, or changing the cell format of a date back to a number. 
The good news is that you can set a cell value to a DateTimeValue, and FlexCel will 
automatically convert the value to a double, keeping in count “1904” date settings (see 
below). That is, if you enter  
XlsFile.SetCellValue(1,1, DateTime.Now), and the cell (1,1) has date format, you will write 
ll write 
the actual value of "now" to the sheet. 
The bad news is that you have no way to know if a cell has a number or a date just by 
looking at its value. If you enter a date value into a cell and then read it back, you will get 
get 
a double. So you have to look at the format of the cell. There is a helper function, 
TFlxNumberFormat.FormatValue that can help you on this issue. 
Excel also has a “1904” date mode, where dates begin at 1904 and not 
nd not 
1900. This is used on Excel for mac, but you can change this option in 
in 
Excel for Windows too. FlexCel completely supports 1900 and 1904 
dates, but you need to be careful when converting dates to numbers 
and back. 

Copying and pasting native Excel data 
XlsFile has a group of methods that allow you to copy/paste from/to FlexCel to/from Excel 
in native Excel format (Biff8).  You can copy data to the clipboard in Biff8, Tabbed Text, 
Text, 
and HTML formats. You can paste from the clipboard in BIFF8 and Tabbed-Text format.  
.  
Normally copying in Biff8 is good for pasting the data in Excel, Html is good if you later want 
to paste in Word or PowerPoint, and text works for pasting into applications that don’t 
understand Biff8 or HTML. 
Copying and pasting in native BIFF8 format is a great advance over copying/pasting on 
plain text only. It allows you to keep cell formats/colors/rounding decimals/merged 
cells/etc. But it has its limitations too: 
It can't copy/paste images 
It can't copy/paste strings longer than 255 characters 
It can't copy the data on multiple sheets. 
We would like to say that these limitations are not FlexCel's fault. The BIFF8 specification is 
correctly implemented; those are limitations on Excel's part. 
Of course, Excel can copy and paste everything without problems, but this is because 
Excel doesn't use the clipboard to do the operation. If you close all instances of Excel, 
open a Worksheet, copy some cells to the clipboard, close Excel and open it again you will 
run into the same limitations. Copy/paste limitations on Excel don't show when it is kept in 
memory. 
Reading and Writing Files 
The native FlexCel engine is encapsulated on the class XlsFile. This class stores an Excel file 
in memory, and has methods allowing loading a new file into it, modifying it, or saving its 
contents to a file or a stream. 
Important: Even when a FlexCel object is fully managed and you don't 
need to dispose it, keep in mind that it stores a full spreadsheet in 
memory. Do not leave global XlsFile objects hanging around when you 
don't need them because they can use a lot of memory. Just set them to 
null when you are done using them, or use local objects. 
Opening and saving files 
A simple code to process an Excel file would be: 
private void ProcessFile(string sourceFileName, string destFileName) 
ileName) 
XlsFile xls= new XlsFile(true); 
xls.Open(sourceFileName); 
//... process the file 
xls.Save(destFileName); 
Here we can note: 
1.
On this example xls variable is a local object, so there is no need to free it. If xls was 
ls was 
a global variable, it would be a good idea to set xls=null at the end of the method 
(with a try/finally block). 
2.
By default, FlexCel never overwrites an existing file. So, before saving you always 
ys 
have to call File.Delete, or set XlsAdapter.AllowOverWriteFiles property = true.
.
On 
this example, we set AllowOverWriteFiles = true on the line: “... = new XlsFile(true)”. 
”. 
Modifying files 
Once you have loaded a document with XlsFile.Open or created a new empty file with 
ith 
XlsFile.NewFile you can proceed to modify it. Add cells, formats, images, insert sheets, 
delete ranges, merge cells or copy ranges from one place to another. It is not on the 
scope of this document to show how to do this, you should look first at the available demos 
for the different things you can do, and then on the reference (F1 from Visual Studio or 
Delphi) to learn about specific methods, or simpler, look at the ApiMate tool in the section 
section 
below. 
Using the ApiMate tool 
Many times an easy way to find out the exact command you need to call to do something 
is using the ApiMate tool (in the “Tools” folder). In short, this tool will “convert” a 
spreadsheet into code. If for example, you want to know how to insert a formatted 
comment in cell A3, just create a new Excel file, write the comment, save the file and open 
it with ApiMate. It will show you the code you need, in C#, VB.NET or Delphi.NET/Prism.  
ApiMate is not a panacea, and there are many methods you will never find with it (for 
example the methods for searching of for inserting and copying rows), but if can be very 
useful. You can find a tutorial on how to use it at  
http://www.tmssoftware.com/flexcel/tutorial.htm  
Inserting, Copying and Moving Cells / Rows / Columns and Sheets 
While APIMate will cover much of the API, there is a whole category of commands that 
can’t be shown there, and that are very important while manipulating files. Those 
commands are the ones used to insert/copy/move cells/sheets, etc. One of FlexCel 
strongest points is the big support offered for all those operations. Since those methods are 
used everywhere in FlexCel Reporting engine, they are at the core of the engine, not 
inserted as an afterthought. They perform very well, and they are deeply tested. 
ed. 
Now, something that might be a little unexpected if you are not aware of, is that we 
decided to provide that functionality in a few very powerful and overloaded methods, 
instead of a million standalone methods. That is, instead of having “InsertRow” 
“InsertColumns”, “InsertCells” “CopyColumns”, “CopyCells”  “CopyRows”, 
“InsertAndCopyRows”
1
“InsertAncCopyColumns”, etc, we just provide an 
1
InsertAndCopy operations could be theoretically implemented as “Insert” then “Copy”, but that 
would be much slower. In many cases we want to insert and copy at the same time, and doing it all 
at once is much faster. Also in some border cases where the inserted cells are inside the range of the 
copied cells, Inserting and then copying can give the wrong results. 
Documents you may be interested
Documents you may be interested