Ejemplo n.º 1
0
        private void FixUrlsList()
        {
            foreach (var urlToConvert in UrlsToConvert)
            {
                var url      = urlToConvert.Url;
                var findNull = url.IndexOf('\0');
                if (findNull >= 0)
                {
                    url = url.Remove(findNull);
                }

                while (url.IndexOf("http") != 0)
                {
                    url = url.Remove(0, 1);
                }

                int findUntil;
                if ((findUntil = url.IndexOf("\"", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf("*", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf("«", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf("<", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf(">", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf("|", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf("(", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }
                if ((findUntil = url.IndexOf(")", StringComparison.Ordinal)) >= 0)
                {
                    url = url.Remove(findUntil);
                }

                if (!string.Equals(url, urlToConvert.Url))
                {
                    StatusRichTextBox.Text += "Url \"" + urlToConvert.Url + "\" изменен на \"" + url + "\"\n";
                }
            }

            UrlsToConvertDataGridView.Refresh();
        }
Ejemplo n.º 2
0
        private void NotOpenSelectedPdfFilesAfterConvertButton_Click(object sender, EventArgs e)
        {
            foreach (var url in UrlsToConvert)
            {
                url.Open = false;
            }

            UrlsToConvertDataGridView.Refresh();
        }
Ejemplo n.º 3
0
        private void ConvertUrlsListButton_Click(object sender, EventArgs e)
        {
            if (DefaultOutputPathTextBox.Text == "")
            {
                StatusRichTextBox.Text = "Неверно задан каталог для выходного файла!";
                OutputFileTextBox.Focus();
                return;
            }

            StatusRichTextBox.Text = "";

            if (ConvertAllCheckBox.Checked)
            {
                UrlsToConvertDataGridView.SelectAll();
            }

            if (!int.TryParse(ResponseTimeoutTextBox.Text, out var timeout))
            {
                timeout = 15000;
            }

            var count = 0;

            foreach (DataGridViewRow row in UrlsToConvertDataGridView.SelectedRows)
            {
                count++;
                var realDataRow = (UrlToConvert)row.DataBoundItem;

                var r = new Regex(@"(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*");
                var m = r.Match(realDataRow.Url);
                if (!m.Success)
                {
                    StatusRichTextBox.Text += "Неверно задан URL html-страницы: " + realDataRow.Url + "\n";
                    HtmlPageTextBox.Focus();
                    continue;
                }

                var url = FixUrlsList(realDataRow.Url);

                var fileName = realDataRow.Name;
                if (GetTitleFromUrlСheckBox.Checked)
                {
                    StatusRichTextBox.Text += "Идет получение Title по Url...\n";
                    var title = ResponseTagHelper.GetWebPageTitle(url, timeout);
                    if (title != "")
                    {
                        fileName = title;
                    }
                }

                fileName = fileName.Replace('/', '_');
                fileName = fileName.Replace('\\', '_');
                fileName = fileName.Replace(':', '_');
                fileName = fileName.Replace('*', '_');
                fileName = fileName.Replace('?', '_');
                fileName = fileName.Replace('«', '_');
                fileName = fileName.Replace('<', '_');
                fileName = fileName.Replace('>', '_');
                fileName = fileName.Replace('|', '_');

                if (!string.Equals(fileName, realDataRow.Name))
                {
                    StatusRichTextBox.Text += "Выходное имя файла \"" + realDataRow.Name + "\" изменено на \"" + fileName + "\"\n";
                }

                if (NumerateOutputPdfFileNamesCheckBox.Checked)
                {
                    fileName = count + " - " + fileName;
                }

                Convert(url, Path.Combine(DefaultOutputPathTextBox.Text, fileName + ".pdf"),
                        true, realDataRow.Open);
            }
        }