Overview

Go to SautinSoft web-page
www.sautinsoft.com
RTF-to-HTML DLL
build 1.5 October 17, 2005

The RTF-to-HTML DLL is COM component for developers, it is absolutely standalone and does not require Microsoft Word or other word-processors. Developers my call it from Visual Basic, ASP, ASP.Net, C#, VB.Net, Delphi, Java etc.

If you have more questions about DLL component, please write to us support@sautin.com and you will get reply during 1 business day

Component convert RTF and TXT files into plain HTML or XHTML.
Component can convert:
- RTF to HTML
- TXT to HTML
- RTF to HTML + CSS
- TXT to HTML + CSS
- RTF to XHTML
- TXT to XHTML

Component support:
- method ConvertFile();
- method ConvertString();
- method ConverterFileToString();
- font face, color and size;
- tables;
- embed images (png, jpg, wmf);
- CSS;
- hyperlinks;
- italic, bold and underline text;
- subscript and superscript text;
- ordered and unordered lists;
- 20 types of encodings (UTF-8, Windows-1251, ISO-8859-2 etc.)
- and other HTML tags.

If you wish to add some features in DLL, please write to us info@sautin.com and we will try to help you quickly, because we every day working on improving component.

Copyright © 2004-2005, SautinSoft. All rights reserved


Features

If you have more questions about DLL component, please write to us support@sautin.com and you will get reply during 1 business day.

Features of RTF-to-HTML DLL

The DLL is written on C++, it is absolutely standalone. The size of DLL is about 120 Kb, the average speed of converting is 10 files/per sec without images and 3 files/per sec with images.

The DLL is COM version and developers my call it from Visual Basic, C#, VB.Net, Delphi, Java or other language.

On this scheme are shows all members and methods of DLL, but you may use not all members, because all of them is already installed by default to make conversion more exact.

Methods:
ConvertFile()
ConvertString()
ConvertFileToString()
Members:

html parameters:
Encoding
FileExtension
HtmlParts
OutputFormat
Title

table parameters:
TableBorders

image parameters:
PreserveImages
text parameters:
FontFace
FontSize
PreserveFontFace
PreserveFontSize
color parameters:
PreserveFontColor

Methods

int ConvertFile(string RTFpath, string HTMLpath) - this method take RTF (or Text) file and convert it into HTML file.

string ConvertString(string RTF, string ImageFolder, string ImageSubFolder) - this method take RTF (or Text) string and return HTML string.

string ConvertFileToString(string RTF, string ImageFolder, string ImageSubFolder) - this method take RTF (or Text) file and return HTML string

ImageFolder - path where images will be stored, this folder must already exist.
Path must be absolute, it must begin from "C:\.." or "D:\" etc.
Possible values: real path
Default value: ""
Example: ImageFolder = "D:\documents\html\"

ImageSubFolder - folder which will created for storing images.
Folder will be created by DLL.
Must be without any "C:\.." or "D:\" etc, only folder as "my folder".
Possible values: "string", etc.
Default value: ""
Example: ImageSubFolder = "images"

Return values for Method ConvertFile:

CONVERTING_SUCCESSFUL - converting ok ( value 0 )
NOT_ENOUGH_MEMORY - not enough memory ( value 1 )
RTF_CREATE_ERROR - can't create RTF file ( value 2 )
HTML_OPEN_ERROR - can't open HTML file ( value 3 )
HTML_HAS_ZERO_LENGTH - the HTML file has zero length ( value 4)
UNKNOWN_ERROR - unknown error ( value 5)

Example:

         Private Function TestRTF2HTML() As String
         Dim strRet As String
         Dim ImageFolder As String
         Dim ImageSubFolder As String
         Dim h As New RTF2HTML.Converter
         h.OutputFormat = Html_with_CSS
         h.Title = "Test Page"
         ImageFolder = "D:\documnets\html"
         ImageSubFolder = ""
         strRet = h.ConvertFile("D:\test.rtf", "D:\html\")
         'strRet = h.ConvertString("This is test", ImageFolder, ImageSubFolder)
         'strRet = h.ConvertFileToString("C:\index.rtf", ImageFolder, ImageSubFolder)
         MsgBox strRet
     End Function

Members

OutputFormat - type of ouput HTML file.
Possible values: Html, Html_with_CSS, Xhtml.
Also you may use integer value:

Name | Integer equivalent
Xhtml | 0
Html | 1
Html_with_CSS | 2

Default value: Html
Example: h.OutputFormat = RTF2HTML.Html_with_CSS

Title - HTML paget title, which appear between tags <title>...</title>
Possible values: Any string.
Default value: "Untitled Document"
Example: h.Title = "First page of site"

Encoding - endcoding for HTML file
Possible values: Windows_1250, Windows_1251, Windows_1252,
Windows_1253, Windows_1254, Windows_1255, Windows_1256,
Windows_1257, Windows_1258, ISO_8859_1, ISO_8859_2,
ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6, ISO_8859_7,
ISO_8859_8, ISO_8859_9, KOI8_R, UTF_8.
Default value: ISO_8859_1
Also you may use integer value:

Name | Integer equivalent
Windows_1250 | 0
Windows_1251 | 1
Windows_1252 | 2
Windows_1253 | 3
Windows_1254 | 4
Windows_1255 | 5
Windows_1256 | 6
Windows_1257 | 7
Windows_1258 | 8
ISO_8859_1 | 9
ISO_8859_2 | 10
ISO_8859_3 | 11
ISO_8859_4 | 12
ISO_8859_5 | 13
ISO_8859_6 | 14
ISO_8859_7 | 15
ISO_8859_8 | 16
ISO_8859_9 | 17
KOI8_R | 18
UTF_8 | 19

Example: h.encoding = RTF2HTML.UTF_8

PreserveImages - if this parameter will be True then images will be preserved.
Possible values: True, False.
Default value: True
Example: h.PreserveImages = False
or

FileExtension - extension for HTML file
Possible values: ".htm", ".html", ".asp" etc,
Default value: ".html"
Example: h.FileExtension = ".phtml"

FontFace - default font face
Possible values: any font name,
Default value: "Arial"
Example: h.FontFace = "Verdana"

FontSize - default font face
Possible values: from "5" to "72"
Default value: "10"
Example: h.FontSize = "12"

PreserveFontFace - preserve font faces as in RTF
Possible values: True, False.
Default value: True
Example: h.PreserveFontFace = False
or

PreserveFontSize - preserve font sizes as in RTF
Possible values: True, False.
Default value: True
Example: h.PreserveFontSize = False
or

PreserveFontColor - preserve font colors as in RTF
Possible values: True, False.
Default value: True
Example: h.PreserveFontColor = False
or

TableBorders - visible/invisible table borders, True - visible
Possible values: True, False.
Default value: True
Example: h.TableBorders = False

HtmlParts - select parts of HTML which need to produce:
Possible values: Html_completely, Html_body.
Also you may use integer value:

Name | Integer equivalent
Html_completely | 0
Html_body | 1

Default value: Html_completely
Example: h.OutputFormat = RTF2HTML.Html_body

See examples of using DLL

Copyright © 2004, SautinSoft. All rights reserved


Examples

If you have more questions about DLL component, please write to support@sautin.com and we will reply to you in 1 business day.

Examples of using RTF-to-HTML DLL in:

- VB6.0
- Delphi 6.0
- VC++6.0
- C#
- VB.Net
- ASP (VBScript)
- ASP.Net (VB.Net, C#)
- PHP
- Java
- ColdFusion

Example for VB 6.0:

1. Register DLL in your system, run:

regsvr32 RTF2HTML.dll

2 . Add a reference to the “SautinSoft Rtf-to-Html DLL” control:

3. This is sample function:

        Private Function TestRTF2HTML() As String
         Dim strRet As String
         Dim h As New RTF2HTML.Converter
         h.OutputFormat = RTF2HTML.Html
         h.Encoding = RTF2HTML.Windows_1252
         strRet = h.ConvertFile("D:\test.rtf", "D:\HTML files\")
         MsgBox strRet
     End Function

ASP/ VBScript sample

1. Register DLL in your system, launch: Regsvr32 Rtf2Html.dll

Sample1:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
Private Function TestRTF2HTML() As String
Dim strRet As String
Dim ImageFolder As String
Dim ImageSubFolder As String
Dim h As New RTF2HTML.Converter

h.Encoding = RTF2HTML.eEncoding.ISO_8859_1
h.PreserveImages = True
h.OutputFormat = RTF2HTML.html
h.FontFace = "Arial"
h.PreserveFontFace = True
h.PreserveFontColor = True

ImageFolder = "D:\"
ImageSubFolder = ""
strRet = h.ConvertString("This test string", ImageFolder,
        ImageSubFolder)
MsgBox strRet
End Function
%>

Sample2:

This is example of function on VBScript:

<%
                        set fs = server.CreateObject("scripting.filesystemobject")
                        set h  = server.CreateObject("RTF2HTML.Converter")
                                h.OutputFormat = RTF2HTML.Html_with_CSS
                                h.PreserveFontColor = True
                                h.PreserveFontSize = True
                                h.PreserveImages = True
                                strOut = h.ConvertString(strOut, "", "")
                        set h = nothing
                        strhtmlname =  "Html_" & session.SessionID & ".html"
'gets unique name
                        strPhysicalFileName = server.MapPath("../temp") &
"\" & strhtmlname
                        strURL = "../temp/" & strhtmlname

 if not fs.FileExists(strPhysicalFileName) then

  fs.CreateTextFile strPhysicalFileName

  end if

  set myHtml = fs.OpenTextFile(strPhysicalFileName,2)

  myHtml.write strout

  myHtml.close

  set fs=nothing

  response.redirect strURL

  %>
Java sample

1) Use this class is using the jawin package that can be downloaded here: http://sourceforge.net/projects/jawinproject/
2). Register DLL in your system, launch:

Regsvr32 Html2Rtf.dll

IConverter.java

import org.jawin.*;
public class IConverter
         extends DispatchPtr {
         public static GUID DIID = new GUID("{1A21ED6F-1BB2-11D9-B234-000D87800515}");
         static public final int iidToken;
         static {
         iidToken = IdentityManager.registerProxy(DIID, IConverter.class);
         }
 public IConverter() throws COMException {
         super();
         }
 public IConverter(String progid) throws COMException { super(progid);}
         // public IConverter(IUnknown other) throws COMException { super(other);}
         public IConverter(GUID ClsID) throws COMException { super(ClsID);}
         public String ConvertString(String strRtf) throws COMException {
         return ( (String) invokeN("ConvertString", new Object[] {strRtf}));
         }
 public String ConvertFiletoString(String RtfFilePath) throws COMException          {
         return ( (String) invokeN("ConvertFiletoString", new Object[]          {RtfFilePath}));
         }
 public void setPreserveImages(boolean PreserveImages) throws COMException          {
         put("PreserveImages", PreserveImages);
         }
 public void setPreserveFontFace(boolean PreserveFontFace) throws COMException          {
         put("PreserveFontFace", PreserveFontFace);
         }
 public void setPreserveFontSize(boolean PreserveFontSize) throws COMException          {
         put("PreserveFontSize", PreserveFontSize);
         }
 public void setPreserveFontColor(boolean PreserveFontColor) throws
         COMException {
         put("PreserveFontColor", PreserveFontColor);
         }
 public void setOutputFormat(int OutputFormat) throws COMException {
         put("OutputFormat", OutputFormat);
         }
 public void setEncoding(int Encoding) throws COMException {
         put("Encoding", Encoding);
         }
 public void setTableBorders(boolean TableBorders) throws COMException          {
         put("TableBorders", TableBorders);
         }
 public void setHtmlParts(int HtmlParts) throws COMException {
         put("HtmlParts", HtmlParts);
         }
 public void setFontFace(String FontFace) throws COMException {
         put("FontFace", FontFace);
         }
 public void setFontSize(String FontSize) throws COMException {
         put("FontSize", FontSize);
         }
 public void setTitle(String Title) throws COMException {
         put("Title", Title);
         }
 public void setFileExtension(String FileExtension) throws COMException          {
         put("FileExtension", FileExtension);
         }
         }

ConvertServlet.java

import com.oreilly.servlet.MultipartRequest;
         import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
         import java.io.*;
         import java.util.Enumeration;
         import javax.servlet.ServletException;
         import javax.servlet.*;
         import javax.servlet.http.*;
         import org.jawin.*;
public class ConvertServlet
         extends HttpServlet{
 public ConvertServlet() {
         }
 public void init() throws ServletException {
         super.init();
         }
 public void doPost(HttpServletRequest request, HttpServletResponse response)          throws
         ServletException, IOException {
 response.setContentType("text/html");
         PrintWriter out = response.getWriter();
         try {
         MultipartRequest multi = new MultipartRequest(request,
         "/files", 0x1f4000, new DefaultFileRenamePolicy());
         Enumeration files = multi.getFileNames();
         StringBuffer sb = new StringBuffer();
 IConverter iconv = new IConverter(new GUID("{1A21ED6F-1BB2-11D9-B234-000D87800515}"));
         iconv.setOutputFormat(1);
         iconv.setEncoding(9);
         iconv.setPreserveFontFace(false);
         iconv.setPreserveFontColor(false);
         iconv.setPreserveFontSize(false);
         iconv.setPreserveImages(false);
 while (files.hasMoreElements()) {
         String name = (String) files.nextElement();
         File fbin = multi.getFile(name);
         FileReader f = new FileReader(fbin.getPath());
 int k;
         while((k = f.read()) != -1){
         sb.append( (char) k);
         }
         }

         String html = iconv.ConvertString(sb.toString());
         html = html.replaceAll("charset=iso-8859-1", "charset=iso-8859-15");
         System.out.println("ConvertServlet.html: \n" + html);
         out.println(html);
         }
         catch (Exception e) {
         e.printStackTrace(out);
         }
         }
 public void destroy() {
         }
         }

ASP.Net samples

Sample 1 - ASP.Net/VB

1. Install HTML2RTF on the webserver.
2. Use regsvr32 to register the DLL, launch: Regsvr32 Rtf2Html.dll
3. Request the aspx page in a browser from a client

rtf2html.aspx

<%@ Page Language="VB" validaterequest="False"          AspCompat="True" %>
         <script runat="server">
 Sub Rtf2Html(sender As Object, e As EventArgs)
 Dim str_HTML As String
         Dim obj_HTML = Server.CreateObject("RTF2HTML.Converter")
         obj_HTML.PreserveImages = False
         str_HTML = obj_HTML.ConvertString(txt_rtf.Text, "", "")
         txt_HTML.Text = str_HTML
 End Sub
</script>
         <html>
         <head>
         </head>
         <body>
         <form runat="server">
         <p>
         <strong><u>RTF text</u></strong>
         <br />
         <asp:TextBox id="txt_rtf" runat="server" Width="600px"          TextMode="MultiLine" Height="250px"></asp:TextBox>
         </p>
         <p>
         <strong><u>HTML text</u></strong>
         <br />
         <asp:TextBox id="txt_html" runat="server" Width="600px"          TextMode="MultiLine" Height="250px"></asp:TextBox>
         </p>
         <p>
         <asp:Button id="btn_rtf2html" onclick="Rtf2Html"          runat="server" Text="RTF to HTML"></asp:Button>
         </p>
         </form>
         </body>
         </html>

Sample 2- ASP.Net/VB.Net

PHP sample

 $rtf2htmlCom = new COM("RTF2HTML.Converter");
         $rtf2htmlCom->PreserveImages=true;
         $rtf2htmlCom->OutputFormat = 1;
         $rtfFile = "C:\\Inetpub\\wwwroot\\rtf2htm\\Word1.rtf";
         $htmlFile ="C:\\Inetpub\\wwwroot\\rtf2htm\\Word1.htm";
         $result =$rtf2htmlCom->ConvertFile($rtfFile,$htmlFile);
         print($result);
         unset($rtf2htmlCom);
         echo "done";

Copyright © 2004 - 2005, SautinSoft. All rights reserved


Examples

If you have more questions about DLL component, please write to support@sautin.com and we will reply to you in 1 business day.

License information and pricing

 We use RegSoft and ShareIt - well known paying service providers that allows to order securely online with a credit card (Visa, MasterCard, American Express, Discover/Novus, Eurocard, Eurocheques), or by phone, by fax or whatever you desire, even old post mail orders with bank check. All licenses has 30 day money back guarantee.

You will receive the full version of DLL and your registration data during 12 hours after order. If you will have any questions write to sales department sales@sautin.com.

RTF-to-HTML DLL (+ 1 year technical maintenance)

License Type | Price | For non-European customers (through Regsoft.com) | For European customers (through ShareIt.com)
1 Developer License | 239$ | order | order
4 Developers License | 430$ | order | order
Site License | 599$ | order | order
Source Code | 1100$ | order | order

Special offer
HTML-to-RTF Pro DLL + RTF-to-HTML DLL (+ 1 year technical maintenance)

License Type | Price | For non-European customers (through Regsoft.com) | For European customers (through ShareIt.com)
1 Developer License | 380$ | order | order
4 Developers License | 770$ | order | order
Site License | 1190$ | order | order

1 Developer License
The 1 developer license entitles a single developer to install and use the product per one machine.

4 Developers License
The 4 developers license entitles 4 developers to install and use the product.

Site License
The Site developer license entitles all developers within the purchasing organization and located at the same business address to install and use the product.

Royalty free runtimes

All licenses apply to DLL, products or class libraries that are integrated by developers into their applications. All developer products have royalty free runtimes. This means that you may freely distribute the product with your application.

Annual Support Agreement (250$)

Unlimited technical support by email any installation, development, debugging and redistribution issues for a single product. All responses are guaranteed within one business day, with most questions responded to on the same day. Precedence over standard support issues, including any corrections made to a product.

For non-European customers (through Regsoft.com) | For European customers (through ShareIt.com)
order | order

See License Agreement

Copyright © 2004, SautinSoft. All rights reserved


Examples

If you have more questions about DLL component, please write to support@sautin.com and we will reply to you in 1 business day.

Support and Contacts

You are welcome to send your comments and suggestions regarding our DLL to e-mail info@sautin.com.

Please send all questions regarding order and registration to e-mail: sales@sautin.com.

Technical support and department of bugs elimination: support@sautin.com.

Sautin Software,
Lenina str. 10,
Votkinsk 427435, Russian Federation.

Your feedback helps us to improve our products and work more effective.

Copyright © 2004, SautinSoft. All rights reserved


Overview

Go to SautinSoft web-page
If you have more questions about DLL component, please write to us
support@sautin.com and you will get reply during 1 business day.

RTF-to-HTML DLL versions history:

version 1.5, October 17, 2005

Added support of:
- Bookmarks;
- Page headers and footers;
- Greek and Mac encodings;
Fixed:
- bug with converting of email addresses.

1.3 April 5, 2005

Added:
-support ordered and unrdered lists (<ol>..<li>..</li></ol>, <ul>..<li>..</li></ul> ).
-feature 'HtmlParts', now you may adjust component that it will produce not only HTML completely, but HTML only between tags <body>...</body> without header and title.

1.21 February 7, 2005

Added:
-support hyperlinks: ‘https://’ and ‘ftp://’.

Fixed bug with hyperlinks conversion.

1.1 November 20, 2004

Added:
- image converting (wmf, jpg, png);
- select extension for output HTML file;
- method ConvertString();
- method ConvertFileToString();

Fixed:
- working with encodings;

1.0 August 7, 2004
We released new product RTF-to-HTML DLL, it is COM component for developers for convert RTF and Text files into HTML, component is absolutely standalone and support:
Component support:
- font face, color and size;
- tables;
- CSS;
- hyperlinks;
- subscript and superscript text;
- ordered and unordered lists;
- 20 types of encodings (UTF-8, Windows-1251, ISO-8859-2 etc.)
- and other HTML tags.

Copyright © 2004-2005, SautinSoft. All rights reserved


HTML2RTF DLL v1.0

RTF-to-HTML DLL license information
Copyright (C) 2004 SautinSoft
http://www.sautinsoft.com

1. License

SautinSoft grants you a non-exclusive license to install and use a copy of the software on a single server held or controlled by you. You may transfer the software between servers only if it is first removed from the old computer prior to being installed on the new one. You may only install and use the software within your own organization. You shall not reverse engineer, disassemble or decompile all or part of the Program. You are permitted to copy the documentation only for your own use. You are permitted to make only one back-up copy. The sale and sub-licensing of the software are forbidden.This license shall not be transferred or assigned without the prior written agreement of SautinSoft or an approved distributor.

2. Evaluation License

The standard software version is free of charge. It may be freely distributed on the sole condition that it is not altered in any way. RTF-to-HTML DLL Evaluation version can't be used in commercial applications.

3. "1 Developer License"

You are granted a license as a single developer (individual). The 1 developer license entitles a single developer to install and use the product per one computer. At no time may the software be used by more than one individual at the same time for development purposes.You are required to ensure that the software is not distributed in any form that allows it to be reused by any application other than that with which you distribute it.

3.1 "4 Developers License"

The 4 developers license entitles 4 developers to install and use the product. At no time may the software be used by more than one individual at the same time for development purposes.You are required to ensure that the software is not distributed in any form that allows it to be reused by any application other than that with which you distribute it.

4. Site License

The Site developer license entitles all developers within the purchasing organization and located at the same business address to install and use the product.You are granted a license to distribute RTF-to-HTML DLL royalty-free with an unlimited number of applications, provided they are developed solely by your organization.
You are required to ensure that the software is not distributed in any form that allows it to be reused by any application other than that with which you distribute it. For example, if you install RTF-to-HTML DLL component along with a packaged application on a customer's server, that customer is not permitted to use the component independent of your application.

a. License Grant. SautinSoft grants the Licensee, and the Licensee hereby accepts, a non-exclusive, perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, and distribute the version noted above of the computer software program noted above, in binary and source code format, or any derivative work thereof, together with any associated media, printed materials, and on-line or electronic documentation (if any) provided by SautinSoft (collectively, the "Software"), subject to the following terms and conditions: (i) any distribution of the Software shall bind the receiver to the terms and conditions of this Agreement; (ii) any distribution of the Software in modified form shall clearly state that the Software has been modified from the version originally obtained from SautinSoft.

b. Copyright; Retention of rights. The above license grant is conditioned on the following: (i) the Licensee must reproduce all copyright notices and other proprietary notices on any copies of the Software and the Licensee must not remove such notices; (ii) in the event the Licensee compile the Software, the Licensee will include the copyright notice with the binary in such a manner as to allow it to be easily viewable; (iii) if the Licensee incorporate the Software into other code, the Licensee must provide notice that the code contains the Software and include a copy of the copyright notices and other proprietary notices. All copies of the Software shall be subject to the terms of this Agreement. (a) the Licensee hereby acknowledges that the Software is protected by Russian copyright law and international treaty provisions; (b) SautinSoft, and its licensors (if any), hereby reserve all rights in the Software which are not explicitly granted to the Licensee herein; (c) without limiting the generality of the foregoing, SautinSoft and its licensors retain all title, copyright, and other proprietary interests in the Software and any copies thereof, and the Licensee do not acquire any rights, express or implied, in the Software, other than those specifically set forth in this Agreement.

c. Confidentiality

The Licensee acknowledges and agrees that the Software constitutes the confidential and proprietary trade secrets of SautinSoft and its suppliers, and that Licensee’s protection thereof is essential to this Agreement and a condition of Licensee’s use and possession of the Software. The Licensee shall retain in strict confidence any and all elements of the Software and use the Software only as expressly licensed herein. The Licensee agrees that it will under no circumstances distribute or in any way disseminate or disclose the Software to third parties.

5. Warranty disclaimer

THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND. SAUTINSOFT, ITS LICENSORS AND THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OR MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4) DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL BE CORRECTED.

6. Limitation of liability

IN NO EVENT WILL SAUTINSOFT OR ITS LICENSORS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE, EVEN IF SAUTINSOFT HAS BEEN WARNED OF THE POSSIBILIITY OF SUCH LOSS OR DAMAGES. IN NO EVENT SHALL SAUTINSOFT 'S LIABILITY FOR DAMAGES ARISING FROM OR IN CONNECTION WITH THIS AGREEMENT EXCEED THE AMOUNT PAID BY YOU FOR THE SOFTWARE.

7. Indemnity

The Licensee shall indemnify, defend, and hold harmless SautinSoft, the Software developers, the Software sponsors, and their agents, officers, and employees, against any and all claims, suits, losses, damage, costs, fees, and expenses arising out of or in connection with this Agreement. The Licensee shall pay all costs incurred by SautinSoft in enforcing this provision, including reasonable attorney fees.

8. Term and termination

The license granted to the Licensee under this Agreement will continue perpetually unless terminated by SautinSoft in accordance with this Agreement. If the Licensee breaches any term of this Agreement, and fails to cure such breach within thirty (30) days of the date of written notice, this Agreement shall immediately terminate. Upon such termination, the Licensee shall immediately cease using the Software, return to SautinSoft, or destroy, all copies of the Software, and provide SautinSoft with written certification of your compliance with the foregoing. Termination shall not relieve the Licensee from its obligations arising prior to such termination. Notwithstanding any provision of this Agreement to the contrary, Sections 2 through 10 shall survive termination of this Agreement.

9. Export controls

The Licensee shall observe all applicable Russian and foreign laws and regulations (if any) with respect to the export, re-export, diversion or transfer of the Software, related technical data and direct products thereof, including, without limitation, the International Traffic in Arms Regulations (ITAR) and the Export Administration Regulations.

10. Applicable law - jurisdiction

This license contract is governed exclusively by Russian law. In the event of a dispute arising in relation to the conclusion, interpretation or execution hereof, the Russian courts, and more specifically those of the judicial district of Liege shall have sole jurisdiction.