how to show .pdf file in asp.net web application using c# : Search pdf for text software SDK dll windows wpf asp.net web forms UsingFlexCelAPI2-part1767

19 
Using different levels of “Keep together” 
Normally just marking the rows you want to keep together and then calling 
AutoPageBreaks should be enough for most cases. But sometimes you might have more 
than one “keep together” level to keep, and you can set this as one of the parameters in 
KeepRows/ColsTogether. 
Imagine you have a master detail report with a list of stores, then the customers of each 
store and the orders for each customer. You might want to keep all customers of a store 
together in one page, but if that is not possible, at least keep the orders together. You can 
do this by assigning a level of “2” to the orders, and a level of “1” to the customers. The 
actual numbers don't matter, you could use a level of “10” for orders and “5” for 
customers. The only important thing is that one level is bigger than the other. 
When you assign different levels to different rows, FlexCel will try to keep lower levels first, 
but if not possible, it will try to fit at least the higher ones. 
Inserting and copying Rows with a “keep together” level 
Inserting and copying rows works as expected, when you copy a group of rows with a level 
of 2 and insert them in other place, the “2” level will be copied. It also works when copying 
ng 
across different files, but you need to copy full rows in any case. When copying ranges that 
are not the complete rows, those values will not be copied, as expected. 
ected. 
Search pdf for text - 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
make pdf text searchable; can't select text in pdf file
Search pdf for text - 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
text searchable pdf; pdf editor with search and replace text
20 
Using Excel's User Defined Functions (UDF) 
Introduction 
User defined functions in Excel are macros that return a value, and can be used along with 
internal functions in cell formulas. Those macros must be defined inside VBA Modules, and 
can be in the same file or in an external file or addin. 
While we are not going to describe UDFs in detail here, we will cover the basic information 
you need to handle them with FlexCel. If you need a more in depth documentation in 
UDFs, there is a lot of information on them everywhere.  
So let's start by defining a simple UDF that will return true if a number is bigger than 100, 
false otherwise. 
We need to open the VBA editor from Excel (Alt-F11), create a new module, and define a 
macro inside that module: 
Function NumIsBiggerThan100(Num As Single) As Boolean 
NumIsBiggerThan100 = Num > 100 
End Function 
And then write “=NumIsBiggerThan100(120)” inside a cell. If everything went according to 
the plan, the cell should read “True” 
Now, when recalculating this sheet FlexCel is not going to understand the 
“NumIsBiggerThan100” function, and so it will write “#Name?” in the cell instead. Also, if 
if 
you want to enter “=NumIsBiggerThan100(5)” in cell A2, FlexCel will complain that this is not 
a valid function name and raise an Exception. 
In order to have full access to UDFs in FlexCel, you need to define them as a class in .NET 
and then add them to the recalculation engine. 
C# Word - Search and Find Text in Word
C# Word - Search and Find Text in Word. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
pdf select text; search pdf files for text programmatically
C# PowerPoint - Search and Find Text in PowerPoint
C# PowerPoint - Search and Find Text in PowerPoint. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
search text in pdf using java; how to search text in pdf document
21 
Step 1: Defining the Function in .NET 
To create a function you need to derive a class from “TUserDefinedFunction”, and override 
the “Evaluate” method. For the example above, we would create: 
public class NumIsBiggerThan100: TUserDefinedFunction 
public TNumIsBiggerThan100(): base("NumIsBiggerThan100")  
)  
{ } 
//Do not define any global variable here. 
public override object Evaluate(TUdfEventArgs arguments,    
object[] parameters) 
{  
//Check we have only one parameter 
TFlxFormulaErrorValue Err;  
if (!Checkparameters(parameters, 1, out Err))  
)  
return Err;  
//The parameter should be a double. 
double Number;  
if (!TryGetDouble(arguments.Xls, parameters[0],  
out Number, out Err)) return Err; 
Err; 
return Number > 100 
As you can see, it is relatively simple. Some things worth noting: 
1.
Don't use global variables inside Evaluate: Remember, the Evaluate() method 
might be called more than once if the function is written in more than one cell, and 
you cannot know the order in which they will be called. Also if this function is 
registered to be used globally, more than a thread at the same time might be 
calling the same Evaluate method for different sheets. The function must be 
stateless, and must return always the same value for the same arguments. 
2.
As you can see in the reference for the Evaluate method (FlexCel.chm), the 
evaluate method has two arguments. The first one provides you with utility objects 
you might need in your function (like the XlsFile where the formula is), and the 
second one is a list of parameters, as an array of objects. 
Each object in the parameters array might be a null, a Boolean, a String, a Double, 
ouble, 
a TXls3DRange, a TFlxFormulaErrorValue, or a 2 dimensional array of objects, where 
re 
each object is itself of one of the types mentioned above.  
While you could manually check for each one of the possible types with code like: 
C# PDF delete text Library: delete, remove text from PDF file in
option). Description: Delete specified string text that match the search option from PDF file. Parameters: Name, Description, Valid Value.
pdf make text searchable; search multiple pdf files for text
C# PDF replace text Library: replace text in PDF content in C#.net
Description: Delete specified string text that match the search option from specified PDF page. Parameters: Name, Description, Valid Value.
how to select text on pdf; pdf search and replace text
22 
if parameters[0] is double then ... else if parameter is String then 
... etc 
this will get tiring fast. So the TUserDefined class provides helper methods in the form 
of “TryGetXXX” like the “TryGetDouble” used in the example. There is also the 
convention in Excel that when you receive a parameter that is an error, you should 
return that parameter to the calling function. Again, this can be tiring to do each 
time, so the TUserDefined class provides a CheckParameters method that will do it 
for you.  
The only time you will not call CheckParameters as the first line of your UDF is when 
you are creating a function that deals with errors, like “IsError(param)”, that will 
return true when the parameter is an error. 
3.
Do not throw Exceptions. Exceptions you throw in your function might not be 
trapped by FlexCel, and will end in the recalculation aborting. Catch all expected 
exceptions inside your method, and return the corresponding 
TFlxFormulaErrorValue.XXX when there is an error. 
Step 2: Registering the UDF in FlexCel 
Once you have defined the UDF, you need to tell FlexCel to use it. You do this by calling 
AddUserDefinedFnction in an XlsFile object. Once again, some points worth noting: 
1.
You need to define the scope of your function. If you want it to be globally 
accessible to all the XlsFile instances in your application, call 
AddUserDefinedFunction with a “Global” TUserDefinedFunctionScope. If you want 
the function to be available only to the XlsFile instance you are adding it to, specify 
“Local”. Global scope is easier if you have the same functions for all the files, but 
can cause problems if you have different functions in different files. Local scope is 
safer, but you need to add the functions each time you create an XlsFile object 
that needs them. If you are unsure, probably local scope is better. 
2.
You also need to tell FlexCel if the function will be defined inside the same file or if it 
will be in an external file. This is not really needed for recalculating, but FlexCel 
needs to know it to enter formulas with custom functions into cells. 
There are four things you can do with formulas that contain UDFs, and there are different 
things you need to do for each one of them: 
1.
Retrieve the formula in the cell: You do not need to do anything for this. FlexCel will 
always return the correct formula text even if you do not define any udf. 
VB.NET PDF replace text library: replace text in PDF content in vb
The following coding example illustrates how to perform PDF text replacing function in your VB.NET project, according to search option.
convert a scanned pdf to searchable text; how to select all text in pdf
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Image: Extract Image from PDF. Easy to search PDF text in whole PDF document.
how to make pdf text searchable; convert pdf to word searchable text
23 
2.
Copy a cell from one place to another. Again, there is no need to do anything or 
define any UDF object. FlexCel will always copy the right formula, even if copying to 
another file. 
3.
Calculate a formula containing UDFs. For this one you need to define an UDF class 
describing the function and register it. You do not need to specify if the formula is 
contained in the sheet or stored in an external addin. 
4.
Enter a formula containing an UDF into a sheet. In order to do this, you need to 
define and register the UDF, and you must specify if the function is stored internally 
or externally. 
For more examples on how to define your own UDFs, please take a look at the “Excel User 
Defined Functions” API demo. 
Note: Even when they look similar, UDFs are a completely different thing 
from Excel Built-in functions. Everything said in this section applies only to 
UDFs, you cannot use this functionality to redefine an Standard Excel 
function like “Sum”. If recalculating some built in function is not 
supported by FlexCel just let us know and we will try to add the support, 
but you cannot define them with this. 

C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Page: Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Easy to search PDF text in whole PDF document.
convert a scanned pdf to searchable text; pdf text searchable
C# PDF Text Highlight Library: add, delete, update PDF text
Description: Highlight specified string text that match the search option from PDF file. Parameters: Name, Description, Valid Value.
can't select text in pdf file; pdf searchable text
24 
Miscellanea 
Using .NET languages different from C# 
While FlexCel.NET runs in any .NET language, and we try to provide most demos and 
documentation for most languages, you will sooner or later find code snippets, newsgroups 
posts, etc. available only in C#, since FlexCel itself is written in C#. This will probably be no 
big problem since all languages under .NET behave in similar ways, but we will try in this 
section to help a little with it. 
Even if you do not have exposure to any C-based language, C# examples are not so 
difficult to read. But there are some basic concepts that you might help you understanding 
them, based on the feedback we get from our users, and we will explain them there. If you 
already are fluent at C#, just skip this section. 
Operators 
C-based languages are a little less verbose than others when specifying operators, and this 
is 
might result a little cryptic when you are not used to them. For example, to specify an “if” 
statement in C# that evaluates to true if either a and b are true or c is true you would write: 
if ((a && b) || c)  
while in VB.NET or Delphi.NET it would be: 
if (a and b) or c then 
A small list of operators you might find while reading the source code is here:  
LOGICAL OPERATORS: 
Operator 
Meaning 
Example 
Not 
if (!a) means “If not a” 
|| 
Or 
if (a || b) means “if a or b” 
&& 
And 
if (a && b) means “if a and b” 
BITWISE OPERATORS: 
Operator 
Meaning 
Example 
Not 
~ 1 means “not 1” 
Or 
2 | 1 means “2 or 1” ( this is 3) 
And 
2 & 1 means “2 and 1” ( this is 0) 
Xor 
1 ^ 1 means 1 xor 1 (this is 0) 
25 
We will not make a detailed explanation of the operators here, as the only idea here is to 
help you read the examples, but you can read the full documentation at: 
http://msdn2.microsoft.com/en-us/library/6a71f45d(VS.71).aspx  
As an example, the code to print a page in portrait mode in C# is: 
if (Landscape)  
Xls.PrintOptions &= ~(TPrintOptions.Orientation |  
TPrintOptions.NoPls);  
else 
//ALWAYS SET NOPLS TO 0 BEFORE CHANGING OTHER OPTIONS. 
Xls.PrintOptions &= ~ TPrintOptions.NoPls;  
Xls.PrintOptions |= TPrintOptions.Orientation;  
The equivalent VB.NET code would be: 
If Landscape Then 
Xls.PrintOptions = Xls.PrintOptions And  
(Not(TPrintOptions.Orientation Or TPrintOptions.NoPls)) 
)) 
Else 
'ALWAYS SET NOPLS TO 0 BEFORE CHANGING OTHER OPTIONS. 
Xls.PrintOptions = Xls.PrintOptions And  
(Not TPrintOptions.NoPls) 
Xls.PrintOptions = Xls.PrintOptions Or  
(TPrintOptions.Orientation) 
End If 
In Delphi Prism you can just use the “in” operator to see if the value is inside the range or 
not. In this example: 
Xls.PrintOptions := TPrintOptions(integer(Xls.PrintOptions)  
and (not   
(integer(TPrintOptions.Orientation) or   
integer(TPrintOptions.NoPls)))); 
26 
Automatic conversion 
Many times, the easiest way to understand a code snippet in C# is just to use an automatic 
translator to translate it to your language. You can find many online translators just by 
searching, but we will mention two of them here: 
For VB.NET: http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspx  
For Delphi.NET: http://lingua.codegear.com/babelcode/  
Streaming Excel and Pdf files to the browser 
A simple code snippet that you are likely to use, is the one to send the generated files to 
the browser, without creating any temporary file. You can find it in the ASP.NET demos, but 
just in case you need a fast reference, here it is: 
using (MemoryStream ms= new MemoryStream()) 
m()) 
Xls.Save(ms); 
ms.Position=0; 
Response.Clear(); 
Response.AddHeader("Content-Disposition""attachment;"      
+ "filename=Test.xls"); 
Response.AddHeader("Content-Length",  
ms.Length.ToString()); 
Response.ContentType = "application/excel"; 
Response.BinaryWrite(ms.ToArray()); 
Response.End(); 
Make sure to use ms.ToArray() and not ms.GetBuffer(), since GetBuffer is 
not guaranteed to return everything. To stream a pdf file, change 
application/excel by application/pdf. 
27 
Finding out what format string to use in TFlxFormat.Format 
When you want to format a cell with a specific numeric format, you need to specify it in 
in 
the TFlxFormat.Format property. 
For example, to format a cell as Currency with two decimal places, you could use: 
TFlxFormat f = Xls.GetDefaultFormat; 
f.Format="#,##0.00"; 
Now, how do you find out which format string to use? Format strings in FlexCel are the 
same used in Excel, and you can find documentation about them in Excel help, if you 
have doubts about them. But there are two easy ways to find out which format to use for 
most normal cases, and this is what we will explain now: 
1.
Simply use APIMate tool (search for it in the start menu) to find out. Create a new 
new 
file in Excel, format the cells as you want, open the file with ApiMate and look at the 
the 
formats. It will show you exactly the format you need, in C#, VB.NET or Delphi.NET.  
2.
While method A is normally easier, you can also find out the format directly from 
Excel by following the steps below: 
28 
a.
Open a new Excel sheet, right click a cell and select “Format Cells...”: 
b.
In the dialog that appears, select the format you want. In this example we 
will choose currency with two decimals and thousands separator, but it 
applies to any format. 
Documents you may be interested
Documents you may be interested