view pdf winform c# : Add links to pdf software SDK dll windows .net azure web forms TMS%20TAdvStringGrid%20Developers%20Guide16-part147

TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
161 | Page 
TAdvStringGrid import/export to XLS files via TAdvGridExcelIO 
With the component TAdvGridExcelIO directly reading and writing Excel 97, 2000, 2003 files without 
the need to have Excel installed on the machine is possible.  
With these quick steps, you are up and running: 
1) drop TAdvStringGrid on a form as well as the component TAdvGridExcelIO 
2) Assign the instance of TAdvStringGrid to the AdvStringGrid property of the TAdvGridExcelIO 
component 
3) You can set TAdvGridExcelIO properties to control the Excel file read / write behaviour but in 
most cases default settings will be ok. 
4) To read Excel files, use
advgridexcelio.XLSImport(FileName); 
or  
advgridexcleio.XLSImport(FileName,SheetName); 
5) To write the contents of TAdvStringGrid to an XLS file use
advgridexcelio.XLSExport(filename);
Properties of TAdvGridExcelIO 
Many properties are available in TAdvGridExcelIO to customize importing & exporting of Excel files 
in the grid. 
AutoResizeGrid: Boolean; 
When true, the dimensions of the grid (ColCount, RowCount) will adapt to the number of imported 
cells. 
DateFormat: string; 
Sets the format of dates to use for imported dates from the Excel file. When empty, the default 
system date formatting is applied. 
GridStartCol, GridStartRow: integer; 
Specifies from which top/left column/row the import/export happens 
Options.ExportCellFormats: Boolean; 
When true, cell format (string,  integer, date, float) is exported, otherwise all cells are exported as 
strings. 
Options.ExportCellMargings: Boolean; 
When true, the margins of the cell are exported 
Options.ExportCellProperties: Boolean; 
Add links to pdf - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
clickable links in pdf; pdf link to specific page
Add links to pdf - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
adding a link to a pdf in preview; adding hyperlinks to pdf files
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
162 | Page 
When true, cell properties such as color, font, alignment are exported 
Options.ExportCellSizes: Boolean; 
When true, the size of the cells is exported 
Options.ExportFormulas: Boolean; 
When true, the formula is exported, otherwise the formula result is exported 
Options.ExportHardBorders: Boolean; 
When true, cell borders are exported as hard borders for the Excel sheet 
Options.ExportHiddenColumns: Boolean; 
When true, hidden columns are also exported 
Options.ExportHTMLTags: Boolean; 
When true, HTML tags are also exported, otherwise all HTML tags are stripped during export 
Options.ExportImages: Boolean; 
When true, images in the grid are also exported 
Options.ExportOverwrite: Boolean; 
Controls if existing files should be overwritten or not during export 
Options.ExportOverwriteMessage: Boolean; 
Sets the message to show warning to overwrite existing files during export 
Options.ExportPrintOptions: Boolean; 
When true, the print options are exported to the XLS file 
Options.ExportShowGridLines: Boolean; 
When true, grid line setting as set in TAdvStringGrid is exported to the XLS sheet 
Options.ExportShowInExcel: Boolean; 
When true, the exported file is automatically shown in the default installed spreadsheet after 
export. 
Options.ExportSummaryRowBelowDetail: Boolean; 
When true, summary rows are shown below detail rows in the exported XLS sheet 
Options.ExportWordWrapped: Boolean; 
When true, cells are exported as wordwrapped cells 
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and to Use C#.NET Demo Code to Convert PDF Document to Add necessary references
pdf link to attached file; add a link to a pdf file
.NET PDF Document Viewing, Annotation, Conversion & Processing
PDF Write. Insert text, text box into PDF. Edit, delete text from PDF. Insert images into PDF. Edit, remove images from PDF. Add, edit, delete links. Form Process
add links to pdf file; add url to pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
163 | Page 
Options.ImportCellFormats: Boolean; 
When true, cells are imported with formatting as applied in the XLS sheet 
Options.ImportCellProperties: Boolean; 
When true, cell properties such as color, font, alignment are imported 
Options.ImportCellSizes: Boolean; 
When true, the size of cells is imported 
Options.ImportClearCells: Boolean; 
When true, it will clear all existing cells in the grid before the import is done 
Options.ImportFormulas: Boolean; 
When true, the formula is imported, otherwise only a formula result is imported 
Options.ImportImages: Boolean; 
When true, images from the XLS sheet are imported 
Options.ImportLockedCellsAsReadOnly: Boolean; 
When true, cells that are locked in the XLS sheet will be imported as read-only cells 
Options.ImportPrintOptions: Boolean; 
When true, print settings as defined in the XLS sheet will be imported as grid.PrintSettings 
Options.UseExcelStandardColorPalette: Boolean; 
When true, colors will be mapped using the standard Excel color palette, otherwise a custom 
palette will be included in the XLS sheet. 
TimeFormat: string; 
Sets the format of cells with a time. When no format is specified, the default system time format is 
applied. 
UseUnicode: Boolean; 
When true, cells will be exported / imported as Unicode cells (for versions older than Delphi 2009, 
from Delphi 2009, all cells are Unicode by default) 
XlsStartCol, XlsStartRow: integer; 
Sets the top/left cell from where the import/export should start 
Zoom: integer; 
Sets the zoom level to set for the exported XLS file 
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Turn PDF images to HTML images in VB.NET. Embed PDF hyperlinks to HTML links in VB.NET. Convert PDF to HTML in VB.NET Demo Code. Add necessary references:
adding hyperlinks to a pdf; add links to pdf acrobat
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
the original text style (including font, size, color, links and boldness). C#.NET DLLs and Demo Code: Convert PDF to Word Document in C# Add necessary references
convert doc to pdf with hyperlinks; add url link to pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
164 | Page 
ZoomSaved: Boolean; 
When true, the zoom factor set with AdvGridExcel.Zoom is saved to the XLS file. 
Formatting Excel cells when exporting from with TAdvGridExcelIO 
By default there is no automatic conversion between the numeric formats in AdvStringGrid and 
Excel since they use different notations.  
Imagine you have the number 1200 in the grid, formatted as "$1,200" . 
If you set TAdvGridExcelIO.Options.ExportCellFormat to true, the cell will be exported as the string 
"$1,200" to Excel. It will look fine, but it will not be a "real" number, and can not be used in Excel 
formulas. 
If you set TAdvGridExcelIO.Options.ExportCellFormat to  false, the cell will be exported as the 
number 1200. It will be a real number, that can be added later in Excel, but it will look like "1200" 
and not "$1,200" 
To get a real number that is also formatted in Excel you need to set ExportCellFormat := false, and 
use the OnCellFormat event in AdvGridExcelIO, and set the desired format for the cell there. 
For example, to have 1200 look like "$1,200" for the numbers in the third column, you could use this 
event: 
procedure TMainForm.AdvGridExcelIO1CellFormat(Sender: TAdvStringGrid; 
const GridCol, GridRow, XlsCol, XlsRow: Integer; const Value: WideString; 
var Format: TFlxFormat); 
begin 
if (GridCol = 3) then Format.Format:='$ #,##0'; 
end; 
The string you need to write in "Format.Format" is a standard Excel formatting string. It is 
important to note that this string must be in ENGLISH format, even if your Windows or Excel is 
not in English. 
This means that you must use "." as decimal separator and "," as thousands separator, even if they 
are not the ones in your language. 
For information on the available Formatting string in Excel you can consult the Excel 
documentation, but there is normally a simple way to find out: 
Let's imagine that we want to find out the string for a number with thousands separator and 2 
decimal places. So the steps are: 
1) Open an empty Excel file, right click a cell and choose "Format Cells" 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
You may add PDF document protection functionality into your C# program. to edit hyperlink of PDF document, including editing PDF url links and quick
pdf links; add hyperlink pdf
C# Create PDF Library SDK to convert PDF from other file formats
PDF with a blank page, bookmarks, links, signatures, etc. PDF document in C#.NET using this PDF document creating toolkit, if you need to add some text
add hyperlinks pdf file; add hyperlink to pdf in
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
165 | Page 
Once the window opens, choose the numeric format you want. Here we will choose a numeric 
format with 2 decimal places and a thousands separator 
Once we have the format we want, we choose "Custom" in the left listbox. There is no need to close 
the dialog. 
VB.NET PDF: Basic SDK Concept of XDoc.PDF
You may add PDF document protection functionality into your VB.NET program. to edit hyperlink of PDF document, including editing PDF url links and quick
add email link to pdf; add link to pdf
C# Image: Tutorial for Document Management Using C#.NET Imaging
more detailed C# tutorials on each part by following the links respectively are dedicated to provide powerful & profession imaging controls, PDF document, image
add hyperlink pdf document; pdf email link
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
166 | Page 
The string that shows in the "Type:" editbox is the one we need to use, converted to English 
notation. In this example, since our decimal separator is "," and the thousands "." we need to switch 
them in the final string. 
So, the string showing is "#.##0,00", and we need to switch "," and ".", so the final string is 
"#,##0.00" 
and the event  is: 
procedure TMainForm.AdvGridExcelIO1CellFormat(Sender: TAdvStringGrid; 
const GridCol, GridRow, XlsCol, XlsRow: Integer; const Value: WideString; 
var Format: TFlxFormat); 
begin 
if (GridCol = 3) then  
Format.Format := '#,##0.00'; 
end; 
TAdvStringGrid export to RTF files via TAdvGridRTFIO 
With the TAdvGridRTFIO component it is possible to export a grid to a RTF file without the need to 
have any other software installed such as MS Word.  TAdvGridRTFIO is an add-on component that is 
included with TAdvStringGrid. It is a separate component and as such, when not used, the RTF 
capabilities do not increase your application executable size unnecessarily.  
Using TAdvGridRTFIO is very simple. Drop the component on the form and assign your 
TAdvStringGrid or descendent component to the TAdvGridRTFIO.AdvStringGrid property. Call 
TAdvGridRTFIO.ExportRTF(FileName) to do the actual export. 
Options for the export are controlled by various TAdvGridRTFIO properties: 
GridStartCol, GridStartRow: sets the top left row from where the export should start. With this 
property you can control whether fixed cells are exported or not. 
Options:
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
167 | Page 
ConvertHTML 
When true, HTML formatted cell text is automatically converted 
to rich text formatting otherwise the cell text is exported 
without any attributes 
ExportBackground 
When true, grid cell background colors are exported 
ExportCellProperties 
When true, grid cell properties such as font style, name, size & 
alignment are exported 
ExportHiddenColumns 
When true, hidden cells are also exported 
ExportImages 
When true, images are exported 
ExportMSWordFeatures 
When true, MS Word specific rich text features are exported such 
as column merging 
ExportOverwrite 
Sets the mode for  
ExportOverwriteMessage 
Sets the message to be displayed as warning to overwrite a file 
ExportRTFCell 
When true, grid cells with rich text are also exported as rich text, 
otherwise the cell text is exported without the rich text 
attributes. 
ExportShowInWord 
When true, MS Word is automatically opened with the exported 
RTF file 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
168 | Page 
Using the ICellGraphic interface for cells 
Interfaces are a powerful way to remove code dependencies and as a result allow to better tailer 
code size to feature use. In TAdvStringGrid it is possible to add an interfaced object to a cell and 
have the interface paint the cell. This way, all kinds of small or large code can be used to paint a 
cell without forcing any user who is not interested in a particular graphical feature in the grid to 
link the code.  
To achieve this, the interface ICellGraphic was created. This interface currently has only four 
methods: 
ICellGraphic = Interface 
procedure Draw(Canvas: TCanvas;R: TRect; Col,Row: integer; Selected: 
boolean; Grid: TAdvStringGrid); 
function CellWidth: integer; 
function CellHeight: integer; 
function IsBackground: boolean; 
end; 
The first method Draw() is called to draw the cell Col,Row within rectangle R on the canvas Canvas. 
An extra parameter Selected indicates the selection state of the cell. Two functions return the 
desired size of the graphic in the cell. These functions are used for autosizing in the grid to adapt 
the cell size automatically to the size of the graphic. A function IsBackground is used to inform the 
grid whether text still needs to be drawn on top of the graphic or not.
To start using this interface, we need to create a class that implements the interface. In this 
sample, we propose 3 classes that implement the interface: TSimpleGraphicCell, 
TComplexGradientCell and TImageCell. TSimpleGraphicCell just demonstrates the concept. 
TComplexGradient & TImageCell allow to use specific GDI+ features in the grid. Note that by 
implementing the GDI+ features in the interfaced class, TAdvStringGrid remains completely 
independent of GDI+ code. So, users who prefer not to include a GDI+ dependency can keep using 
TAdvStringGrid as-is while users who want to exploit the extra GDI+ features can benefit from this 
now. 
The TSimpleGraphicCell class code is:
TSimpleGraphicCell = class(TInterfacedPersistent, ICellGraphic) 
procedure Draw(Canvas: TCanvas;R: TRect; Col,Row: integer; Selected: 
boolean; Grid: TAdvStringGrid); 
function CellWidth: integer; 
function CellHeight: integer; 
end;
function TSimpleGraphicCell.CellHeight: integer; 
begin 
Result := 0;  // by returning zero, this graphic cell has no minimum cell 
height requirement 
end; 
function TSimpleGraphicCell.CellWidth: integer; 
begin 
Result := 0; // by returning zero, this graphic cell has no minimum cell 
width requirement 
end; 
procedure TSimpleGraphicCell.Draw(Canvas: TCanvas; R: TRect; Col, Row: 
integer; 
Selected: boolean; Grid: TAdvStringGrid); 
begin 
Canvas.Pen.Color := clRed;   // draw a simple diagonal line in the cell 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
169 | Page 
Canvas.Pen.Width := 2; 
Canvas.MoveTo(R.Left, R.Top); 
Canvas.LineTo(R.Right, R.Bottom); 
end; 
function TSimpleGraphicCell.IsBackground: boolean; 
begin 
Result := true; 
end; 
To use the interface in a cell, this can be done with the code: 
var  
sg:TSimpleGraphicCell; 
begin 
sg := TSimpleGraphicCell.Create; 
AdvStringGrid1.AddInterfacedCell(2,2,sg); 
end;
We have created two additional interfaced classes that now open up GDI+ capabilities for use in the 
grid, ie. adding complex diagonal gradients for example or draw antialiased PNG images in cells 
(this uses TGDIPicture & AdvGDIP, two units available in the TMS Component Pack):
TComplexGradientCell = class(TInterfacedPersistent, ICellGraphic) 
private 
FStartColor, FEndColor: TColor; 
FGradientMode: TLinearGradientMode; 
public 
procedure Draw(Canvas: TCanvas;R: TRect; Col,Row: integer; Selected: 
boolean; Grid: TAdvStringGrid); 
function CellWidth: integer; 
function CellHeight: integer; 
property StartColor: TColor read FStartColor write FStartColor; 
property EndColor: TColor read FEndColor write FEndColor; 
property GradientMode: TLinearGradientMode read FGradientMode write 
FGradientMode; 
end; 
TImageCell = class(TInterfacedPersistent, ICellGraphic) 
private 
FPicture: TGDIPPicture; 
procedure SetPicture(const Value: TGDIPPicture); 
public 
{ Interface } 
procedure Draw(Canvas: TCanvas;R: TRect; Col,Row: integer; Selected: 
boolean; Grid: TAdvStringGrid); 
function CellWidth: integer; 
function CellHeight: integer; 
constructor Create; 
destructor Destroy; override; 
property Picture: TGDIPPicture read FPicture write SetPicture; 
end; 
{ TComplexGradientCell } 
function TComplexGradientCell.CellHeight: integer; 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
170 | Page 
begin 
Result := 0; 
end; 
function TComplexGradientCell.CellWidth: integer; 
begin 
Result := 0; 
end; 
procedure TComplexGradientCell.Draw(Canvas: TCanvas; R: TRect; Col, 
Row: integer; Selected: boolean; Grid: TAdvStringGrid); 
var 
graphics : TGPGraphics; 
linGrBrush: TGPLinearGradientBrush; 
begin 
// Create GDI+ canvas 
graphics := TGPGraphics.Create(Canvas.Handle); 
linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,r.Right 
- r.Left,r.Bottom - r.Top),ColorToARGB(FStartColor),ColorToARGB(FEndColor)
FGradientMode); 
graphics.FillRectangle(linGrBrush, MakeRect(r.Left , r.Top, r.Right - 
r.Left , r.Bottom - r.Top)); 
linGrBrush.Free; 
graphics.Free; 
end; 
function TComplexGradientCell.IsBackground: boolean; 
begin 
Result := true; 
end; 
{ TImageCell } 
function TImageCell.CellHeight: integer; 
begin 
Result := FPicture.Height; 
end; 
function TImageCell.CellWidth: integer; 
begin 
Result := FPicture.Width; 
end; 
constructor TImageCell.Create; 
begin 
inherited Create; 
FPicture := TGDIPPicture.Create; 
end; 
destructor TImageCell.Destroy; 
begin 
FPicture.Free; 
inherited; 
end; 
procedure TImageCell.Draw(Canvas: TCanvas; R: TRect; Col, Row: integer; 
Selected: boolean; Grid: TAdvStringGrid); 
begin 
Canvas.Draw(R.Left, R.Top, FPicture); 
end; 
Documents you may be interested
Documents you may be interested