how to show pdf file in c# : Convert a scanned pdf to searchable text SDK application service wpf windows azure dnn VbaStarBasicXref4-part1898

Porting Sample Workbook [Spreadsheet]
Porting Sample Workbook [Spreadsheet]
In this chapter, the steps taken to port an Excel workbook to Calc are described.  The reader
should be aware that the approaches discussed are one of several ways of performing the
porting task.
To illustrate the differences between VBA and SB, the original VBA code is left in the
module as comment statements ("Rem" statement).  The equivalent SB statements follow the
commented VBA code.
Porting Tasks
Steps taken to port the sample Excel/VBA workbook to Calc/SB spreadsheet.
Open Excel workbook in Calc.  For the most part the general appearance of worksheets will
be the same in Calc.  The following differences were noted after opening the Excel
workbook in Calc.
On several worksheets the caption for the buttons do not appear the same.  In Excel
buttons can be multi-lined.  In Calc, multi-line captions do not appear to be supported.
While all the VBA code was read in, all the statements were turned into comments by
prefixing "Rem" to each line.  For existing VBA Modules, those modules exist in SB
under the same name, e.g., "ChartDemocode" and "SampleCode".  For VBA code
associated with the workbook or worksheets, such as those executed by events or controls
on the worksheet, the code is contained in separate modules, one for each worksheet or for
the workbook.  The workbook code is contained in a SB module called "ThisWorkbook".
Basic code for each worksheet is contained in a separate module named after the internal
Excel worksheet name.  In this case the modules are called "Sheet1", "Sheet2", etc.  VBA
code associated with the UserForm is contained in a module named the same as the Excel
Userform name.  In this situation the module name is "UserForm1"  Lastly, the "Rem"ed
statements are encased within a procedure definition that is named the same as the module
The UserForm panel itself did not transfer over.  The UserFrom will have to be recreated
in a SB Dialog panel.
All named cell ranges transferred over subject to the limitation of not being able to have a
same named cell in multiple worksheets.
The text boxes on the various worksheets in Excel are transferred over to Calc.  However,
not all the resulting objects in Calc allow the text to be modified.  As of this writing, no
determination has been made on why some of the resulting text boxes allow modifications
and others do not.
Convert the workbook related procedures.  These procedures are found in the module
"ThisWorkbook".  Following are the steps to convert procedures in this module:
Remove the encapsulating Sub ThisWorkbook (first statement) and End Sub (last
statement) statements.  These are the encasing procedure statements that are automatically
inserted by Calc when reading in the Excel workbook.
Porting Excel/VBA to Calc/StarBasic
Convert a scanned pdf to searchable text - search text inside PDF file in, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
how to select all text in pdf; pdf editor with search and replace text
Convert a scanned pdf to searchable text - VB.NET PDF Text Search Library: search text inside PDF file in, 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 all text in pdf file; select text in pdf
Porting Sample Workbook [Spreadsheet]
Procedure Workbook_Open() - Convert VBA Worksheet and Cell/Range
methods/properties to equivalent SB constructs.  Remove Private attribute from the
Workbook_Open() procedure definition statement.  Leaving the Private attribute causes
intermittent run-time errrors.  Assign the Open Document event to this macro.  With SB
IDE active, select the module "ThisWorkbook".  The select Assign... > Events.  Select the
Document option button.  Specify the Workbook_Open procedure for the Open
Document event.  
Add to Workbook_Open procedures to turn on or off Listener for change events to the
ActiveSheet property of the ThisComponent.CurrentController.  This event is used to
call procedures for Worksheet_Activate and Worksheet_Deactivate for various
Create a new module called "SupportModule".  Add MoveCursorToEnd() function
described  in Appendix B to "SupportModule".
Convert worksheet Example1.  Rename the module for the associated SB code from "Sheet1"
to "Example1Code".  Rationale for renaming the module is to support long-term maintenance
by clearly associating the SB code with the worksheet [sheet].  One disadvantage of this
method is if the worksheet [sheet] is renamed, the programmer must remember to rename the
SB module as well to maintain the association. To rename the module, select the module tab
displayed in the SB IDE, right-click the mouse button and enter the new name.
Remove the encapsulating Sub Sheet1 and End Sub  statements.
Uncomment Sub Worksheet_Activate and associated End Sub statements.  Remove the
Private attribute for this procedure.  Leaving the Private attribute causes intermittent run-
time errors.
Replace the Excel/VBA Range() method calls with the equivalent Calc/SB calls.
Unable to determine SB code to monitor cell selection changes on this worksheet [sheet].
Convert worksheet Example2.  These are the steps taken in the SB module "SampleCode":
Delete the Sub SampleCode and End Sub.
In the procedure "generateDataToSort", convert the Excel/VBA Range objects to the
equivalent SB CellRange objects.  On the sheet "Example2", assign the When Initiating
events of the two button controls for generating random sort data to this macro procedure.
In the procedures "SortWithScreenUpdating" and "SortWithNoScreenUpdating", convert
the ScreenUpdating=True and ScreenUpdating=False to UnlockControllers and
LockControllers method invocations, respectively.  Convert the Excel Range and Cell
object references to Calc CellRange object references.  Assign the When Initiating events
for the buttons initiating the sort to the appropriate procedures.  Manually adjust button
sizes to fit text in the caption [label].
In the procedure "BubbleSort" convert the procedure definition to change reference from
Excel Range object to generic object type in Calc.  Replace references to the Excel
Interior.ColorIndex attribute (cell background color) with the Calc BackColor attribute
for a cell.  In addition translate specific Excel ColorIndex values to SB calls to the RGB()
Porting Excel/VBA to Calc/StarBasic
C# PDF Convert to Text SDK: Convert PDF to txt files in
Text can be extracted from scanned PDF image with OCR component. solution for Visual C# developers to convert PDF document to editable & searchable text file
select text in pdf file; how to select text in pdf and copy
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in
batch converting PDF to editable & searchable text formats. Convert PDF document page to separate text file in Text extraction from scanned PDF image with OCR
search pdf documents for text; search pdf files for text
Porting Sample Workbook [Spreadsheet]
function to specify colors.
Convert Worksheet Example3.  This SB module underlying this worksheet is module
"Sheet9".  These are the steps taken to convert this module:
Rename SB Module from "Sheet9" to "Example3Code".  
Remove the encapsulating Sub Sheet9 and End Sub statements.
Resize the button to fit the button caption.
Cell G10 contains text "Range Selected".  In Excel, this cell is right aligned and the text
string is completely visible.  In Calc, while the cell is right aligned, only the leftmost
portion of the text string is shown with a small red arrow visible on the right-side of the
cell.  To correct this problem, cells F10 & G10 are merged.  The text "Range Selected" is
reentered and right aligned in the merged cell.
Modify the Excel Range method calls to the equivalent SB calls.
Add user developed function CellRangeAddressString() to "SupportModule" to extract a
string representation of a cell or range.  This function is described in Appendix B.
Convert worksheet Example4:
Remove the Sub ChartDemoCode and End Sub statements.
Uncomment Sub GenerateChart and End Sub statements.
Add SB statements for defining a chart.  Since Calc/SB does not automatically provide
default size for a chart, experiment with several different values for the Rectangle object
Connect the button on worksheet Example4 to the procedure "GenerateChart" by selecting
the button, right-click mouse button, Control... > Events and enter into the When
Initiating.... property the procedure "GenerateChart" found in module "ChartDemoCode".
Convert worksheet Example5:
Rename SB module Sheet3 to Example5Code and remove the encapsulating Sub Sheet3
and End Sub
Split the VBA Worksheet_Change() procedure into separate procedures for each distinct
cell ranges to monitor for cell content changes.  This results in two new procedures
MYCELL_modified and MYVECTOR_modified to listen for modification events.  The
procedures are named based on the names for the cell ranges.
Create procedure Worksheet_Activate to register the listener procedures above.  
Create procedure Worksheet_Deactivate to remove the listener procedures above.
Add code to Workbook_Open procedure in module "ThisWorkbook" to call the Sub
Worksheet_Activate or Sub Worksheet_Deactivate procedures.  
In module "SampleCode", modify procedure "ElementOperation" to call Calc sheet
functions.  Assign event When Initiating.... for button on worksheet to procedure
Porting Excel/VBA to Calc/StarBasic
VB.NET Image: Robust OCR Recognition SDK for VB.NET, .NET Image
More and more companies are trying to convert printed business be Png, Jpeg, Tiff, image-only PDF or Bmp. original layout and formatting of scanned images, fax
how to select text in pdf reader; pdf text search
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
Convert PDF to Word in both .NET WinForms and ASP.NET webpage. Create high quality Word documents from both scanned PDF and searchable PDF files without losing
select text in pdf reader; cannot select text in pdf
Porting Sample Workbook [Spreadsheet]
Convert Worksheet Example6:
For the ComboBox.  To re-establish the ComboBox, select it and right-click the mouse.
Select Control... > Data.  Enter into property Linked Cell.... the cell location to display
the selected choice.  In Calc, only the cell address can be entered, i.e., D16.  User defined
range names, such as "SelectedChoice", are not allowed.  To connect the ComboBox to
the list of choices to display enter the cell range address, F16:F18, in the property Source
cell range.....
To convert the option buttons, for each button, select it and right-click the mouse.  Select
Control... > Data.  Enter into property Linked Cell... the cell location to the display state
of the option button.  Again the cell address, e.g., D12, must be used since user-defined
range names, e.g., "StateOfOption1", are not supported.  Note that the Name property
(Control... > General) must be the same for all the option buttons for them to function as
radio buttons, i.e., only one button can be selected at a time.
To convert the CheckBox, select it and right-click the mouse.  Select Control... > Data
and enter the cell address, e.g., D7,  to hold the state of the CheckBox.  As in the other
controls, user defined range names are not supported.
Rename SB module "Sheet2" to "Example6Code".  Remove the encapsulating Sub
Sheet2 and End Sub statements and uncomment all the SB statements.  No other source
code modification is needed.  Select the button on the worksheet, right-click the mouse
and select Control... > Events.  In the When Initiating... property, enter the procedure
"CommandButton1_Click" found in this module.  Remove the Private attribute to the
CommandButton1_Click procedure definition.
Convert worksheet Example7.  The most important step in converting this worksheet is
rebuilding the UserForm as a Calc Dialog panel.  The UserForm itself is not imported into
Calc from Excel.
Rename SB module "UserForm1" to "UserForm1Code".  Remove the encapsulating "Sub
UserForm1" and "End Sub" statements.
Create dialog panel.  Name the panel "UserForm1".
Add controls on the dialog panel to match the Excel UserForm.
Create procedure "Button_Click_To_Show_UserForm" in "UserForm1Code" module.
This facilitates access to the shared global object variable representing the UserForm.
Assign When Initiating event to procedure "Button_Click_To_Show_UserForm" to
display the UserForm.
The following table summarizes the results of porting ExcelExamples.xls to
Excel Component
Result of Porting
Able to port functionality.  However, required
additional coding to handle events.
Porting Excel/VBA to Calc/StarBasic
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
pdf find text; how to search text in pdf document
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Easy to create searchable and scanned PDF files from Word. Convert Word to PDF file with embedded fonts or without original fonts fast.
make pdf text searchable; how to make a pdf document text searchable
Porting Sample Workbook [Spreadsheet]
Excel Component
Result of Porting
Worksheet Example1
Able to port a subset of the functions demonstrated
on this worksheet.  Unable to duplicate function of
tracking cursor movement on this worksheet [sheet].
Worksheet Example2
Able to port all functions on this worksheet [sheet]..
Worksheet Example3
Able to port all functions on this worksheet [sheet].
Worksheet Example4
Able to port all functions on this worksheet [sheet].
Worksheet Example5
Able to port all functions on this worksheet [sheet].
Additional coding needed to support handing events
on this worksheet [worksheet].
Worksheet Example6
Able to port all functions on this worksheet [sheet].
Worksheet Example7
Able to port all functions on this worksheet [sheet].
Needed to manually recreate the UserForm [Dialog].
Run-time Experiences
Porting and testing of the workbook [spreadsheet] was accomplished on the Windows/XP
platform.  After porting on Windows was complete, the workbook [spreadsheet] was tested
on Linux.  This section describes platform specific experiences of testing the ported
workbook [spreadsheet].
The Windows/XP environment:
Operating System: Windows/XP Home with Service Pack 1
OpenOffice: 1.1.1
The Linux environment:
Operating System:  SuSe Linux 9.1 (running under Vmware 4.5.1 on Windows/XP)
OpenOffice: 1.1.1
After testing PortedExcelExamples.sxc on Windows, the workbook [spreadsheet] was
transferred to the Linux environment.  The workbook [spreadsheet] performed the same on
Linux with the following exception:
Although the button controls on the worksheets [sheets] were adjusted to display all the
text in the control's caption [label] for Windows, the text did not fit completely in the
buttons on OpenOffice on Linux.  One way to avoid this problem is to specifically set the
font and character set size of the control and not just take the default specification when
the control is created.  This specification is set through the Character Set property of the
Porting Excel/VBA to Calc/StarBasic
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Create searchable and scanned PDF files from Excel in VB.NET Framework. Convert to PDF with embedded fonts or without original fonts fast.
how to make pdf text searchable; search text in multiple pdf
XImage.OCR for .NET, Recognize Text from Images and Documents
extraction from images captured by digital camera, scanned PDF document and image-only PDF. Output OCR result to memory, text searchable PDF, Word, Text file
pdf searchable text converter; text searchable pdf
Appendix A:  XRay tool
Appendix A:  XRay tool
Unlike the Excel/VBA environment, the documentation for what a Calc object can or cannot
do is spread among several locations.  In addition, the debugger found in the SB IDE is not
capable of displaying the structure of an object.  Fortunately, a tool, freely available on the
Intertnet, is available to allow a programmer to explore the Calc objects during run-time.  
While the XRay tool has many useful features, the one disadvantage of the tool is that code
must be inserted into the application to invoke XRay.  Based on testing as of this writing, the
inserted XRay code does not appear to affect the running of the SB program when the XRay
tool is not activate. However, the XRay statements must be removed or commented out to
avoid run-time errors for systems where the XRay tool is not installed.
Details on the use of XRay can be found at
Once the tool is installed and activated, XRay provides the following capabilities.  For
purposes of this illustration, assume the following was coded:
Dim oSheet as Object, oCell as Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellRangeByName("B3:E15")
Xray.XRay oCell   'this invokes the XRay tool for the oCell Object
XRay is able to show the following:
Properties of the oCell object:
Porting Excel/VBA to Calc/StarBasic
C# Create PDF from Tiff Library to convert tif images to PDF in C#
turning tiff into searchable PDF or scanned PDF. Program.RootPath + "\\" Output.pdf"; // Load a doc = new TIFFDocument(inputFilePath); // Convert loaded TIFF
how to select text in pdf image; converting pdf to searchable text format
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Easy to create searchable and scanned PDF files from Word. Convert to PDF with embedded fonts or without original fonts fast.
how to select text in a pdf; pdf searchable text
Appendix A:  XRay tool
Methods of the oCell object:
Porting Excel/VBA to Calc/StarBasic
Appendix A:  XRay tool
Display lower-level detail of an object's method or property:
Porting Excel/VBA to Calc/StarBasic
Appendix A:  XRay tool
Display SDK documentation for a method or property:
Porting Excel/VBA to Calc/StarBasic
Appendix B: Supporting Functions
Appendix B: Supporting Functions
This Appendix contains user defined functions to support the porting of VBA to SB.  
Functions contained in this section:
Function CellRangeAddressString(oCellRng)
This function creates a string for the addresss of a cell or range object.
oCellRng – O bject reference to cell or range object
function CellRangeAddressString(oCellRng as Object) as String
Dim FuncService
Rem Create service to access sheet functions
FuncService = _
select case oRng.getImplementationName()
case "ScCellObj"
CellRangeAddressString = FuncService.CallFunction( _
array(oCellRng.CellAddress.Row+1, _
case "ScCellRangeObj"
CellRangeAddressString = FuncService. _
CallFunction("ADDRESS", _
array(oCellRng.RangeAddress.StartRow+1, _
CellRangeAddressString = CellRangeAddressString _
& ":" & FuncService.CallFunction( _
array(oCellRng.RangeAddress.EndRow+1, _
end select
End Function
Function findSheetIndex(SheetName)
Function to find collection index for a worksheet [sheet].  The function will return either the
index value or -1 if the sheet is not found
Porting Excel/VBA to Calc/StarBasic
Documents you may be interested
Documents you may be interested