it-roy-ru.com

Как вы отображаете фрагменты кода в MS Word, сохраняя формат и подсветку синтаксиса?

Кто-нибудь знает способ отображения кода в документах Microsoft Word, который сохраняет окраску и форматирование? Предпочтительно, способ также будет ненавязчивым и простым в обновлении.

Я попытался включить код как обычный текст, который выглядит ужасно и мешает при редактировании обычного текста. Я также попытался вставить объекты, документ WordPad и текстовое поле в документ, а затем поместить код в эти объекты. Код выглядит намного лучше и его легче избежать при редактировании остальной части текста. Однако эти объекты могут занимать только одну страницу, что делает редактирование кошмаром, когда необходимо добавить несколько страниц кода.

Наконец, я знаю, что есть гораздо лучшие редакторы/форматы, у которых нет проблем с этим, но я застрял в работе с MS Word.

1724
Lawrence Barsanti

Вот лучший способ добавить код в Word:

  1. перейдите на вкладку «Вставить», нажмите кнопку «Объект» (справа) 
  2. выберите «OpenDocument Text», чтобы открыть новый внедренный документ Word
  3. скопируйте и вставьте свой код из Visual Studio/Eclipse на этой встроенной странице Word
  4. сохрани и закрой

Результат выглядит очень хорошо. Вот преимущества этого метода:

  • код сохраняет свою первоначальную разметку и цвета
  • код отделен от остальной части документа, как если бы это был рисунок или диаграмма
  • орфографические ошибки не будут выделены в коде (это круто!)

И это займет всего несколько секунд.

1608
gargamel

Загрузите и установите Notepad ++ и выполните следующие действия:

  1. Вставьте свой код в окно;

  2. Выберите язык программирования из языкового меню;

  3. Выберите текст для копирования;

  4. Щелкните правой кнопкой мыши и выберите Команды плагина -> Копировать текст с подсветкой синтаксиса;

  5. Вставьте его в MS Word, и все готово!

Обновление от 29.06.2013:

Notepad ++ имеет плагин под названием «NppExport» (поставляется предварительно установленным), который позволяет копировать в RTF, HTML и ALL. Он допускает десятки языков, в то время как вышеупомянутые IDE ограничены несколькими (без других плагинов).

Я использую Скопировать все форматы в буфер обмена и «вставить как HTML» в MS Word. 

screenshot from notepad++

913
Saad

 enter image description here

Формат кода Надстройка теперь доступна в надстройках Office с Office 365! Просто выберите код и нажмите «Преобразовать его», и он преобразует текст кода в форматированный цветовой код с номерами строк !!! 

Немного радуйся!

Формат кода доступен здесь: https://appsource.Microsoft.com/en-us/product/office/WA104379501?tab=Overview

107
Rahul Saini

Прочитав много связанных ответов, я наткнулся на собственное решение, которое для меня является наиболее подходящим.

Результат выглядит так:  the final result

Как вы можете видеть, это та же подсветка синтаксиса, что и при переполнении стека, что довольно здорово.

Действия по воспроизведению:

на переполнение стека

  1. Перейти Задать вопрос (желательно с Chrome)
  2. Вставьте код и добавьте тег language (например, Java), чтобы получить подсветку синтаксиса
  3. Скопируйте код из предварительного просмотра

в слове

  1. Вставить> Таблица> 1x1
  2. Вставить код
  3. Дизайн таблицы> Границы> Без границ
  4. Выберите код> Изменить> Найти> Заменить
    Поиск документа ^ p (Метка абзаца) Заменить на ^ l (Ручной разрыв строки)
    (Это необходимо для устранения пробелов между строками)
  5. Выберите код еще раз> Обзор> Язык> отметьте «Не проверять орфографию или грамматику»
  6. Наконец добавьте заголовок, используя Ссылки> Вставить заголовок> Новая метка> назовите его "Listing" или sth

Пример кода благодаря этот парень

77
monty.py

Я набираю свой код в Visual Studio, а затем копирую и вставляю в Word. это сохраняет цвета. 

51
Jimmy

Для этого есть хороший онлайн-инструмент: http://www.planetb.ca/syntax-highlight-Word

Просто скопируйте сгенерированный код и вставьте его в программное обеспечение для редактирования Word. До сих пор я пробовал это на MS Word и WPS Writer, работает очень хорошо .. Не играет в Nice с Firefox, но отлично работает на Chrome (и IE тоже, но кто хочет этим пользоваться).

Одним из основных преимуществ является то, что, в отличие от надстройки формата кода для Word, она НЕ мешает вашему коду и учитывает синтаксис различных языков .... Я пробовал много других вариантов, предложенных в другом ответе но я нашел, что это самый эффективный (быстрый и действительно эффективный).

Есть также еще один инструмент onlinz, указанный в другом ответе (markup.su), но я считаю, что вывод planetB более элегантный (хотя и менее универсальный).

Ввод: 

 enter image description here

Результат : 

 enter image description here

47
Fahmi

Когда я это сделал, я широко использовал стили. Это очень помогает.

Я создаю стиль абзаца (возможно, называемый «Code Example» или что-то в этом роде), в котором используется моноширинный шрифт, тщательно выбранные вкладки, очень светло-серый фон, тонкая черная рамка сверху и снизу (что очень помогает видимости) и с выключенным правописанием. Я также удостоверяюсь, что межстрочный интервал и интервал между параграфами установлены правильно. Затем я создаю дополнительные стили символов сверху (например, «Comment», «String», «Keyword», «Function Name Decl», «Variable Name Decl»), которые я накладываю сверху; те устанавливают цвет и является ли текст полужирным/курсивом. Тогда довольно просто пройтись и пометить вставленный пример как код, и он получился действительно хорошо выглядящим, и это хорошо работает для коротких фрагментов. Длинные куски кода, вероятно, обычно не должны быть в чем-то, что собирается на мертвом дереве. :-)

Преимущество такого подхода заключается в том, что его легко адаптировать к любому коду, который вы делаете; вам не нужно полагаться на некоторые IDE, чтобы выяснить, что происходит для вас. (Основная проблема? Печатные страницы, как правило, не такие широкие, как окна редактора, поэтому обертывание будет отстой ...)

27
Donal Fellows

Попробуйте определить стиль под названием "код" и заставить его использовать небольшой шрифт фиксированной ширины, тогда он должен выглядеть лучше.

Использование CTRL+SPACEBAR сбросить стиль.

22
frankodwyer

Если вы похожи на меня и слишком ленивы или спешите и не хотите загружать дополнительное программное обеспечение, вы можете использовать http://markup.su/highlighter/ . Это очень просто и поддерживает несколько основных тем и много языков программирования.  http://markup.su/highlighter/ В моем случае я использовал код Visual Studio , который не позволяет копировать в формате из-за CSS, задействованного в стилировании (как сообщалось здесь ).

Скопируйте текст из поля «Просмотр», а затем в Word перейдите в «Вставка» -> «Текстовое поле», вставьте «Предварительный просмотр с веб-сайта», выделите весь текст, а затем отключите проверку орфографии для этого текстового поля .

Вот как выглядит код наконец .  code as seen in Word

18
maaw

Может быть, это слишком просто, но вы пытались вставить в свой код и установить для него шрифт Courier New?

18
chaos

Если вы используете Sublime Text, вы можете скопировать код из Sublime в MS Word, сохранив подсветку синтаксиса. 

Установите пакет под названием SublimeHighlight .

В Sublime с помощью курсора выберите код, который вы хотите скопировать, щелкните его правой кнопкой мыши, выберите «копировать как RTF» и вставьте в MS Word.

16
Patrick_870206

Это немного косвенно, но работает очень хорошо. Получите LiveWriter и установите этот плагин:

http://lvildosola.blogspot.com/2007/02/code-snippet-plugin-for-windows-live.html

Вставьте свой код с помощью плагина в блоге. Выберите все и скопируйте его в Word.

Это выглядит великолепно и может включать номера строк. Это также охватывает страницы прилично.

НТН

Колби Африка

12
Shim Tait

По моему опыту копирование-вставка из Eclipse и Notepad ++ работает напрямую с Word.

По какой-то причине у меня была проблема с файлом, который не сохранял окраску. Я сделал новый файл .Java, скопировал и вставил в него код, затем скопировал и вставил в Word, и это сработало ...

Как сказали другие парни, создайте новый стиль абзаца. Я использую моноширинный шрифт, например, Courier New, маленький размер, близкий к 8px для шрифтов, одинарный интервал без пробелов между абзацами, делаю табуляторы маленькими (0.5cm, 1cm, .., 5cm), помещаем простую границу линии вокруг текста и отключить грамматические проверки. Таким образом, я достиг линейного торможения Eclipse, поэтому мне больше ничего не нужно делать.

Надеюсь я помог;)

9
Dimitrios K.

Используйте моноширинный шрифт, такой как Lucida Console, , который поставляется с Windows. Если вы вырезали/вставили из Visual Studio или что-то, что поддерживает подсветку синтаксиса, вы часто можете сохранить цветовую схему подсветки синтаксиса.

7
ConcernedOfTunbridgeWells

Это самый простой подход, которому я следую. Считайте, что я хочу вставить код Java.

  1. Я вставляю код здесь так, чтобы пробелы, табуляции и цветочные скобки были аккуратно отформатированы http://www.tutorialspoint.com/online_Java_formatter.htm

  2. Затем я вставляю код, полученный на шаге 1, чтобы цвета, шрифты добавлялись к коду http://markup.su/highlighter/

  3. Затем вставьте код предварительного просмотра, полученный на шаге 2, в MS Word. Наконец это будет выглядеть так

 enter image description here

7
Siddarth Kanted

Vim имеет отличную функцию, которая преобразует код в формат HTML, сохраняя подсветку синтаксиса, стиль шрифта, цвет фона и даже номера строк. Запустите :TOhtml, и vim создаст новый буфер, содержащий разметку html.

Затем откройте этот HTML-файл в веб-браузере и скопируйте/вставьте все, что он отображал в Word. Vim tips wiki имеет больше информации .

7
Gowtham

Я использую Word 2010, и мне нравится копировать и вставлять из Github Gist. Просто не забудьте сохранить исходное форматирование!

Затем я изменяю шрифт на DejaVu Sans Mono.

Вы можете выбрать копирование с нумерацией или без нее.

6
bluekeys

Вы также можете использовать SciTE для вставки кода, если вы не хотите устанавливать тяжелые IDE, а затем загружать плагины для всего кода, который вы делаете. Просто выберите ваш язык из языкового меню, введите свой код, выделите код, выберите «Правка» -> «Копировать как RTF», вставьте в Word с форматированием (вставка по умолчанию).

SciTE поддерживает следующие языки, но, вероятно, поддерживает другие: Abaqus *, Ada, файлы определения MIB ANS.1 *, APDL, Assembler (NASM, MASM), Asymptote *, AutoIt *, Avenue *, пакетные файлы (MS-DOS) , Baan *, Bash *, BlitzBasic *, Bullant *, C/C++/C #, Clarion , cmake *, conf (Apache), CSound , CSS *, D, diff файлы *, E- Script *, Eiffel *, Erlang *, Flagship (Clipper/XBase), Flash (ActionScript) , Fortran *, Forth *, GAP *, Gettext, Haskell, HTML *, HTML со встроенным JavaScript, VBScript, PHP и ASP *, Gui4Cli *, IDL - как MSIDL, так и XPIDL *, INI, свойства * и аналогичные, InnoSetup *, Java *, JavaScript *, LISP *, LOT *, Lout *, Lua *, Make, Matlab * , Metapost *, MMIXAL, MSSQL, nnCron, NSIS *, Objective Caml *, Opal, Octave *, Pascal/Delphi *, Perl, большинство из них, за исключением некоторых неоднозначных случаев *, PL/M *, Progress *, PostScript *, POV-Ray *, PowerBasic *, PowerShell *, PureBasic *, Python *, R *, Rebol *, Ruby *, Scheme *, scriptol *, Specman E *, Spice, Smalltalk, SQL и PLSQL, TADS3 *, TeX и LaTeX , Tcl/Tk *, VB и VBScript *, Verilog *, VHDL *, XML *, YAML *.

6
Joseph Coco

Там действительно нет чистого способа сделать это, и он все еще может выглядеть подозрительно в зависимости от ваших точных настроек стиля.

Что вы можете попытаться сделать, это сначала выполнить преобразование кода в HTML (есть много программ, которые делают это), а затем попытаться открыть HTML-файл с помощью Word, который, как мы надеемся, предоставит вам отформатированный и красивый код. , а затем скопируйте и вставьте его в свой документ.

5
Uri

Копирование в Eclipse и вставка его в Word - это еще один вариант.

5
imesh

Если исходный код Java, скопируйте его в Visual Studio, а затем скопируйте обратно в Word.

4
imesh

Я также искал это и закончил тем, что создал кое-что для моего показа кода .... Вот хороший способ:

  • Создайте прямоугольную форму и поместите свой текст внутри.
  • Измените шрифт на Consolas и размер ~ 10.
  • Изменить шрифт текста на серый почти черный (серый 25%, темнее 75%)
  • Используйте более темные цвета, чтобы выделить текст, если это необходимо, и выберите один из них в качестве контура.

 enter image description here

4
Pedro Lourenço

Вы можете использовать код VS для сохранения формата кода и выделения. Сразу скопируйте и вставьте код из VS.  enter image description here

4
bukowski

Лучшее представление для кода в документах - это шрифт с фиксированной шириной (как он должен отображаться в IDE), со слабым, заштрихованным фоном или светлой рамкой, чтобы отличить блок от другого текста.

4
Rob

Я создал более простой метод с использованием tables, так как их легче создавать, управлять и более согласованными (с возможностью сохранения стиля таблицы внутри самого документа), но я не смог найти лучший способ для схемы раскраски кода, извините за это.

Шаги:

  1. Создайте таблицу 3х3.

  2. Выберите таблицу и сделайте ее границы невидимыми (опция "No Borders") и активируйте опцию "View Gridlines" . enter image description here

  3. Внесите коррективы в интервалы ячеек и ширину столбцов, чтобы получить желаемый аспект. (Вам нужно войти в "Свойства таблицы" для тонкой настройки) . enter image description here

  4. Создайте «Paragraph Style» с именем «Code» только для ваших фрагментов кода (как указано в https://stackoverflow.com/a/25092977/8533804)

  5. Создайте другой «Paragraph Style» с именем «Code_numberline», который будет основан на предыдущем созданном стиле, но при этом вы добавите нумерацию строк в ее определение (это автоматизирует нумерацию строк). enter image description here

  6. Примените «Code_numberline» к первому столбцу и «Code» к 3-му столбцу . enter image description here

  7. Добавить заполнение в средний столбец . enter image description here

  8. Сохраните этот стиль стола и наслаждайтесь!

3
Nader Belal

Хорошо, это странно, но чтобы решить проблему с цветом фона, я вставляю текст как обычно, выделите весь блок, щелкните инструмент выделения, чтобы выделить его (даже если выделено «Нет цвета»), а затем я может стилизовать текстовый блок без цвета фона текста, оставшегося белым. Я использую VS 11 и Word 2010, но проблема существует уже давно (см. http://www.visualstudiodev.com/visual-studio-setup-installation/copypaste-code-from-vs-1305 .shtml )

3
JMBT

Если вы используете Android Studio , вы можете просто скопировать и вставить, и аспект кода будет сохранен, а также цвета. Достаточно просто!

3
Geraldo Neto

Если вы используете Intellij IDEA, просто скопируйте код из IDE и вставьте его в документ Word.

3
Joe Cheng

Из Powershell ISE скопируйте и вставьте в Word.
То же самое с Visual Studio. 

2
Andrei Karcheuski

Я использую Easy Code Formatter . Это также надстройка Office. Позволяет выбрать стиль кодирования/и имеет кнопку быстрого форматирования. Довольно аккуратно.

 enter image description here

1
Mavi Domates

Просто вставьте свой код в MS Words, выберите его -> затем щелкните правой кнопкой мыши -> Нумерация. В этом случае MS Word будет интерпретировать ваш код как маркер/нумерованный список.

Вот экраны: 

Screen1 .

Screen2 .

1
user3528865

Если вы используете TextMate (в OS X), используйте команду «copy as rtf». Это поместит хорошо напечатанный текст в буфер обмена.  rtf command

Оттуда вы можете вставить в Word или что-нибудь еще.

1
tim

Если у вас уже есть документ, созданный с большим количеством фрагментов кода, и вы бежите со временем (как я, к сожалению, был). Сохраните файл как .doc, а не .docx и вуаля! Работал на меня. Уф!

ПРИМЕЧАНИЕ: Очевидно, ваш документ не может иметь необычных функций из> Word 2007.

ПРИМЕЧАНИЕ 2: Размер файла становится больше, если это вас беспокоит.

1
EaziLuizi

Быстрый подход, который я использую, заключается в использовании Snipping Tool (уже встроенного в Microsoft) с предварительным просмотром переполнения стека.

После ввода кода в поле «Задать вопрос» я делаю предварительный просмотр и вставляю его в документ MS Word как рисунок.

 enter image description here

Выше приведен результат, изображение (а не код SO), которое вы можете вставить в Word.

Не беспокойтесь о форматировании, проверке грамматики, загрузке нового программного обеспечения или Надстроек!

1
Chabo

Самое простое решение, по крайней мере для меня, - вставить свой код в документ, выделить его и перейти к:

home -> styles -> << нажмите стрелку вниз по стилям >> -> code

Преимущество этого заключается в том, что код теперь доступен для поиска в документе (в отличие от решения gargamel), а также позволяет форматировать код, состоящий из нескольких страниц.

0
Luke Purnell

Просто щелкните правой кнопкой мыши и вставьте, используя параметр «Сохранить исходное форматирование» . Я делаю это почти каждый день, чтобы документировать свою работу. Кроме того, вы можете установить 'вставка по умолчанию' для вставки из различных источников в Файл/Параметры/Дополнительно/Вырезать, Копировать-Вставить . Также полезно: включить «Показать параметры вставки» в том же разделе Word Options.

Обратите внимание, что все свойства текста из темы вашего редактора кода (цвета, шрифты и т.д.) Будут добавлены в таблицу стилей в документе Word, поэтому я рекомендую вам не вносить никаких изменений непосредственно в вставленный текст так как это добавит беспорядок в вашу таблицу стилей, и последующие вставки не будут совпадать. Вам будет полезно быстро изучить использование «Стилей» в Word (которые на самом деле являются CSS). Они очень мощные. Используя таблицу стилей Word, вы можете вносить глобальные изменения в вставляемый текст, но это, вероятно, приведет к тому, что последующий вставленный текст добавит новые стили.

0
Mitch

Я прочитал и перепробовал все сообщения, и я хотел бы дать обзор всех решений. Лучший способ зависит от ваших требований. Если есть только короткие фрагменты, которые не длиннее страницы, тогда используйте «Вставить объект». Если код длиннее одной страницы, используйте форматирование RTF.

Вставить текстовое поле

  • Разрыв страницы невозможен
  • Проверка орфографии доступна
  • Форматирование может быть разрушено очень быстро
  • В документе с тысячами страниц Word 2016 начал создавать проблемы. В какой-то момент Word всегда зависал при попытке вставить новое текстовое поле.

Вставить объект> Документ

  • Разрыв страницы невозможен
  • Нет проверки орфографии
  • Форматирование и контент остается безопасным

RTF Форматирование

Или любой другой wysiwyg-редактор/онлайн-инструмент/библиотека для стилизации кода.

Некоторые плагины/дополнения

Все вниз или больше не работает.

0
Steven Spyrka