how to upload and view pdf file in asp net c# : How to select text in a pdf Library application class asp.net html windows ajax officeauto110-part328

Charting the APL/Excel Waters 
Dyalog '11 
APL Borealis Inc. - Canada-wide Distributor for APL Software and ContentKeeper Network Security Systems 
900 Mount Pleasant Rd., #1501 • Toronto • ON • M4P 3J9 • Tel: 416-488-7828 • Toll-Free: 1-866-888-6377 
Email: info@aplborealis.com  •  www.aplborealis.com   and   www.contentkeeper.ca 
Charting the APL/Excel Waters 
Using Excel and other Applications with Dyalog APL 
Richard Procter, APL Borealis Inc., Canada 
rjp@aplborealis.com 
Contents 
Terminology and TLAs ...............................................................................................................................................................2 
Dyalog APL - Terminology.....................................................................................................................................................3 
References...............................................................................................................................................................................3 
APL as Client, Server, etc............................................................................................................................................................4 
Excel - Components and Overview.............................................................................................................................................5 
Excel's Object-Oriented Structure...........................................................................................................................................5 
Key Excel Components and Concepts.....................................................................................................................................5 
APL GUI Programming - 101 (very lite)................................................................................................................................6 
Exploring the Excel Object from APL.........................................................................................................................................7 
Key Points...............................................................................................................................................................................8 
Collection Objects...................................................................................................................................................................9 
APL in Control..........................................................................................................................................................................10 
Using Excel Methods............................................................................................................................................................11 
Datatypes, Formatting, etc.........................................................................................................................................................12 
Dates.................................................................................................................................................................................13 
Utilities......................................................................................................................................................................................14 
AND... new in 2011  The David Crossley Excel Toolkit....................................................................................................15 
Excel Toolkit - APL drives Excel.....................................................................................................................................16 
A Few More Tips & Tricks........................................................................................................................................................17 
A Few Other Nifty Things...  OLE!...........................................................................................................................................18 
Word.................................................................................................................................................................................18 
PowerPoint........................................................................................................................................................................18 
OCX Demo.......................................................................................................................................................................18 
PDF...................................................................................................................................................................................18 
Outlook.............................................................................................................................................................................18 
What Else Is New?.....................................................................................................................................................................19 
Excel in Control.........................................................................................................................................................................20 
Key Steps...............................................................................................................................................................................21 
The Tricks.............................................................................................................................................................................22 
A Few Other Issues....................................................................................................................................................................23 
External Object (COM and .Net) Behaviour.............................................................................................................................25 
WX - APL Session Help > Language Help.........................................................................................................................26 
ADO and Dyalog APL...............................................................................................................................................................27 
How to select text in a 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
select text in pdf file; select text in pdf
How to select text in a 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
how to select text in pdf image; find text in pdf files
Charting the APL/Excel Waters 
2                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Terminology and TLAs 
We will explore how APL can interact with and use some of these technologies: 
COM - Component Object 
Model 
DCOM - Distributed COM 
(MS 2000 Automation Help:) an industry-standard technology that applications 
use to expose their objects, methods, and properties to development tools, macro 
languages, and other applications. (DCOM = COM extended for network apps.) 
(Wikipedia:) ...often used in the software development world as an umbrella term 
that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM 
technologies. 
OLE - Object Linking and 
Embedding 
& OLE Automation 
sharing the properties and methods of applications by combining and exposing 
objects within a standard framework (eg. document)  
(Wikipedia:) the formal interprocess communication mechanism based on COM. 
It provides an infrastructure whereby applications can access and manipulate (i.e. 
set properties of, or call methods on) shared automation objects that are exported 
by other applications. It supersedes DDE. The OLE Automation controller is the 
"client" and the application exporting the automation objects is the "server". 
OLE Server 
a usually invisible application which supports the main interface (client) 
(MFC:) an Automation server is an application (a type of COM server) that 
exposes its functionality through COM interfaces to other applications, called 
Automation clients. The exposure enables Automation clients to automate certain 
functions by directly accessing objects and using the services they provide. 
(Dyalog Help:) The OLEServer object allows you to export an APL namespace 
so that its functions and variables become directly accessible to an OLE 
Automation client application such as Microsoft Visual Basic or Microsoft Excel. 
OLE Client 
the application interface or application which controls or calls upon the OLE 
Server. 
ActiveX Control 
(or OLE Control) 
a usually visible object which user interacts with; may be embedded in another 
application. 
(Wikipedia:) a Microsoft term that is used to denote reusable software 
components that are based on Microsoft Component Object Model (COM). 
ActiveX controls provide encapsulated reusable functionality to programs and 
they are typically but not always visual in nature. 
(Microsoft:) an ActiveX control is implemented as an in-process server (typically 
a small object) that can be used in any OLE container. 
Object Oriented 
numerous meanings, but generally:  a modular approach, using reusable units 
(called object, class, control, etc.) with common design, including properties, 
methods, and events; (nouns, verbs, things that happen?) 
(APL+Win:) an instance of any class is an object. 
consider an everyday example:  book
ADO - ActiveX Data 
Objects 
MS specification for interfacing to databases, using ActiveX/COM structure and 
methodology 
DAO - Data Access Objects  older MS specification for database access, similar to ADO; see:  
C:\Program Files\Common Files\Microsoft Shared\DAO\DAO35.hlp 
ODBC - Open Data Base 
Connectivity 
older MS specification for interfacing to databases via SQL queries 
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#: Select All Images from One PDF Page. C# programming sample for extracting all images from a specific PDF page. C#: Select An Image from PDF Page by Position.
pdf find and replace text; pdf text search
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET : Select An Image from PDF Page by Position. Sample for extracting an image from a specific position on PDF in VB.NET program.
search a pdf file for text; text searchable pdf
Charting the APL/Excel Waters 
3                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Dyalog APL - Terminology 
OLEClient 
- object that enables your APL application to interact with non-APL objects (eg. 
Excel) 
- note how the Dyalog OLEClient object is an OLE Server application 
OLEServer 
- created by converting an APL Namespace to an object, which is then referred to 
by any non-APL application (eg. Excel) 
- requires dyalog.dll to run 
- a Dyalog OLEServer object may be called by an OLE Client application 
OCXClass 
used to access non-APL-derived ActiveX controls  
(OCX being one of several names associated with this class of objects) 
ActiveXControl 
stand-alone object created by APL, but accessed from non-APL applications; 
requires dyalog.dll to run - based on a Dyalog Namespace object 
ActiveXContainer  "read-only"; used to represent the application that is hosting an ActiveXControl 
object, and provides access to its ambient properties (eg. Font, colour) (see: 
OLEQueryInterface Method, etc.) 
GUI Memory 
use 
or 
(root object), and
to identify/explore 
GUID or CLSID 
Globally Unique IDentifier or CLaSs IDentifier - Windows handle 
Let's take a glimpse of some of these things.    '.'  is the "root object" in Dyalog APL 
root level properties
Windows registry OLE Controls
Windows registry OLE Server objects
Excel objects? 
other APL objects?
References 
Dyalog session Help > GUI Help 
Dyalog Interface Guide (download .pdf) 
Dyalog Release Notes / Help > Latest Enhancements (especially Version 11/12/13) 
Excel Help menu > see:  "Table of Contents" > "Visual Basic Reference" > "Excel Object Model"  
Auto2000.chm - Microsoft Office 2000 automation Help file, available at: 
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q260/4/10.asp&NoWebContent=1
MSDN Reference - Vast Microsoft Archive of developer info, eg. 
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel(VS.80).aspx
MFC - Microsoft Foundation Class Library - and other online resources,  
eg. http://msdn.microsoft.com/en-us/library/d06h2x6e(VS.80).aspx  
APL+Win workspaces and documentation 
VB.NET PDF Text Redact Library: select, redact text content from
Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Image: Extract Image from PDF. VB.NET PDF - Redact PDF Text. Help
pdf searchable text; how to select all text in pdf file
C# PDF Text Redact Library: select, redact text content from PDF
Page: Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. C#.NET PDF SDK - Redact PDF Text in C#.NET.
pdf text select tool; converting pdf to searchable text format
Charting the APL/Excel Waters 
4                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
APL as Client, Server, etc. 
The "usual" client-server relationship 
involves multiple machines: 
In our case, more likely the client and server are concurrent tasks on the same machine. 
What do you really want to do? 
APL as Client - in an APL 
development session, or an APL-
GUI (runtime) application 
- you write data (eg. to Excel), and perhaps go on to format and print or do 
further processing, eg. charts 
- you read data into your APL environment (eg. from Excel) 
APL as Server - from within 
another Office application (eg. 
Excel) 
- you call upon APL functions to perform calculations, read an APL-driven 
database etc. and typically return results to the Office application 
- or, you send data to an APL system and perform final processing there only 
Other OLE Options 
eg. create ActiveX controls using APL; use non-APL ActiveX objects from 
within APL; use ADO for database access; etc. 
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
how to make pdf text searchable; how to make a pdf file text searchable
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
text searchable pdf file; searching pdf files for text
Charting the APL/Excel Waters 
5                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Excel - Components and Overview 
Excel's Object-Oriented Structure 
In very brief terms, the Excel spreadsheet is a hierarchical collection of objects; objects have properties; most 
have methods; and when we interact with these objects - events take place. This is the model we must work with 
to program such applications from any point of view, including APL. 
Excel Help provides a good visual display of these objects, and an in-depth resource for understanding how to use 
these: for starters, try: 
"Contents and Index" >  "Microsoft Excel Visual Basic Reference" > "Microsoft Excel Object Model" 
(it's Microsoft, so your version may differ!) 
This diagram displays the hierarchical relationships between objects. Click on any of these to explore the details 
further down the branches of the tree to expand further levels. Notice the top-level object is called "Application".  
Key Excel Components and Concepts 
Obvious 
Menu 
Windows standard 
Toolbars 
one or more; contain tool buttons, combos, etc.; user may modify 
Formula Bar 
input area 
Name Box 
apply a name to a cell or range 
Workbooks 
collection object containing individual Workbooks, ie. opened *.xls files, each one 
being a Workbook object 
Worksheets 
(or Sheets)  collection object; tabs at bottom-left; add, delete, move 
Rows/Columns  A1:Z99 designation; some maximum values; note Rows numeric, Columns alpha; 
drag/drop heading areas to resize; Ctrl-down-arrow etc. 
Cells 
contain values or formulas; many properties to consider:  datatype, format, font, 
behaviour, alignment (text left, num right), display precision, etc. 
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
pdf editor with search and replace text; pdf search and replace text
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
how to search a pdf document for text; how to select text on pdf
Charting the APL/Excel Waters 
6                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Not so obvious 
Collection 
special Excel object used to contain other objects, eg. Workbook > Worksheets;      
Item and Count properties are useful; special syntax needed in APL to use these 
Item 
Property; collection object unit; demo: select several cells, hit Enter key repeatedly 
Count 
Property; collection object unit count 
Range 
ambiguous term:  a selection of cells (can you say "array" ?), either contiguous or non- 
(may even span Worksheets); note that a "Range Object" is created by using the Range 
property of a parent object (eg. Worksheet) 
Select/Selection  - Method and Property; drag/drop to select one or more contiguous cells, or whole 
Rows/Columns/Worksheets; highlight to modify content or format in bulk 
- useful to programmatically change a block of cells 
- also see:  Activate method; CurrentRegion; UsedRange, etc. 
PrintOut 
and other Methods; eg. print an object; Open, Close, Quit, Select, Activate, etc. 
numerous    
sub-objects 
various commonly-used objects and nomenclature such as UsedRange, ThisWorkbook, 
ActiveSheet, ActiveChart, ActiveCell, etc. 
VBA/Macros; 
GUI elements 
GUI objects and code stored as part of the spreadsheet; macro recording facility; built-
in edit and debug environment 
Now, let's go back to APL. First, we need to spend 5 minutes on: 
APL GUI Programming - 101 (very lite) 
In all APLs, object programming is accomplished with some handy 
-functions, now in conjunction with "dot 
syntax", ie. ParentObject.ChildObject.Property... 
Dyalog 
Examples 
= create 
= set 
= get 
= names 
= wait 
= invoke 
and... 
In similar fashion, we can take this methodology, and apply it to the Excel object, or other COM objects. 
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Click to select drawing annotation with default properties. Other Tab. Item. Name. Description. 17. Text box. Click to add a text box to specific location on PDF
cannot select text in pdf file; find and replace text in pdf
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Click to select drawing annotation with default properties. Other Tab. Item. Name. Description. 17. Text box. Click to add a text box to specific location on PDF
search pdf for text; pdf find highlighted text
Charting the APL/Excel Waters 
7                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Exploring the Excel Object from APL 
From APL, to use an OLE object as a server, we create an OLEClient object, which is implemented as a 
"namespace" in Dyalog APL, and we associate a particular server object with it, eg.: 
or 1? , see: "External Object Behaviour" below
This creates an OLEClient object which will interact with an OLE Server, with the ClassName property as 
specified from our list of OLEServers, ie. from the Root Object property which examines the Windows Registry. 
'XL' becomes a namespace object which we can explore or query and use. Dyalog provides system commands to 
enable us to explore a namespace's objects: 
enter the "XL" namespace
list properties 
because we have "exposed" the object properties...
The above can also be accomplished via  
syntax from the root level: 
return to root level
Excel version number (may be important) 
is the server visible? 
make it so; does case matter? 
make it not 
Dyalog also allows the use of direct object/property naming via "." syntax, eg. 
suddenly, case matters! (and AutoComplete helps a lot) 
see Excel-Help re "Active Workbook"...
Interesting diversion... 
(vs.   
)
Also, Dyalog provides the "Workspace Explorer" tool to browse such objects. 
Want to find out what any of these properties, methods or events really means?   
For starters, try searching for the particular term in the Excel/VBA Help feature. 
Charting the APL/Excel Waters 
8                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Key Points 
•  Dyalog implements GUI memory and OLE objects using the namespace concept, so: 
 use  )OBS  or  
to explore these 
 )CS  or the ...object.sub-object... syntax allows us to explore, etc. 
 )ERASE or  
erases the object  (but has it really gone away?) 
 assignment 
is used to set properties 
or object.sub-object syntax is used to invoke methods 
 even the each operator  
can be put to use for implicit looping, etc. 
•  upper/lower case-sensitivity varies when addressing properties, methods and events (according to the syntax 
used?) 
•  Dyalog AutoComplete - displays object Properties & Methods;  useful to explore objects to some extent 
•  Incomplete or incorrect usage often returns a useful response, eg. Methods are indicated by APL del symbol 
when invoked but missing an argument, or in fact an "Exception Error" may appear in a separate "Status" 
form, eg. try XL.Workbooks.Open with an invalid path/filename. eg. "Range" objects are indicated by 
...[Range] in the output. 
•  Visibility - is Excel visible in the task bar?   Processes in Task Manager?  etc.;  set the Visible property 
•  Is Excel already running?  can we connect to it?   (try opening a spreadsheet, then create the OLEClient/Excel 
object in APL, then check XL.Workbooks.Count) 
also see:  Dyalog GUI Help > InstanceMode property (of OLEClient)   
or see:   alreadyrunningexceldiscussion.htm  
•  Which 'Excel.Application' server object name to use? 
see:  "How to run multiple versions of Excel on the same computer" 
http://support.microsoft.com/kb/214388 
•   
, main issues are: enclosed arguments and Item vs. [item] - with Version 11+ 
see:  Language Help > 
> External Object Behaviour 
• 
invokes a method in an OLE Control.  The (shy) result of 
is the result produced by the method. 
•  Collection Objects - can be confusing, require special syntax, see below 
•  when things seem to be "hung"...    maybe the Excel object is asking a question (via dialog box) - check it 
Charting the APL/Excel Waters 
9                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
Collection Objects 
Consider these definitions from the Excel-Help: 
Workbook Object - The Workbook object is a member of the Workbooks collection. 
Workbooks Collection Object - A collection of all the Workbook objects that are currently open in the 
Microsoft Excel application. 
Workbooks Property - Returns a Workbooks collection that represents all the open workbooks. Read-only. 
Worksheet Object - Represents a worksheet. The Worksheet object is a member of the Worksheets collection. 
The Worksheets collection contains all the Worksheet objects in a workbook. 
Worksheets Collection Object - A collection of all the Worksheet objects in the specified or active workbook. 
Each Worksheet object represents a worksheet. 
See also:  ActiveWorkbook; ThisWorkbook; Sheets; ActiveSheet; etc. 
In other words, the many objects, levels and similar terms can be confusing. The main points are that collection 
objects have a special purpose and syntax, and we may refer to the objects they contain by using the Item  
property or equivalent reference via indexing. 
Getting Started... 
(First, look for this file or equivalent:  'c:\Program Files\Microsoft Office\Office\Library\common.xls', then:) 
(NB:  v.11+, 
)
(or 
in v.10)
ie. collection indexing 
Collection objects are typically a part of the hierarchy or path to get to the underlying information in the 
spreadsheet. The key Collection Objects include:  Workbooks, Sheets (Worksheets), Rows, Columns, Range. 
NB:  Use of  indexing via [ ]  , (or ...Item N) , to select a Collection Object Item depends on Dyalog version and 
setting. (see "External Object (COM and .Net) Behaviour" - Version 11 Release Notes) 
Charting the APL/Excel Waters 
10                                                              Dyalog '11 
APL Borealis Inc. - www.aplborealis.com
APL in Control 
First, look for this file or equivalent:  'c:\Program Files\Microsoft Office\Office\Library\common.xls', then find a 
second .xls file on your system to open, then work through these examples: 
(and set   
)
...and finally, we READ the worksheet values
(or...  
)
...now let's WRITE to Excel: 
(vs. reshape... above?)
scalar extension!
Documents you may be interested
Documents you may be interested