Ejemplo n.º 1
0
        private string GetFileExtension(DocumentFormat format)
        {
            string extension;

            if (format == DocumentFormat.User)
            {
                MyEngineFormat      mef = _userFormatNameComboBox.SelectedItem as MyEngineFormat;
                IOcrDocumentManager ocrDocumentManager = _engine.DocumentManager;
                extension = ocrDocumentManager.GetEngineFormatFileExtension(mef.Format);
            }
            else
            {
                extension = DocumentWriter.GetFormatFileExtension(format);
            }

            return(extension);
        }
Ejemplo n.º 2
0
        public SaveDocumentDialog(IOcrDocument ocrDocument, DocumentFormat initialFormat, string initialFileName, bool isCustomFileName, string outputDir, bool viewDocument)
        {
            InitializeComponent();

            _ocrDocument = ocrDocument;
            _outputDir   = outputDir;


            // Get the formats
            // This is the order of importance, show these first then the rest as they come along
            DocumentFormat[] importantFormats =
            {
                DocumentFormat.Ltd,
                DocumentFormat.Pdf,
                DocumentFormat.Docx,
                DocumentFormat.Rtf,
                DocumentFormat.Text,
                DocumentFormat.Doc,
                DocumentFormat.Xls,
                DocumentFormat.Html
            };

            List <DocumentFormat> formatsToAdd = new List <DocumentFormat>();

            Array temp = Enum.GetValues(typeof(DocumentFormat));
            List <DocumentFormat> allFormats = new List <DocumentFormat>();

            foreach (DocumentFormat format in temp)
            {
                allFormats.Add(format);
            }

            // Add important once first:
            foreach (DocumentFormat format in importantFormats)
            {
                formatsToAdd.Add(format);
                allFormats.Remove(format);
            }

            // Add rest
            formatsToAdd.AddRange(allFormats);

            MyFormat pdfFormat = null;

            DocumentWriter      docWriter          = _ocrDocument.Engine.DocumentWriterInstance;
            IOcrDocumentManager ocrDocumentManager = _ocrDocument.Engine.DocumentManager;

            string[] engineSupportedFormatNames = ocrDocumentManager.GetSupportedEngineFormats();

            foreach (DocumentFormat format in formatsToAdd)
            {
                bool addFormat = true;

                // If this is the "User" or Engines format, only add it if the OCR engine supports them
                if (format == DocumentFormat.User && engineSupportedFormatNames.Length == 0)
                {
                    addFormat = false;
                }

                if (addFormat)
                {
                    string friendlyName;
                    if (format == DocumentFormat.User)
                    {
                        friendlyName = "Engine native";
                    }
                    else
                    {
                        friendlyName = DocumentWriter.GetFormatFriendlyName(format);
                    }

                    MyFormat mf = new MyFormat(format, friendlyName);

                    _formatComboBox.Items.Add(mf);

                    if (mf.Format == initialFormat)
                    {
                        _formatComboBox.SelectedItem = mf;
                    }
                    else if (mf.Format == DocumentFormat.Pdf)
                    {
                        pdfFormat = mf;
                    }
                }

                switch (format)
                {
                case DocumentFormat.User:
                    // Update the User (Engine) options page
                {
                    foreach (string engineFormatName in engineSupportedFormatNames)
                    {
                        MyEngineFormat mef = new MyEngineFormat(
                            engineFormatName,
                            ocrDocumentManager.GetEngineFormatFriendlyName(engineFormatName));
                        _userFormatNameComboBox.Items.Add(mef);

                        if (mef.Format == ocrDocumentManager.EngineFormat)
                        {
                            _userFormatNameComboBox.SelectedItem = mef;
                        }
                    }

                    if (_userFormatNameComboBox.SelectedItem == null && _userFormatNameComboBox.Items.Count > 0)
                    {
                        _userFormatNameComboBox.SelectedIndex = 0;
                    }
                }
                break;

                case DocumentFormat.Pdf:
                    // Update the PDF options page
                {
                    PdfDocumentOptions pdfOptions = docWriter.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;

                    // Clone it in case we change it in the Advance PDF options dialog
                    _pdfOptions = pdfOptions.Clone() as PdfDocumentOptions;

                    Array a = Enum.GetValues(typeof(PdfDocumentType));
                    foreach (PdfDocumentType i in a)
                    {
                        // PDFA does NOT support Arabic characters so we are not adding it in case of Arabic OCR engine.
                        if (i == PdfDocumentType.PdfA && _ocrDocument.Engine.EngineType == OcrEngineType.OmniPageArabic)
                        {
                            continue;
                        }

                        _pdfDocumentTypeComboBox.Items.Add(i);
                    }
                    _pdfDocumentTypeComboBox.SelectedItem = _pdfOptions.DocumentType;

                    _pdfImageOverTextCheckBox.Checked = _pdfOptions.ImageOverText;
                    _pdfLinearizedCheckBox.Checked    = _pdfOptions.Linearized;

                    if (string.IsNullOrEmpty(_pdfOptions.Creator))
                    {
                        _pdfOptions.Creator = "LEADTOOLS PDFWriter";
                    }
                    if (string.IsNullOrEmpty(_pdfOptions.Producer))
                    {
                        _pdfOptions.Producer = "LEAD Technologies, Inc.";
                    }
                }
                break;

                case DocumentFormat.Doc:
                    // Update the DOC options page
                {
                    DocDocumentOptions docOptions = docWriter.GetOptions(DocumentFormat.Doc) as DocDocumentOptions;
                    _cbFramedDoc.Checked = (docOptions.TextMode == DocumentTextMode.Framed) ? true : false;
                }
                break;

                case DocumentFormat.Docx:
                    // Update the DOCX options page
                {
                    DocxDocumentOptions docxOptions = docWriter.GetOptions(DocumentFormat.Docx) as DocxDocumentOptions;
                    _cbFramedDocX.Checked = (docxOptions.TextMode == DocumentTextMode.Framed) ? true : false;
                }
                break;

                case DocumentFormat.Rtf:
                    // Update the RTF options page
                {
                    RtfDocumentOptions rtfOptions = docWriter.GetOptions(DocumentFormat.Rtf) as RtfDocumentOptions;
                    _cbFramedRtf.Checked = (rtfOptions.TextMode == DocumentTextMode.Framed) ? true : false;
                }
                break;

                case DocumentFormat.Html:
                    // Update the HTML options page
                {
                    HtmlDocumentOptions htmlOptions = docWriter.GetOptions(DocumentFormat.Html) as HtmlDocumentOptions;

                    Array a = Enum.GetValues(typeof(DocumentFontEmbedMode));
                    foreach (DocumentFontEmbedMode i in a)
                    {
                        _htmlEmbedFontModeComboBox.Items.Add(i);
                    }
                    _htmlEmbedFontModeComboBox.SelectedItem = htmlOptions.FontEmbedMode;

                    _htmlUseBackgroundColorCheckBox.Checked = htmlOptions.UseBackgroundColor;

                    _htmlBackgroundColorValueLabel.BackColor = MainForm.ConvertColor(htmlOptions.BackgroundColor);

                    _htmlBackgroundColorLabel.Enabled      = _htmlUseBackgroundColorCheckBox.Checked;
                    _htmlBackgroundColorValueLabel.Enabled = _htmlUseBackgroundColorCheckBox.Checked;
                    _htmlBackgroundColorButton.Enabled     = _htmlUseBackgroundColorCheckBox.Checked;
                }
                break;

                case DocumentFormat.Text:
                    // Update the TEXT options page
                {
                    TextDocumentOptions textOptions = docWriter.GetOptions(DocumentFormat.Text) as TextDocumentOptions;

                    Array a = Enum.GetValues(typeof(TextDocumentType));
                    foreach (TextDocumentType i in a)
                    {
                        if (i == TextDocumentType.Ansi)
                        {
                            if (textOptions.DocumentType == TextDocumentType.Ansi)
                            {
                                textOptions.DocumentType = TextDocumentType.Unicode;
                            }
                            if (_ocrDocument.Engine.EngineType == OcrEngineType.OmniPageArabic)
                            {
                                continue;
                            }
                        }
                        _textDocumentTypeComboBox.Items.Add(i);
                    }
                    _textDocumentTypeComboBox.SelectedItem = textOptions.DocumentType;

                    _textAddPageNumberCheckBox.Checked = textOptions.AddPageNumber;
                    _textAddPageBreakCheckBox.Checked  = textOptions.AddPageBreak;
                    _textFormattedCheckBox.Checked     = textOptions.Formatted;
                }
                break;

                case DocumentFormat.AltoXml:
                    // Update the ALTOXML options page
                {
                    AltoXmlDocumentOptions altoXmlOptions = docWriter.GetOptions(DocumentFormat.AltoXml) as AltoXmlDocumentOptions;
                    _altoXmlFileNameTextBox.Text               = altoXmlOptions.FileName;
                    _altoXmlSoftwareCreatorTextBox.Text        = altoXmlOptions.SoftwareCreator;
                    _altoXmlSoftwareNameTextBox.Text           = altoXmlOptions.SoftwareName;
                    _altoXmlApplicationDescriptionTextBox.Text = altoXmlOptions.ApplicationDescription;
                    _altoXmlFormattedCheckBox.Checked          = altoXmlOptions.Formatted;
                    _altoXmlIndentationTextBox.Text            = altoXmlOptions.Indentation;
                    _altoXmlSort.Checked              = altoXmlOptions.Sort;
                    _altoXmlPlainText.Checked         = altoXmlOptions.PlainText;
                    _altoXmlShowGlyphInfo.Checked     = altoXmlOptions.ShowGlyphInfo;
                    _altoXmlShowGlyphVariants.Checked = altoXmlOptions.ShowGlyphVariants;

                    Array a = Enum.GetValues(typeof(AltoXmlMeasurementUnit));
                    foreach (AltoXmlMeasurementUnit i in a)
                    {
                        _altoXmlMeasurementUnit.Items.Add(i);
                    }
                    _altoXmlMeasurementUnit.SelectedItem = altoXmlOptions.MeasurementUnit;
                }
                break;

                case DocumentFormat.Ltd:
                case DocumentFormat.Emf:
                case DocumentFormat.Xls:
                case DocumentFormat.Pub:
                case DocumentFormat.Mob:
                case DocumentFormat.Svg:
                default:
                    // These formats have no options
                    break;
                }
            }

            // Remove all the tab pages
            _optionsTabControl.TabPages.Clear();

            // If no format is selected, default to PDF
            if (_formatComboBox.SelectedIndex == -1)
            {
                if (pdfFormat != null)
                {
                    _formatComboBox.SelectedItem = pdfFormat;
                }
                else
                {
                    _formatComboBox.SelectedIndex = -1;
                }
            }

            _viewDocumentCheckBox.Checked = viewDocument;
            _initialFileName  = initialFileName;
            _isCustomFileName = isCustomFileName;

            if (!string.IsNullOrEmpty(_outputDir))
            {
                MyFormat mf = _formatComboBox.SelectedItem as MyFormat;

                char[] trimChars = { '\\' };
                _fileNameTextBox.Text = _outputDir.TrimEnd(trimChars) + "\\" + Path.GetFileName(initialFileName);
                if (!_isCustomFileName)
                {
                    _fileNameTextBox.Text += "." + GetFileExtension(mf.Format);
                }
            }
            else
            {
                _fileNameTextBox.Text = initialFileName;
            }

            _formatComboBox_SelectedIndexChanged(this, EventArgs.Empty);
            UpdateUIState();
        }
Ejemplo n.º 3
0
        private void _okButton_Click(object sender, EventArgs e)
        {
            DocumentWriter      docWriter          = _ocrDocument.Engine.DocumentWriterInstance;
            IOcrDocumentManager ocrDocumentManager = _ocrDocument.Engine.DocumentManager;

            // Save the options
            MyFormat mf = _formatComboBox.SelectedItem as MyFormat;

            DocumentOptions documentOptions;

            if (mf.Format != DocumentFormat.User)
            {
                documentOptions = docWriter.GetOptions(mf.Format);
            }
            else
            {
                documentOptions = null;
            }

            switch (mf.Format)
            {
            case DocumentFormat.User:
                // Update the User (Engine) options
            {
                MyEngineFormat mef = _userFormatNameComboBox.SelectedItem as MyEngineFormat;
                ocrDocumentManager.EngineFormat = mef.Format;
            }
            break;

            case DocumentFormat.Pdf:
                // Update the PDF options
            {
                PdfDocumentOptions pdfOptions = documentOptions as PdfDocumentOptions;

                pdfOptions.DocumentType    = (PdfDocumentType)_pdfDocumentTypeComboBox.SelectedItem;
                pdfOptions.ImageOverText   = _pdfImageOverTextCheckBox.Checked;
                pdfOptions.Linearized      = _pdfLinearizedCheckBox.Checked;
                pdfOptions.PageRestriction = DocumentPageRestriction.Relaxed;

                // Description options
                pdfOptions.Title    = _pdfOptions.Title;
                pdfOptions.Subject  = _pdfOptions.Subject;
                pdfOptions.Keywords = _pdfOptions.Keywords;
                pdfOptions.Author   = _pdfOptions.Author;
                pdfOptions.Creator  = _pdfOptions.Creator;
                pdfOptions.Producer = _pdfOptions.Producer;

                // Fonts options
                pdfOptions.FontEmbedMode = _pdfOptions.FontEmbedMode;

                // Security options
                pdfOptions.Protected = _pdfOptions.Protected;
                if (pdfOptions.Protected)
                {
                    pdfOptions.UserPassword            = _pdfOptions.UserPassword;
                    pdfOptions.OwnerPassword           = _pdfOptions.OwnerPassword;
                    pdfOptions.EncryptionMode          = _pdfOptions.EncryptionMode;
                    pdfOptions.PrintEnabled            = _pdfOptions.PrintEnabled;
                    pdfOptions.HighQualityPrintEnabled = _pdfOptions.HighQualityPrintEnabled;
                    pdfOptions.CopyEnabled             = _pdfOptions.CopyEnabled;
                    pdfOptions.EditEnabled             = _pdfOptions.EditEnabled;
                    pdfOptions.AnnotationsEnabled      = _pdfOptions.AnnotationsEnabled;
                    pdfOptions.AssemblyEnabled         = _pdfOptions.AssemblyEnabled;
                }

                // Compression options
                pdfOptions.OneBitImageCompression  = _pdfOptions.OneBitImageCompression;
                pdfOptions.ColoredImageCompression = _pdfOptions.ColoredImageCompression;
                pdfOptions.QualityFactor           = _pdfOptions.QualityFactor;
                pdfOptions.ImageOverTextSize       = _pdfOptions.ImageOverTextSize;
                pdfOptions.ImageOverTextMode       = _pdfOptions.ImageOverTextMode;

                // Initial View Options
                pdfOptions.PageModeType      = _pdfOptions.PageModeType;
                pdfOptions.PageLayoutType    = _pdfOptions.PageLayoutType;
                pdfOptions.PageFitType       = _pdfOptions.PageFitType;
                pdfOptions.ZoomPercent       = _pdfOptions.ZoomPercent;
                pdfOptions.InitialPageNumber = _pdfOptions.InitialPageNumber;
                pdfOptions.FitWindow         = _pdfOptions.FitWindow;
                pdfOptions.CenterWindow      = _pdfOptions.CenterWindow;
                pdfOptions.DisplayDocTitle   = _pdfOptions.DisplayDocTitle;
                pdfOptions.HideMenubar       = _pdfOptions.HideMenubar;
                pdfOptions.HideToolbar       = _pdfOptions.HideToolbar;
                pdfOptions.HideWindowUI      = _pdfOptions.HideWindowUI;
            }
            break;

            case DocumentFormat.Doc:
                // Update the DOC options
            {
                DocDocumentOptions docOptions = documentOptions as DocDocumentOptions;
                docOptions.TextMode = (_cbFramedDoc.Checked) ? DocumentTextMode.Framed : DocumentTextMode.NonFramed;
            }
            break;

            case DocumentFormat.Docx:
                // Update the DOC options
            {
                DocxDocumentOptions docxOptions = documentOptions as DocxDocumentOptions;
                docxOptions.TextMode = (_cbFramedDocX.Checked) ? DocumentTextMode.Framed : DocumentTextMode.NonFramed;
            }
            break;

            case DocumentFormat.Rtf:
                // Update the RTF options
            {
                RtfDocumentOptions rtfOptions = documentOptions as RtfDocumentOptions;
                rtfOptions.TextMode = (_cbFramedRtf.Checked) ? DocumentTextMode.Framed : DocumentTextMode.NonFramed;
            }
            break;

            case DocumentFormat.Html:
                // Update the HTML options
            {
                HtmlDocumentOptions htmlOptions = documentOptions as HtmlDocumentOptions;
                htmlOptions.FontEmbedMode      = (DocumentFontEmbedMode)_htmlEmbedFontModeComboBox.SelectedItem;
                htmlOptions.UseBackgroundColor = _htmlUseBackgroundColorCheckBox.Checked;
                htmlOptions.BackgroundColor    = MainForm.ConvertColor(_htmlBackgroundColorValueLabel.BackColor);
            }
            break;

            case DocumentFormat.Text:
                // Update the TEXT options
            {
                TextDocumentOptions textOptions = documentOptions as TextDocumentOptions;
                textOptions.DocumentType  = (TextDocumentType)_textDocumentTypeComboBox.SelectedItem;
                textOptions.AddPageNumber = _textAddPageNumberCheckBox.Checked;
                textOptions.AddPageBreak  = _textAddPageBreakCheckBox.Checked;
                textOptions.Formatted     = _textFormattedCheckBox.Checked;
            }
            break;

            case DocumentFormat.AltoXml:
                // Update the ALTOXML options
            {
                AltoXmlDocumentOptions altoXmlOptions = documentOptions as AltoXmlDocumentOptions;
                altoXmlOptions.FileName               = _altoXmlFileNameTextBox.Text;
                altoXmlOptions.SoftwareCreator        = _altoXmlSoftwareCreatorTextBox.Text;
                altoXmlOptions.SoftwareName           = _altoXmlSoftwareNameTextBox.Text;
                altoXmlOptions.ApplicationDescription = _altoXmlApplicationDescriptionTextBox.Text;
                altoXmlOptions.Formatted              = _altoXmlFormattedCheckBox.Checked;
                altoXmlOptions.Indentation            = (altoXmlOptions.Formatted) ? _altoXmlIndentationTextBox.Text : "";
                altoXmlOptions.Sort              = _altoXmlSort.Checked;
                altoXmlOptions.PlainText         = _altoXmlPlainText.Checked;
                altoXmlOptions.ShowGlyphInfo     = _altoXmlShowGlyphInfo.Checked;
                altoXmlOptions.ShowGlyphVariants = _altoXmlShowGlyphVariants.Checked;
                altoXmlOptions.MeasurementUnit   = (AltoXmlMeasurementUnit)_altoXmlMeasurementUnit.SelectedItem;
            }
            break;

            case DocumentFormat.Ltd:
            case DocumentFormat.Emf:
            case DocumentFormat.Xls:
            case DocumentFormat.Pub:
            case DocumentFormat.Mob:
            case DocumentFormat.Svg:
            default:
                // These formats have no options
                break;
            }

            if (documentOptions != null)
            {
                docWriter.SetOptions(mf.Format, documentOptions);
            }

            // Get the save paramters
            _selectedFileName     = _fileNameTextBox.Text;
            _selectedFormat       = mf.Format;
            _selectedViewDocument = _viewDocumentCheckBox.Checked;

            if (_isCustomFileName)
            {
                _outputDir = Path.GetDirectoryName(SelectedFileName);
            }
        }