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(); }
private void NotOpenSelectedPdfFilesAfterConvertButton_Click(object sender, EventArgs e) { foreach (var url in UrlsToConvert) { url.Open = false; } UrlsToConvertDataGridView.Refresh(); }
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); } }