how to show pdf file in asp.net page c# : Search text in multiple pdf Library SDK component .net asp.net wpf mvc Visual_CUT_User_Manual11-part1961

©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 111 
IFrame Approach 
Alternatively, Visual CUT can export a report to HTML "display" page every N seconds. A 
"dashboard" web page, visited by the users web browser:  
a) reloads itself every N seconds using an HTML tag such as: 
<META http-equiv=refresh content=30>  
b) loads the html "display" page into an IFrame areas (think about an IFRame as a picture frame 
for displaying another HTML page). 
Using IFrames allows the hosting page to display multiple reports and use various GUI elements 
(Menus, Tabs, Accordions, and Data Tables). A sample web dashboard using that approach is 
available at: http://www.milletsoftware.com/dash/dash_demo_tabs.html 
user id & password: demo 
Visual CUT keeps refreshing the HTML display page by exporting to it every N seconds, and the 
dashboard page keeps refreshing itself and reloading the HTML display page.  Hence, the user 
experiences an auto-refreshing dashboard by simply having that page open in a browser.  
Here is what the dashboard HTML page may look like: 
Preventing File Locking 
In order to prevent any chance of file locking, Visual CUT can export the reports to one folder 
and then copy (or FTP) the resulting HTML file to the web folder. Here is an example of a 
simple batch file that executes the Visual CUT export and then copies the resulting HTML page: 
"C:\Program Files\Visual CUT 11\Visual CUT.exe" -E "c:\Reports\Dash1.rpt" 
Copy c:\temp\Dashboard_1.html E:\Dashboards\Dashboard_1.html 
Case Study 
Phillip Scheel, a data analyst at CPS Energy, was kind enough to provide a pdf file describing 
the approach and several dashboards he has developed. 
<HTML><HEAD><TITLE>Backlog Dashboard</TITLE> 
<META http-equiv=Content-Type content="text/html; charset=windows-1252"> 
2"> 
<META http-equiv=refresh content=30> 
0> 
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD> 
D> 
<BODY> 
<P><IFRAME border=0 name=I1  
src="E:\Dashboards\Dashboard_1.html"  
"  
frameBorder=0 width=1048 height=20000> 
</body> 
</html></IFRAME></P></BODY></HTML> 
Search text in multiple pdf - 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
pdf text search tool; pdf text select tool
Search text in multiple pdf - 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
searching pdf files for text; cannot select text in pdf
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 112 
Hyperlinks 
To allow users to click and open other web pages or any other document type you can assign to 
any report object within Crystal a hyperlink expression.  
A typical approach is to have Visual CUT export a dashboard report, say a summary report of 
Sales By Product Type,  to one HTML page as the main web dashboard. The batch file triggering 
the process can have another command line to trigger bursting of another report, creating one 
HTML page showing Sales by Product within each Product Type: 
Detail_ for_{Product_Type.Product Type Name}.html  
You would then set the hyperlink expression for the Product Type field in the main dashboard 
report to dynamically point to its related detailed HTML page. The user can then click on each 
Product Type field in the main dashboard to drill-down into the detailed information in the 
bursted HTML pages. In a similar manner, drill-downs to related PDF or Excel files can be 
provided.   
Note: use the Web Dashboard Expert to change hyperlink properties so that they open related 
web pages in a separate Window rather than replacing the content in the dashboard frame. 
Tooltips 
To provide users with related information when hovering over elements in the web dashboard, 
simply specify a dynamic tooltip expression for these objects in Crystal.  
By inserting a line break character in these expressions, as in:  
{@Cust} +  Chr(10) + {@Cust_Info}
you can present that content as multiple lines  
note: Firefox seems to be th
e only browser that doesn’t honor such line breaks.  
Generating HTML via Email Message Body 
Instead of relying on Crystal’s HTML export, you may take advantage of the email message 
HTML editor and Visual CUT’s ability to embed dynamic values from report 
fields/formulas in 
the message body (see video demo).  
You can instruct Visual CUT to save the email message body to an HTML file using the 
Email_Message_Save command line argument. You can also skip the actual emailing by 
specifying "VC_Skip_Email" in the Email_To option. 
This technique provides you with full control over the HTML being generated. As shown in the 
video demo above, it allows tables in your web dashboard to adjust to the browser screen size. It 
also allows you to directly add CSS and JavaScript to the generated HTML page. 
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Divide PDF file into multiple files by outputting PDF file size. Split Split PDF Document into Multiple PDF Files Demo Code in VB.NET. You
pdf editor with search and replace text; pdf find text
C# PDF File Split Library: Split, seperate PDF into multiple files
The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines. Split PDF Document into Multiple PDF Files in C#.
find and replace text in pdf; find and replace text in pdf file
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 113 
Cleaning png File References 
When the exported report contains images, Crystal generates uniquely named (using GUIDs) png 
files, which are referenced from within the HTML file. In many cases, you may wish to "clean" 
these file references by removing the GUIDs from the file references and renaming the png files. 
Visual CUT provides two command line arguments to achieve this: TXT_DeGUID_png and 
TXT_Replace_Tokens. See the following user manual sections for more detail: 
Removing GUIDs from png Files Referenced in HTML Exports 
Replacing Content in Text/HTML Files 
Token Approach 
Restricting Access to Web Dashboards 
If you wish to restrict access to your web dashboards, a simple and secure method is described 
here: http://www.javascriptkit.com/howto/htaccess3.shtml 
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
deleting, PDF document splitting, PDF page reordering and PDF page image and text extraction C# Demo Code: Combine and Merge Multiple PDF Files into One in .NET.
search text in pdf using java; how to select text in pdf image
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Able to add and insert one or multiple pages to existing adobe PDF document in VB.NET. Add and Insert Multiple PDF Pages to PDF Document Using VB.
search pdf files for text programmatically; make pdf text searchable
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 114 
PDF Functionality 
Creating Bookmarks (Group Tree) in Exported PDF Files [Old Approach
Visual CUT can create a "Group Tree" of bookmark inside exported pdf document.  
It allows users to easily navigate through large PDF files.   
You specify the Bookmark label & page by inserting a string formula in each Group Header 
that contributes a level to the "Group Tree."  The formula/section can be suppressed. 
Naming the Bookmark Formulas: 
For Group Header Level 1, the name of the formula must be VC_pdf_bookmark1 
For Group Header Level 5, the name of the formula must be VC_pdf_bookmark5    
Note: you can add other formulas at the same level (in the same section or split section) by 
adding a digit between 1 and 9.  For example, if you used VC_pdf_bookmark2 for GH2a you 
can use VC_pdf_bookmark21 in GH2b and VC_pdf_bookmark22 in GH2c. 
Structuring the Formulas: 
The formulas must return a string structured as the Bookmark Label, followed by "
::
" and 
ending with the Page Number where the formula was evaluated. 
The sample report (Visual CUT.rpt) demonstrates this functionality: 
On Group Header 1 the VC_pdf_bookmark1 formula is defined as: 
IF InRepeatedGroupHeader THEN ""  
ELSE {Product_Type.Product Type Name} + "::" + Cstr(PageNumber,0,"") 
On Group Header 2 the VC_pdf_bookmark2 formula is defined as: 
IF InRepeatedGroupHeader THEN ""  
ELSE GroupName ({Product.Product Name}) + "::" + Cstr(PageNumber,0,"") 
After a PDF export, the resulting file has a 2-level hierarchy of Bookmarks and  
clicking on any bookmark takes you to the page associated with that bookmark
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Combine multiple specified PDF pages in into single one file. using RasterEdge.XDoc. PDF; VB.NET Demo code to Combine and Merge Multiple PDF Files into One.
cannot select text in pdf; how to select all text in pdf
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
set PDF text font and size, bold and highlight text in easy PDF Editor empower C#.NET users to edit PDF pages with multiple manipulation functionalities
select text pdf file; select text in pdf reader
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 115 
Controlling PDF Bookmark Colors (& Text) 
If you include (anywhere) in the Bookmark Label the color constants of crRedcrBlue or 
crGreen (note: case sensitive) Visual CUT would set the color of the bookmark text accordingly 
(and remove the color constant text from the label).   
This functionality is useful for indicating item performance or status visually (e.g., red color 
indicating poor performance).  Note: remember that since you control (via a formula) the 
bookmark text, you can also add various label indicators such as [+][~][!], or [-].       
The level 2 bookmark formula (VC_pdf_bookmark2) in the sample report demonstrates this 
approach as follows: 
WhilePrintingRecords; 
IF InRepeatedGroupHeader THEN ""  
ELSE  
IF Average ({@Days_To_Ship}, {Product.Product Name}) > 5.0 THEN  
"[!]crRed " + GroupName ({Product.Product Name}) + "::" + 
Cstr(PageNumber,0,"")  
ELSE IF Average ({@Days_To_Ship}, {Product.Product Name}) < 3.0 THEN  
"[+]crGreen " + GroupName ({Product.Product Name}) + "::" + 
Cstr(PageNumber,0,"") 
ELSE  
"[~]crBlue " + GroupName ({Product.Product Name}) + "::" + 
Cstr(PageNumber,0,"")  
); 
C# Create PDF from images Library to convert Jpeg, png images to
Component for combining multiple image formats into one or multiple PDF file in C#.NET. Any piece of area is able to be cropped and pasted to PDF page.
search pdf documents for text; pdf select text
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF Turn multiple pages PDF into multiple
how to make pdf text searchable; can't select text in pdf file
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 116 
Controlling How Many Bookmark Levels Are Initially Expanded  
By default, the resulting PDF file will show only 1 (the top) level of bookmarks expanded, so 
that level-2 bookmarks (if there are any) are visible. Obviously, users can expand/collapse the 
bookmarks by clicking on the + or 
nodes within the Adobe Acrobat reader.  However, you may 
wish to present the users with a pdf where only the top-level bookmarks are initially visible or 
where more levels are initially expanded. 
To change the default number of expanded levels for all processed reports, change the value 
of the PDF_Bookmarks_Open_Levels option in the DataLink_Viewer.ini  
For example: 
[Options] 
PDF_Bookmarks_Open_Levels=0
To override the default number of expanded levels when processing a specific report, use 
the PDF_Bookmarks_Open_Levels command line argument as follows: 
… 
"PDF_Bookmarks_Open_Levels:N" 
Where N is the number of levels to be initially expanded.   
For example, to have only the top bookmarks visible, use: 
… 
"PDF_Bookmarks_Open_Levels:0
Guarding Against Null Bookmark Values 
If the field(s) used to control the bookmark label is Null, the whole formula would result in a 
Null value and bookmark processing would be compromised.  If this is a possibility given your 
data you should guard against it using a formula like this: 
WhilePrintingRecords; 
IF InRepeatedGroupHeader THEN  
""  
ELSE  
IF IsNull({Product_Type.Product Type Name}) THEN  
" " + "::" + Cstr(PageNumber,0,"") 
ELSE 
{Product_Type.Product Type Name} + "::" + Cstr(PageNumber,0,""); 
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
NET control to export Word from multiple PDF files in VB. Create editable Word file online without email. Supports transfer from password protected PDF.
search multiple pdf files for text; how to search pdf files for text
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 117 
Generating PDF Bookmarks from within Subreports 
As an alternative to generating bookmark information from Group Header sections in a main 
report (as described above), Visual CUT allows you to specify bookmarks for a given PDF file 
by providing a text file (PDF_Bookmarks.txt) containing the bookmark information.  This file 
must be located in the Visual CUT  application folder and must be structured as follows: 
1.  The 1
st
line must match the RPT file name of the report being processed  
2.  The following lines provide 4 data elements separated by a "
::
" delimiter: 
a.  Bookmark Level  
b.  Bookmark Label 
c.  Page Number 
d.  Group Level 1 Value (used only in bursting operations)  
Using "CUT Light" (a User Function Library described on my web site) or any other UFL that 
adds the ability to append text to text files from within Crystal formulas, you can generate this 
text file automatically by embedding formulas in any report or subreport sections.   
Note that this provides functionality that goes beyond the Group Tree limitations of Crystal 
reports.  Crystal can’t generate Group Tree information based on information within subreports.  
However, using this technique you can generate Group Tree information as PDF 
bookmarks based on information from both main as well as subreports!   
There are 2 main steps in the process:  
1.  Visual CUT runs the report and, because the report has special UFL formulas, the 
PDF_Bookmarks.txt file gets populated with bookmark information,  
2.  Visual CUT export the report to PDF, detects the presence of PDF_Bookmarks.txt and 
uses it to generate the bookmarks in the exported pdf file. 
If you are interested in using this functionality, I can e-mail you a sample report (demonstrating 
the formulas needed to generate the text file information). I can also e-mail you download 
instructions for evaluating CUT Light (UFL allowing Crystal formulas to create and add data to 
text files).  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 118 
Adding Bookmarks Using Crystal Formulas as Tags [New Approach
Using a command line argument, you can instruct Visual CUT to look for invisible tags inside 
the pdf file (Crystal formulas with font color set to background color) and to use their content to 
generate bookmarks. Compared to the old approach (described in the previous section), this new 
technique has several advantages: 
1.  The bookmarks link to the exact vertical location (on the linked page) where the 
rendered formula is located.  In the old approach, bookmarks only pointed to at the top of 
the page.  
2.  You can easily generate bookmarks from within subreport and from any report 
section (not just Group Headers). For example, you can generate bookmarks from Detail 
Sections or Group Footers. 
3.  You can control the bookmark text color more completely (instead of a few color 
constants, you can specify any color using RGB (Red/Green/Blue) values. 
4.  You can control the expanded/collapsed state of each bookmark node 
5.  You can control the style of the bookmark node (Regular, Bold, Italics, Bold&Italic) 
6. No need to worry about PageNumber resets, Keep Together, and 
WhilePrintingRecords properties that can cause headaches with the old approach
This is because the new approach doesn’t 
require specifying a page num
ber and doesn’t 
depend on the evaluation time of the bookmark formulas. 
7. You can avoid the need to use a command line argument by setting 
PDF_Bookmark_Tags_Default=True  
under the [Options] section of  DataLink_Viewer.ini (only applies to files < 100MB) 
Visual CUT would then process bookmark tags within an exported PDF file. 
Here's an example of the command line argument structure: 
… 
"PDF_Bookmark_Tags:c:\temp\Sales in {@Year_Parameter}.pdf"  Or 
… 
"PDF_Bookmark_Tags:Source_pdf_file>target_pdf_file" 
If only one pdf file is specified (as in top example), the source file becomes also the target file. 
The Crystal formulas act as tags for controlling the level, vertical location, text, color, 
expand/collapse status, and style (regular/bold/italic) of the desired pdf bookmarks.   
Setting Up a Crystal Report with pdf formula tags 
You can download a sample report demonstrating the technique from: 
www.milletsoftware.com/Download/
Visual_CUT_PDF_Bookmark_Tags.rpt 
And the resulting pdf file from: 
www.milletsoftware.com/Download/
Visual_CUT_PDF_Bookmark_Tags.pdf 
The sample report uses 3 formulas to generate bookmarks: 
{@Bookmark_L1} is placed in the Group Header level 1 to generate Product Type Name bookmarks 
with bold blue text.  These level 1 nodes are expanded. 
{@Bookmark_L2} is placed in the Group Header level 2 to generate Product Name bookmarks with 
bold text.  These level 1 nodes are collapsed 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 119 
{@Bookmark_L3} is placed inside the subreport in the Group Header level 1 to generate Customer 
Name. Bookmarks with text colored in different shades of red or green depending on the average time it 
takes to ship orders of that product to the customer.  
The generated bookmarks link not only to the page where the formula was rendered, but also to the exact 
vertical position on that page (minus 20 millimeters to provide some margin).  The bookmarks are created 
for each rendered instance of the formula. For example, if you place the formula in a Group Header 1 you 
will generate a bookmark for each Group at level 1.  
The formula text must be rendered within the formula boundaries in a single line.  Use small font 
sizes: 2 or even 1 to achieve this.  Then, turn the font color to White (or same color as the background) 
to make the formula invisible or, keep the PDF_Tags_Delete_Default option in DataLink_Viewer.ini as 
True and Visual CUT would remove the tag text after processing it. See box below for Sample formula.  
Notes: 
1.  As always, you can use field or formula names within the command line argument. The 
dynamic content of these fields/formulas would be substituted into the argument.  
For example, {@Bookmark_L3} (inside the subreport) dynamically sets the color of the 
bookmark based on the performance of records in that node. Similarly, you may dynamically 
expand the bookmarks for groups with extreme performance measure to focus the manager’s 
attention on those areas. 
2. 
Visual CUT can remove pdf processing tags from the pdf file after processing those tags.  This is 
controlled by an entry called PDF_Tags_Delete_Default under the [Options] section of 
DataLink_Viewer.ini. By default, this option is set to True.  To ensure all tags are removed, use 
the Replace() function in Crystal to change double quotes into single.  For example, the 
expression for the title in PDF_Bookmark_Tags could be: 
Replace({Customer.Customer Name},"""","'") 
3. 
In Crystal, use non-proportional font for the tag formula (avoid Calibri and Bold/Italic 
Here is the commented 
{@Bookmark_L2} formula from the sample report at:   
www.milletsoftware.com/Download/
Visual_CUT_PDF_Bookmark_Tags.rpt 
// Make the font size very small (2 or even 1 point) so content fits in a SINGLE line. 
// The vertical location of the tag (minus default margin of 20 millimeters) controls the vertical  
//     location of bookmark page target.  You can override the margin using an optional argument. 
// The formula always starts with "#BM_Tag::" and ends with "#" 
"#BM_Tag::" + 
"2" +  "||" +  // Bookmark Level. During bursting, levels are shifted up automatically 
Replace({Product.Product Name},"""","
") + "||" +  // Bookmark Text (" 
>> ‘)
"-" + "||" +  //"Expand Status:  + to open the bookmark or - to collapse it.   
"1" + "||" + // Text Style:  0=regular  1=Bold   2=Italic   3=Italic Bold 
"0;0;0" +  // Color as RGB:  3 numbers between 0 and 255 separated by ";"  
// "||10" + // [Optional] Vertical Margin.  Leave commented or uncomment to  
//    override the default of 20 millimeters. 
"#" 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 120 
Adding a Table of Content to a PDF File 
You can generate a Table of Contents (TOC) inside a PDF file based on its Bookmarks. 
Bookmarks are used during online viewing 
a TOC is more useful for a printed document. 
The command line argument structure is as follows: 
… 
"PDF_TOC:1>40>11>6>5>2>pdf_file_path_and_name" 
The parameters (after the ":") are separated by a ">" and are as follows: 
1. Page where the TOC is inserted. 1 is a typical choice. Specify 999999 to insert as last page(s). 
Note: you can specify two numbers separated by two vertical bars in cases where you want to 
offset the page numbers shown in the TOC.  For example, 
2||1 
would
insert the TOC in page 2 
(after a title page perhaps) but refer to page #2 as page #1 and apply a similar offset to all other 
page numbers that are displayed in the TOC. 
2. The right (& left) page margin (in millimeters).  40 is a typical choice 
3. The font size (in points).  11 or 12 are typical choices. 
4. The row spacing (in millimeters).  6 is a typical choice. 
5. The indentation  (in millimeters) added to each hierarchy level.  5 is a typical choice. 
6. The Minimum Bookmark Level below which bookmarks are ignored.  2 is a typical choice.  
7. OPTIONAL: The PDF file path & name (for example, c:\temp\other_file.pdf).   
Leaving this argument blank, would default processing to the file being exported.   
Providing a file name would direct processing to the specified file (even if it's not the  
exported PDF file.   
Overriding the default "Table of Contents" Header Text  
You can control the "Table of Contents" header text by adding/updating the [Text_Change] 
section in the DataLink_Viewer.ini file. For example: 
[Text_Change] 
Table of Contents=Table des matières 
Table of Contents (cntd)=Table des matières (suite) 
If you enter no text after the equal sign, Visual CUT will suppress the header text. 
A "Table of Contents" (or the equivalent text as per the section above) is set to the 1
st
page where 
the Table of Contents was inserted (regardless of the page number specified by you). 
Visual CUT assigns the top level of the TOC a bold font and a slightly larger row spacing and  
assigns level 3 and below a smaller font and a smaller row spacing.   
If the TOC requires more than 1 page, Visual CUT inserts additional pages for the TOC. 
The TOC rows (just as Bookmarks) are linked to the specified page so clicking on a TOC row 
takes you to that page. Regardless of the number and location of the inserted TOC pages, all 
page links (bookmarks and TOC rows) are adjusted accordingly. 
The process takes care of generating a bookmark for the Table of Contents.  
Documents you may be interested
Documents you may be interested