Как распечатать из visual studio
Создание документа для печати. Элементы управления PrintDocument , PageSetupDialog , PrintDialog , PrintPreviewDialog
Содержание
- Теоретические сведения
- Условие задачи
- Выполнение
- 1. Создать проект
- 2. Разработка формы. Размещение элементов управления на форме
- 3. Настройка базовых визуальных элементов управления на форме
- 4. Настройка элементов управления PageSetupDialog , PrintDialog , PrintPreviewDialog , PrintDocument
- 5. Ввод дополнительных переменных в класс формы
- 6. Программирование обработчиков событий
- 6.1. Основные события, обеспечивающие печать документа
- 6.2. Программирование обработчика события BeginPrint компонента printDocument1
- 6.3. Программирование обработчика события PrintPage компонента printDocument1
- 6.4. Программирование обработчика события клика на кнопке «Page Setup»
- 6.5. Программирование обработчика события клика на кнопке «Print»
- 6.6. Программирование обработчика события клика на кнопке «PrintPreview»
Поиск на других ресурсах:
Теоретические сведения
- PrintDocument – представляет класс, объект которого посылает данные на принтер;
- PageSetupDialog – представляет диалоговое окно, которое позволяет пользователю изменять настройки страницы для печати (внутренние поля, ориентация печати, и т.п.);
- PrintDialog – представляет диалоговое окно, которое позволяет пользователю выбирать принтер и прочие настройки принтера, такие как количество копий, ориентация страницы и т.п.;
- PrintPreviewDialog – представляет диалоговое окно, которое показывает пользователю предыдущий просмотр документа в том виде как он будет отображен при печати.
Условие задачи
Разработать приложение типа Windows Forms, который распечатывает информацию содержащуюся в элементе управления RichTextBox . Приложение должно содержать команды:
- печать документа;
- предварительный просмотр документа;
- настройка страниц в документе.
В программе использовать элементы управления PrintDocument , PageSetupDialog , PrintDialog , PrintPreviewDialog .
Выполнение
1. Создать проект
После создания проекта создается пустая форма. Класс формы называется Form1 .
2. Разработка формы. Размещение элементов управления на форме
Разработать главную форму программы как изображено на рисунке 1.
Рисунок 1. Главная форма программы
На форме нужно разместить следующие элементы управления:
- элемент управления типа Label . Создается экземпляр с именем label1 ;
- три элемента управления типа Button . Будут созданы экземпляры с именами button1 , button2 , button3 ;
- элемент управления типа RichTextBox . Создается экземпляр с именем richTextBox1 ;
- элемент управления типа PrintDocument . Создается экземпляр с именем printDocument1 . Этот элемент управления представляет документ, который будет распечатан;
- элемент управления типа PageSetupDialog . Создается экземпляр с именем pageSetupDialog1 ;
- элемент управления типа PrintDialog . Создается экземпляр с именем printDialog1 ;
- элемент управления типа PrintPreviewDialog . Создается экземпляр с именем printPreviewDialog1 .
Размещение элементов управления PageSetupDialog , PrintDialog , PrintDocument , PrintPreviewDialog изображено на рисунке 2.
Рисунок 2. Элементы управления PageSetupDialog , PrintDialog , PrintDocument , PrintPreviewDialog
3. Настройка базовых визуальных элементов управления на форме
На этом этапе нужно настроить свойства элементов управления формы следующим образом:
– в элементе управления Form1 свойство Text = «Print document» ;
– в label1 свойство Text = «Specified text:» ( label1.Text = «Specified text:» );
– button1.Text = «Page Setup» ;
– button2.Text = «Print» ;
– button3.Text = «Print Preview» .После настройки форма будет иметь вид, как изображено на рисунке 1.
4. Настройка элементов управления PageSetupDialog , PrintDialog , PrintPreviewDialog , PrintDocument
Следующим шагом нужно связать элементы управления pageSetupDialog1 , printDialog1 , printPreviewDialog1 с документом printDocument1 . Для этого используется свойство Document . Настройки выглядят следующим образом:
– pageSetupDialog1.Document = printDocument1 (рисунок 3);
– printDialog1.Document = printDocument1 ;
– printPreviewDialog1.Document = printDocument1 ;
– printDialog1.AllowSomePages = True . Это свойство разрешает или запрещает кнопку настройки страницы в окне печати.Рисунок 3. Элемент управления pageSetupDialog1 . Свойство Document = printDocument1
5. Ввод дополнительных переменных в класс формы
Согласно условию задачи, нужно распечатать текст, который набран в элементе управления richTextBox1 . При печати нужно сохранять номер строки в richTextBox1 , которая на данный момент печатается. Для обеспечения этого в класс формы Form1 вводится дополнительная переменная counter .
Также вводится переменная curPage , определяющая страницу, которая печатается на данный момент.Фрагмент текста класса формы Form1 следующий
6. Программирование обработчиков событий
6.1. Основные события, обеспечивающие печать документа
Если вызывается команда печати на принтер или предварительного просмотра документа, то в работу вступают обработчики событий класса PrintDocument . С помощью событий класса PrintDocument можно руководить печатью документа.
Перечень возможных событий класса PrintDocument следующий:- BeginPrint – это событие возникает перед самым началом печати документа. В обработчик этого события целесообразно вписывать код инициализации внутренних переменных, которые руководят печатью документа;
- PrintPage – возникает один раз при печати каждой страницы. Например, если печатается 5 страниц, то это событие возникнет 5 раз;
- EndPrint – возникает, после печати документа;
- QueryPageSetting – возникает прежде чем каждая страница должна быть напечатана. Перехват этого события полезен в случаях, когда нужно изменить настройки конкретной печатаемой страницы.
6.2. Программирование обработчика события BeginPrint компонента printDocument1
Первым программируется событие BeginPrint элемента управления printDocument1 . Чтобы получить обработчик этого события, нужно выбрать элемент управления printDocument1 и в перечне событий выбрать событие BeginPrint (двойной клик мышкой).
В нашем случае, в обработчике события BeginPrint нужно реализовать инициализацию переменных counter и curPage6.3. Программирование обработчика события PrintPage компонента printDocument1
Основной программный код, выполняющий вывод на принтер, реализован в обработчике события PrintPage . Текст обработчика следующий:
В цикле while фигурирует два счетчика: счетчик страницы i и счетчик сквозной строки вывода counter (см. п. 5). Как только один из счетчиков принимает свое максимальное значение, происходит выход из цикла.
Также, в цикле в переменной yPos формируется координата y вывода текста по формуле. Вывод строки с текстом осуществляется с помощью метода
- e – экземпляр типа PrintPageEventArgs , обеспечивающий необходимые данные для события PrintPage . С помощью этих данных можно управлять печатью документа;
- e.Graphics – класс, который предназначен для рисования на странице. Кроме текста можно выводить любые графические примитивы;
- e.Graphics.DrawString() – метод, который выводит определенную строку ( curLine ) в определенной позиции ( leftMargin , yPos ). Строка выводится шрифтом myFont и цветом Brushes.Blue .
В методе e.Graphics.DrawString() задается необязательный формат вывода типа StringFormat с помощью вызова
После цикла while происходит определение того, нужно ли генерировать следующую страницу
Значение e.HasMorePages отвечает за генерирование следующей страницы. Если e.HasMorePages=true то следующая страница генерируется. В противном случае следующая страница не генерируется, а это значит, что текущая страница есть последней. В программе происходит сравнение значения curPage (текущая страница) с общим количеством страниц nPages . Если значения curPage и nPages равны, то e.HasMorePages становится равным false и печать (просмотр) страниц прекращается.
Вышеприведенный алгоритм обработчика не учитывает вывод текста за границы страницы по ширине. Алгоритм реализован в демонстрационных целях. По желанию можно доделать это свойство.
6.4. Программирование обработчика события клика на кнопке «Page Setup»
Если пользователь сделал клик на кнопке «Page Setup» , то должно открыться окно настройки параметров страницы.
6.5. Программирование обработчика события клика на кнопке «Print»
Непосредственно печать документа осуществляется с помощью метода Print() , который вызывается из экземпляра printDocument1 . Предварительно выводится диалоговое окно печати.
6.6. Программирование обработчика события клика на кнопке «PrintPreview»
7. Запуск программы на выполнение
После выполненных действий можно запускать программу на выполнение. Для того, чтобы распечатать документ из richTextBox1 нужно чтобы в системе был установлен принтер.
Данная программа есть демонстрационной. По желанию, процесс формирования документа для печати может быть дополнен собственными шрифтами, цветами и т.д.Сочетания клавиш позволяют получать доступ к различным командам и окнам Visual Studio. В этом разделе перечислены сочетания клавиш по умолчанию для команд в профиле обычных параметров, который мог быть выбран при установке Visual Studio. Независимо от выбранного профиля сочетание клавиш для той или иной команды можно определить, открыв диалоговое окно Параметры, развернув узел Среда и выбрав элемент Клавиатура. Кроме того, сочетания клавиш можно настраивать, назначая командам другие сочетания клавиш.
Список распространенных сочетаний клавиш и другие сведения о средствах повышения производительности см. в следующих статьях:
Памятка по быстрым клавишам для печати
Популярные сочетания клавиш в Visual Studio
Все сочетания клавиш в этом разделе применяются глобально, если не указано иное. Глобальный контекст означает, что сочетание применяется в любом окне инструментов в Visual Studio.
Сочетание клавиш для той или иной команды можно определить, открыв диалоговое окно Параметры, развернув узел Среда и выбрав элемент Клавиатура.
Сборка: популярные сочетания клавиш
Отладка: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Прерывание на функции CTRL+B Debug.BreakatFunction Приостановить все CTRL+ALT+BREAK Debug.BreakAll Удаление всех точек останова CTRL+SHIFT+F9 Debug.DeleteAllBreakpoints Исключения CTRL+ALT+E Debug.Exceptions Быстрая проверка CTRL+ALT+Q Редактирование: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Разрыв строки ВВОД [текстовый редактор, конструктор отчетов, конструктор Windows Forms] или CTRL+ПРОБЕЛ [текстовый редактор, конструктор рабочих процессов]
или CTRL+K, W [конструктор рабочих процессов]
или SHIFT+DELETE [схема последовательностей, схема действий UML, схема слоев]
или CTRL+K, CTRL+L [конструктор рабочих процессов]
или CTRL+K, CTRL+P [конструктор рабочих процессов]
или SHIFT + ALT + BACKSPACE
Файл: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Выход ALT+F4 File.Exit Создание файла CTRL+N File.NewFile Новый проект CTRL+SHIFT+N File.NewProject Новый веб-сайт SHIFT+ALT+N File.NewWebSite Открывает файл CTRL+O File.OpenFile Открытие проекта CTRL+SHIFT+O File.OpenProject Открыть веб-сайт Shift+Alt+O File.OpenWebSite Переименовать F2 [Team Explorer] File.Rename Сохранить все CTRL+SHIFT+S File.SaveAll Сохранить выбранные элементы CTRL+S File.SaveSelectedItems Просмотр в браузере CTRL+SHIFT+W File.ViewinBrowser Проект: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Добавить существующий элемент SHIFT+ALT+A Project.AddExistingItem Добавление нового элемента CTRL+SHIFT+A Project.AddNewItem Рефакторинг: популярные сочетания клавиш
Команда Сочетание клавиш [специальные контексты] Идентификатор команды Извлечение метода CTRL+R, CTRL+M Refactor.ExtractMethod Средства: популярные сочетания клавиш
Команда Сочетание клавиш [специальные контексты] Идентификатор команды Присоединение к процессу CTRL+ALT+P Tools.AttachtoProcess Представление: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Окно классов CTRL+SHIFT+C View.ClassView Изменить метку F2 View.EditLabel Список ошибок CTRL+\, CTRL+E Окно: популярные сочетания клавиш
Команды Сочетания клавиш [специальные контексты] Идентификатор команды Активировать окно документа ESC Window.ActivateDocumentWindow Закрыть окно документа CTRL+F4 Window.CloseDocumentWindow Следующее окно документа CTRL+F6 Window.NextDocumentWindow Следующая панель навигации окна документа CTRL+TAB Window.NextDocumentWindowNav Следующая область разделения F6 Window.NextSplitPane Глобальные сочетания клавиш
Следующие сочетания клавиш являются глобальными. Это означает, что их можно использовать в любом окне Visual Studio, которое находится в фокусе.
Анализ: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Перейти назад SHIFT+ALT+3 Analyze.NavigateBackward Перейти вперед SHIFT+ALT+4 Analyze.NavigateForward Архитектура: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Создать схему CTRL+\, CTRL+N Architecture.NewDiagram Команды Сочетания клавиш Идентификатор команды Повторить операцию скрипта мобильной службы CTRL+NUM *, CTRL+R WindowsAzure.RetryMobileServiceScriptOperation Показать сведения об ошибке скрипта мобильной службы CTRL+NUM *, CTRL+D WindowsAzure.ShowMobileServiceScriptErrorDetails Сборка: глобальные сочетания клавиш
Контекстные меню представления классов: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Свойства ALT+ВВОД ClassViewContextMenus.ClassViewMultiselectProjectreferencesItems.Properties Отладка: глобальные сочетания клавиш
Контекстные меню отладчика: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Удалить ALT+F9, D DebuggerContextMenus.BreakpointsWindow.Delete Перейти к дизассемблированию ALT+F9, A DebuggerContextMenus.BreakpointsWindow.GoToDisassembly Перейти к исходному коду ALT+F9, S DebuggerContextMenus.BreakpointsWindow.GoToSourceCode Центр диагностики: глобальные сочетания клавиш
Команда Сочетание клавиш Идентификатор команды Остановка сбора CTRL+ALT+F2 DiagnosticsHub.StopCollection Редактирование: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Копировать CTRL+C CTRL+SHIFT+Z
Контекстные меню редактора: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Условия точки останова ALT+F9, C EditorContextMenus.CodeWindow.Breakpoint.BreakpointConditions Метки изменения точки останова ALT+F9, L EditorContextMenus.CodeWindow.Breakpoint.BreakpointEditlabels Вставка временной точки останова SHIFT+ALT+F9, T EditorContextMenus.CodeWindow.Breakpoint.InsertTemporaryBreakpoint Показать элемент CTRL+` EditorContextMenus.CodeWindow.CodeMap.ShowItem Execute CTRL+ALT+F5 EditorContextMenus.CodeWindow.Execute Перейти к представлению CTRL+M, CTRL+G EditorContextMenus.CodeWindow.GoToView Переключить файл заголовков кода CTRL+K, CTRL+O (латинская буква O) EditorContextMenus.CodeWindow.ToggleHeaderCodeFile Просмотр иерархии вызовов CTRL+K, CTRL+T Файл: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Выход ALT+F4 File.Exit Создание файла CTRL+N File.NewFile Новый проект CTRL+SHIFT+N File.NewProject Новый веб-сайт SHIFT+ALT+N File.NewWebSite Открывает файл CTRL+O (латинская буква O) File.OpenFile Открытие проекта CTRL+SHIFT+O (латинская буква O) File.OpenProject Открыть веб-сайт SHIFT+ALT+O (латинская буква O) File.OpenWebSite Печать CTRL+P File.Print Сохранить все CTRL+SHIFT+S File.SaveAll Сохранить выбранные элементы CTRL+S File.SaveSelectedItems Просмотр в браузере CTRL+SHIFT+W File.ViewinBrowser Справка: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Добавить и удалить содержимое справки CTRL+ALT+F1 Help.AddandRemoveHelpContent Справка F1 F1 Help.F1Help Посмотреть справку CTRL+F1 Help.ViewHelp Справка окна SHIFT+F1 Help.WindowHelp Нагрузочный тест: глобальные сочетания клавиш
Команда Сочетание клавиш Идентификатор команды Перейти в область счетчиков CTRL+R, Q LoadTest.JumpToCounterPane Другие контекстные меню: глобальные сочетания клавиш
Команда Сочетание клавиш Идентификатор команды Добавить новую диаграмму Вставить OtherContextMenus.MicrosoftDataEntityDesignContext.AddNewDiagram Проект: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Добавить существующий элемент SHIFT+ALT+A Project.AddExistingItem Добавление нового элемента CTRL+SHIFT+A Project.AddNewItem Мастер классов CTRL+SHIFT+X Project.ClassWizard Переопределение CTRL+ALT+INS Project.Override Предварительный просмотр изменений ALT+; затем ALT+C Project.Previewchanges Опубликовать выбранные файлы ALT+; затем ALT+P Project.Publishselectedfiles Заменить выбранные файлы с сервера ALT+; затем ALT+R Project.Replaceselectedfilesfromserver Контекстные меню проекта и решения: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Переместить вниз ALT+СТРЕЛКА ВНИЗ ProjectandSolutionContextMenus.Item.MoveDown Переместить вверх ALT+СТРЕЛКА ВВЕРХ ProjectandSolutionContextMenus.Item.MoveUp Рефакторинг: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Инкапсуляция поля CTRL+R, CTRL+E Refactor.EncapsulateField Извлечение интерфейса CTRL+R, CTRL+I Refactor.ExtractInterface Извлечение метода CTRL+R, CTRL+M Refactor.ExtractMethod Удалить параметры CTRL+R, CTRL+V Refactor.RemoveParameters Переименовать CTRL+R, CTRL+R Refactor.Rename Упорядочить параметры CTRL+R, CTRL+O (латинская буква O) Refactor.ReorderParameters Обозреватель решений: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Открыть фильтр файлов CTRL+[ , O (латинская буква O) Команда: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Перейти к веткам Git CTRL+0 (ноль), CTRL+N Контекстные меню Team Foundation: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Перейти к сборкам CTRL+0 (ноль), CTRL+B Тестирование: глобальные сочетания клавиш
Обозреватель тестов: глобальные сочетания клавиш
Средства: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Присоединение к процессу CTRL+ALT+P Tools.AttachtoProcess Диспетчер фрагментов кода CTRL+K, CTRL+B Tools.CodeSnippetsManager Принудительная сборка мусора CTRL+SHIFT+ALT+F12, CTRL+SHIFT+ALT+F12 Tools.ForceGC Представление: глобальные сочетания клавиш
Окно: глобальные сочетания клавиш
Команды Сочетания клавиш Идентификатор команды Активировать окно документа ESC Window.ActivateDocumentWindow Добавить вкладку в выделенный фрагмент CTRL+SHIFT+ALT+ПРОБЕЛ Window.AddTabtoSelection Закрыть окно документа CTRL+F4 Window.CloseDocumentWindow Закрыть окно инструментов SHIFT+ESC Window.CloseToolWindow Не закрывать вкладку CTRL+ALT+HOME Window.KeepTabOpen Перейти к панели навигации CTRL+F2 Window.MovetoNavigationBar Следующее окно документа CTRL+F6 Window.NextDocumentWindow Следующая панель навигации окна документа CTRL+TAB Window.NextDocumentWindowNav Следующая область ALT+F6 Window.NextPane Следующая область разделения F6 Window.NextSplitPane Следующая вкладка CTRL+ALT+PGDN Сочетания клавиш, зависящие от контекста
Эти сочетания клавиш зависят от контекста. Это означает, что вы можете использовать их с меню и элементами в Visual Studio, которые относятся к типу проекта, языку программирования или платформе.
4 ответа
Он пока недоступен, но я нашел отчет о проблеме для этой функции.
В настоящее время он находится в очереди, поэтому мы можем ожидать его в ближайшее время.
Изменить: тем временем:
Ответ бедняги: скопируйте код в Notepad2 или Notepad ++ и распечатайте оттуда. Цветовая кодировка будет отличаться
Теперь доступно расширение для печати из редактора кода VS. Это называется Бесплатная печать кода VS . Пару дней пробовал, работает нормально.
Я нашел расширение PrintCode вдохновляющим, но незаконченным и с рядом недостатков. В частности, это зависит от конкретного размера бумаги, которую нужно обернуть, и, как следствие, плохо реагирует на изменение размера или ориентации бумаги в диалоговом окне печати.
Это открытый исходный код, поэтому я посмотрел на код, и он мне тоже не понравился. Ни одному программисту никогда не нравится чужой стиль программирования. Поэтому я ухватился за идею использовать веб-браузер в качестве драйвера платформы для печати HTML - снимаю шляпу перед автором PrintCode за эту хитрую догадку - и написал свою собственную.
В процессе я исправил все известные ошибки, добавил все из своего списка желаний и пару вещей, предложенных другими. Самым важным было определение CSS, необходимого для соблюдения размера и ориентации бумаги диалогового окна печати. Это также решает загадочную проблему с исчезающими номерами строк, хотя я не уверен, почему. Следующим важным шагом было научиться обнаруживать неиспользуемый порт, проблема, которая также затрагивает PrintCode, заставляя браузер открываться без отображения содержимого.
Главные проблемы
- Многие люди хотят иметь возможность открывать файл, выбирать часть и печатать только выбранные.
- Диалог печати поддерживает изменение размера и ориентации бумаги. Это противоречит принципу работы PrintCode.
- Некоторым нравится запускать несколько окон VS Code.
- Когда вы печатаете файл уценки, вы, вероятно, не хотите, чтобы он печатался как текстовый файл, когда он может быть отображен со шрифтами и правильными заголовками, маркерами и т. Д.
Поскольку каждому экземпляру VS Code требуется отдельный порт для встроенного веб-сервера, вы не можете просто использовать параметр. Необходимо динамическое распределение портов.
Если вы хотите изучить свои варианты, перейдите на https://marketplace.visualstudio.com, выберите Visual Studio Вкладка "Код" и поиск printing .
Если вам нравится то, что вы видите, но нужно что-то, о чем я не думал, на странице торговой площадки есть ссылка на репозиторий на github. Создайте вопрос и скажите мне, что вам нужно - или напишите его сами и отправьте PR.
I want to send the file I'm currently editing to a printer, like I did in Notepad++ for example. I havn't found any hint on a print command. Is it not possible ?
7 Answers 7
It is not yet available, but I found an issue report for that feature.
It's currently in the backlog, so we can expect it soon.
Edit: In the meantime:
Now you can install addon for VS Code - search "PrintCode".
Note that the repository for this extension was last updated in February 2018 with numerous issues outstanding.
stock install and it using chrome my default browser produces a corrupt pdf from a php file that has php, htm and js. (only missing style/css tag)
@Angry84 the problem you describe has nothing to do with the extension. By the time you save a PDF, rendering as HTML is complete and control has passed to your web browser.
I found the PrintCode extension inspiring but unfinished and with a number of flaws. In particular it depends on a specific paper size to wrap and as a result does not respond well if you change paper size or orientation in the print dialog.
It's open source so I looked at the code and didn't like that either. No programmer ever likes another's coding style. So I pinched the idea of using a web-browser as platform driver for HTML printing -- my hat is off to the PrintCode author for that cunning insight -- and wrote my own.
In the process I fixed all the known bugs, added everything on my wishlist and a couple of things suggested by others. The biggest thing was figuring out the CSS required to respect print dialog paper size and orientation. This also sorts out the mysterious disappearing line numbers problem, although I'm not sure why. The next biggest thing was learning to probe for an unused port, a problem that also afflicts PrintCode causing the browser to open showing no content.
Major issues
- PrintCode depends on a web service. You can't use it offline.
- Many people want to be able to open a file, select a portion and print just the selection.
- The print dialog supports changing paper size and orientation. This clashes with the way PrintCode works.
- Some people like to run multiple VS Code windows.
- When you print a markdown file, you probably don't want it printed like a text file when it can be rendered with fonts and proper headings and bullets etc.
- Support is required for remote workspaces.
Because each instance of VS Code needs a different port for its embedded webserver, you can't just use a setting. Dynamic port allocation is necessary.
Remote workspaces weren't even a thing until two years after maintenance ceased on PrintCode.
If you like what you see but need something I haven't thought of, the marketplace page has a link to the repo on github. Create an issue and tell me what you need -- or write it yourself and submit a PR.
Do you mean print to screen or print to a printer ?
Apparently microsoft took a page from Sublime Text and decided that actually printing something out is a low priority, outdated use for a TEXT EDITOR.
In short, doesn't look like you can print to a printer at all with it. But, as some "brilliant" person said on a similar topic for Sublime, just copy it into an editor that can print and print from that!
Simple answer: Visual Studio Code does not print :(
If you use google drive, you can right click on the file in explorer and select Google Drive->View on the web and then print it.
Agreed, this is completely insane
Were the M$ devs smoking something or perhaps just had a common sense bypass?
Saved me the time searching anyway!
I need to do this as well. Copy paste won't work as I want to keep the same format, font, colours etc.
Agreed, this is completely insane
Were the M$ devs smoking something or perhaps just had a common sense bypass?
I'm sure the money-hungry M$ corporation would happily refund the money you spent on this free product.
So are you suggesting that since the program is free we should all just hold hands and drink the kool-aid when it lacks features that even the most basic text editor on the planet should include?
I like VS Code. A lot. But the lack of a printing functionality is just bone headed and dumb. Since they seem to be following in the footsteps of Sublime and Atom on this I am going to assume that some hipster "modern" web developer made the assumption that since most people use electronic devices no one would ever actually want a hard copy. I expect this from the Sublime and Atom crowd. I also expect the guys at Microsoft to be a little more old school and exercise some common sense.
For those reading this that are fortunate enough to use VS Code on Linux, most Linux distros include the 'lpr' utility by default, which prints to the default system printer. Typical usage is ```lpr ``` or ```lpr filename -o page-ranges=2-6>```
This should work fine from the embedded terminal in VS Code. Might even work on one of those cutesy coffee shop laptops. Not sure if the Jobsians stripped lpr out of OSX.
Читайте также: