The DocumentFileInfo class provides information for additional files generated by the Leadtools.Services.Forms.ServiceContracts.IOcrService.Recognize operation.
[DataContractAttribute(Namespace="http://Leadtools.Services.Forms.DataContracts/2009/01", Name="DocumentFileInfo")]
public class DocumentFileInfo
When DocumentConvertOptions.Format is set to OcrDocumentFormatType.Html32 or OcrDocumentFormatType.Html40, an additional directory will be generated. This directory will contain files necessary for the Html page:
For example if the file name is "Test.Html" then a "Test_files" will be created. “Test_files” will contain the images files. The references to these files, by default will be named “Leadtools_Rename_This” in the html file. All of these references need to be renamed to match the generated files.
using Leadtools.Services;
using Leadtools.Services.Forms.ServiceContracts;
using Leadtools.Services.Forms.ServiceImplementations;
//using Leadtools.Services.Forms.DataContractsExamples.localhost;
private void Replace(string docFileName, string source, string destination)
{
// Open a file for reading
StreamReader streamReader;
streamReader = File.OpenText(docFileName);
// read the entire file into a string
string contents = streamReader.ReadToEnd();
streamReader.Close();
StreamWriter streamWriter = File.CreateText(docFileName);
streamWriter.Write(contents.Replace(source, destination));
streamWriter.Close();
}
public void DocumentFilesExample()
{
OcrServiceClient client = new OcrServiceClient();
RawBinaryData sourceBinaryData = new RawBinaryData();
sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "clean.tif"));
// set the document convertion options
DocumentConvertOptions convertOptions = new DocumentConvertOptions();
convertOptions.Source = sourceBinaryData;
convertOptions.Destination = null;
convertOptions.Format = OcrDocumentFormatType.Html;
convertOptions.FirstPageNumber = 1;
convertOptions.LastPageNumber = 1;
DocumentFiles files = null;
RecognizeRequest request = new RecognizeRequest();
request.ConvertOptions = convertOptions;
RecognizeResponse response = client.Recognize(request);
if (response.Destination != null)
{
string outFileName = Path.Combine(LEAD_VARS.ImagesDir, "clean.html");
if (response.Destination is RawBinaryData)
{
File.WriteAllBytes(outFileName, (response.Destination as RawBinaryData).Data);
if (response.Files != null)
{
Replace(outFileName, "Leadtools_Rename_This", Path.GetFileNameWithoutExtension(outFileName));
string directory = Path.GetDirectoryName(outFileName) + "\\" + Path.GetFileNameWithoutExtension(outFileName) + "_Dir";
Directory.CreateDirectory(directory);
foreach (DocumentFileInfo info in files)
{
File.WriteAllBytes(directory + "\\" + info.FileName, info.FileData.Data);
}
}
}
}
client.Close();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}