none
Задать размер текста средствами C# RRS feed

  • Вопрос

  • Здравствуйте! Подскажите пожалуйста, как сохранить файл сформированный в DataGridView в блокноте с определенным размером шрифта?

    Вот действующий код:

    сохранения в файл txt.


    private static void ToCsV(DataGridView dGV, string filename)
            {
                IEnumerable<string[]> writeData = GetWriteData(dGV);
                int[] maxLengths = new int[dGV.ColumnCount - 1];
                foreach (string[] row in writeData)
                {
                    for (int i = 0; i < maxLengths.Length; ++i)
                    {
                        if (row[i] != null && row[i].Length > maxLengths[i])
                        {
                            maxLengths[i] = row[i].Length;
                        }
                    }
                }
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < maxLengths.Length; ++i)
                {
                    sb.AppendFormat("{{{0},-{1}}}", i, maxLengths[i]).Append("\t");
                }
                string format = sb.AppendFormat("{{{0}}}", maxLengths.Length).ToString();
                using (StreamWriter sw = new StreamWriter(filename, false, Encoding.GetEncoding(1251)))
                {
                    foreach (string[] row in writeData)
                    {
                        sw.WriteLine(format, row);
                    }
                }
            }
            private static IEnumerable<string[]> GetWriteData(DataGridView dGV)
            {
                yield return dGV.Columns.Cast<DataGridViewColumn>().Select(column => Convert.ToString(column.HeaderText)).ToArray();
                for (int i = 0; i < dGV.RowCount; ++i)
                {
                    yield return dGV.Rows[i].Cells.Cast<DataGridViewCell>().Select(cell => Convert.ToString(cell.Value)).ToArray();
                }
            }
    
    
            private void button6_Click(object sender, EventArgs e)
            {
                SaveFileDialog sdf = new SaveFileDialog();
                sdf.Filter = @"Word Documents(*.txt)|*.txt";
                sdf.FileName = "*.txt";
                if (sdf.ShowDialog() == DialogResult.OK)
                {
                    ToCsV(dataGridView2, sdf.FileName);
                }
            }


    • Изменено georgushek 19 февраля 2015 г. 18:31
    19 февраля 2015 г. 18:26

Ответы

  • Обычно для подобных задач пользуют менеджеры отчетов. Получить отчет, потом его хоть распечатать, хоть в пдф перевести, хоть в html, хоть куда. А менять настройки другого приложения - подозрительный функционал.
    19 февраля 2015 г. 20:27
  • Можно использовать ReportViewer, создайте клиентский отчет и источником сделайте коллекцию или DataTable. Из него можно распечатать или экпортировать в DOC/PDF. Только требуется Visual Studio Professional и вместе с ПО придется распространять кое-какие библиотеки.
    20 февраля 2015 г. 3:09
  • Мы в последнее время для отчетов используем OpenXML, получается на выходе нормальный Word или елси для табличек Excel файл. Ну а дальше, пользователь может с ним делать все что угодно... Никаких доп. библиотек или программ, кроме бесплатных библиотек OpenXML не требуется.
    20 февраля 2015 г. 7:18
    Отвечающий

Все ответы

  • А разве у txt есть размер шрифта?!
    Текст по определению - просто текст.

    В нем нет языка разметки.

    • Изменено Liliya Muray 19 февраля 2015 г. 19:07
    19 февраля 2015 г. 19:05
  • есть! Откройте блокнот формат, шрифт
    19 февраля 2015 г. 19:09
  • Это шрифт отображения в блокноте, а не шрифт в файле.
    19 февраля 2015 г. 19:14
  • Хорошо, как поменять его?
    19 февраля 2015 г. 19:20
  • Хорошо, как поменять его?

    После сохранения в файле он не меняется, значит нужно задать размер в коде, только как?
    19 февраля 2015 г. 19:26
  • Управление другим приложением? А зачем менять, если пользователю всегда отображается, последний его выбор, тот который он выбрал при прочтении прошлого документа, вряд ли он будет рад, если какое то приложение будет менять ему шрифт...
    19 февраля 2015 г. 19:28
  • Хорошо, как поменять его?


    После сохранения в файле он не меняется, значит нужно задать размер в коде, только как?

    Я помню, что как-то это можно, я забыл как-то просто, в одну строчку, напомните пожалуйста
    19 февраля 2015 г. 19:29
  • Вы имеете ввиду это?
    19 февраля 2015 г. 19:41
  • Вы не поняли, я сделал приложение, которое формирует таблицу в DataGridView, теперь я хочу сохранить таблицу с определенным размером в блокноте, как это сделать? По умолчанию формируется таблица с размером 10,5 ; а я хочу 14 

    19 февраля 2015 г. 19:48
  • Никак. Блокнот отображает текст. Шрифт там только для удобства чтения при различных разрешениях экрана и разном физическом восприятии текста с экрана устройства. В текстовом файле нельзя задать размер шрифта! Если нужны шрифты, то надо смотреть в сторону как минимум WordPad... Проще всего с разметкой работать в html... Создайте локально html страницу и открывайте ее в браузере, там легко и просто управлять размерами шрифтов, цветами и прочим.
    19 февраля 2015 г. 19:58
  • Просто, проблема в том, что я хочу распечатать текст, так чтобы он был крупный, как это сделать?
    19 февраля 2015 г. 20:01
  • Просто, проблема в том, что я хочу распечатать текст, так чтобы он был крупный, как это сделать?

    Поместить его в html ?
    19 февраля 2015 г. 20:03
  • Это на мой взгляд самый простой способ, возможно кто-то предложит более красивый способ создать форматированный документ для печати, который сможет формироваться на любом устройстве. Хранится в файле и читаться на любом компьютере, почти однозначно...
    19 февраля 2015 г. 20:16
  • Обычно для подобных задач пользуют менеджеры отчетов. Получить отчет, потом его хоть распечатать, хоть в пдф перевести, хоть в html, хоть куда. А менять настройки другого приложения - подозрительный функционал.
    19 февраля 2015 г. 20:27
  • Обычно для подобных задач пользуют менеджеры отчетов. Получить отчет, потом его хоть распечатать, хоть в пдф перевести, хоть в html, хоть куда. А менять настройки другого приложения - подозрительный функционал.
    Расскажите подробнее или скажите пример программы
    19 февраля 2015 г. 20:36
  • Можно использовать ReportViewer, создайте клиентский отчет и источником сделайте коллекцию или DataTable. Из него можно распечатать или экпортировать в DOC/PDF. Только требуется Visual Studio Professional и вместе с ПО придется распространять кое-какие библиотеки.
    20 февраля 2015 г. 3:09
  • Мы в последнее время для отчетов используем OpenXML, получается на выходе нормальный Word или елси для табличек Excel файл. Ну а дальше, пользователь может с ним делать все что угодно... Никаких доп. библиотек или программ, кроме бесплатных библиотек OpenXML не требуется.
    20 февраля 2015 г. 7:18
    Отвечающий