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


2006

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

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

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


Я пошел со смешанным решением. Копирование в формате RTF, вставка в OpenOffice Writer, удаление фона (если есть) и вставка кода в MS Word. По какой-то причине я не могу удалить фон в Word :-( В любом случае, плагин «Копировать на стероиды» для этого в PhpStorm, WebStorm, PyCharm
круто

3
Начиная с Office 365, я не знаю, может быть, даже для Word 2013 или 2016. Он имеет надстройку онлайн под названием «Формат кода». Установите этот надстройку Office, и в своем документе Word вы можете просто выбрать весь код (даже несколько страниц) и нажать кнопку «Преобразовать его» в надстройке «Формат кода», и он преобразует его в форматированный цветовой код с номерами строк. Я не мог найти возможность форматировать без номеров строк, хотя !!! Но тем не менее, не так уж и плохо!
Рахул Саини

Помимо какой-либо конкретной надстройки, предназначенной для форматирования кода, лучшим решением будет использование стилей или альтернативных изображений. Стили предназначены для форматирования. Раньше я использовал много вилок от Star Office до Libre Office, но я только попал в Word и нашел, как это сделать, просто изучив конфигурацию стиля. Просто используйте Notepad ++ для экспорта RTF, а затем используйте стили. Некоторые из вещей, которые я сделал, это добавили рамку, цвет фона, который мне нравится, отметьте «Не добавлять интервалы между тем же стилем» или тому подобное (у меня есть французский GUI, поэтому я не знаю точного английского заголовка) и все, что вы делаете подобно.
猫 IT

Формат кода недоступен - но Easy Code Formatter здесь работает довольно хорошо: appsource.microsoft.com/en-us/product/office/…
Mavi Domates

Ответы:


1948

Вот лучший способ для меня, чтобы добавить код внутри слова:

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

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

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

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


21
Brilliant! Я годами возился со стилями, таблицами и другими обходными путями. Это исправляет все за один раз. Обратите внимание, что вы также получаете бонус за добавление подписи к вашему коду. Я добавил новый тип ярлыка "Листинг" для очков брауни :-)
Туманность

7
Обратите внимание, что для этого на вашем компьютере должен быть установлен open / libre office.
BetaRide

14
@ BetaRide Нет, это не так. Я просто использовал это в документе на машине без установленного OpenOffice. OpenDocument относится к формату файлов с поддержкой MS Office, среди прочего: en.wikipedia.org/wiki/OpenDocument
Jamie F

45
Не могу увидеть эту опцию в Word 2011 на OSX :(
Мэтт Гибсон

39
Для Word 2011 на OSX используйте: Вставка -> Объект ... Документ Microsoft Word
s_t_e_v_e

1007

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

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

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

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

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

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

Обновление 29/06/2013:

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

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

скриншот из блокнота ++


8
Это работало прекрасно. У меня уже был Notepad ++ для других проектов кода, но я никогда не думал об его использовании. В сочетании со стилем Word, который добавляет слабый синий фон, границу и отключенную проверку орфографии, он выглядит довольно хорошо и довольно быстро для ряда файлов, в отличие от методов, включающих экспорт и импорт файлов. Хотя я хотел бы, чтобы был способ добавить его в качестве поля, которое автоматически проверяло бы исходные файлы .java на наличие обновлений и сохраняло бы последний исходный код в файле Word.
Нил

92
Спасибо за этот совет. Плагины -> NppExport -> Копировать RTF в буфер обмена также работает.
Эндрю Хьюи

32
Это сработало очень хорошо. В Word 2007+, чтобы добавить границу и отключить проверку орфографии: 1) выберите свой код; 2) «Домой-> Стили-> Сохранить выделение как новый быстрый стиль» (это кнопка сброса); 3) Назовите его «Код» или аналогичный; 4) Изменить; 5) Формат-> Граница (слева внизу), чтобы добавить границу; 6) Формат-> Язык [X] Не проверять орфографию или грамматику. Теперь вы можете применить тот же формат «Код» к тексту, вставленному из NppExport.
Блейз

2
Это прекрасно работает, не удалось получить документ Word внутри документа Word, чтобы играть хорошо. Люди это путь!
Урда

6
@BennyNeugebauer: номер строки можно добавить, настроив параметры Формат-> Нумерация, определив новый формат числа, удалив точку в первом стиле. Вы можете перейти к опции «Формат», следуя инструкциям @ Blazes ИЛИ в стиле, выбрав новый стиль-> Управление стилями-> Изменить
Miranda

141

введите описание изображения здесь

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

Немного радоваться!

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


12
только пост, который я видел, где ответ является дополнением в слове. самое простое решение, это должен быть принятый ответ в 2017 году!
cre8

2
@schauhan Это никогда не предназначалось, чтобы удалить орфографические ошибки / предупреждения. Целью этого плагина является форматирование кода с выделением ключевых слов и отступами.
Рахул Сайни

23
Больше не доступно
user1085907

4
Нашел Easy Code Formatter в списке дополнений, работал довольно хорошо.
Фелипе Сильвейра

1
Кроме того, надстройка Word Easy Syntax Highlighter обеспечивает выделение для конкретного языка с несколькими темами для каждого языка и автоматическим определением языка.
JDG

116

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

Результат выглядит так: конечный результат

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

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

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

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

в слове

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

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


2
Чтобы добавить номера строк, вы можете вставить столбец слева и включить все номера строк в одну ячейку.
Матиас А. Экхарт,

2
Это мой любимый ответ, потому что он позволяет людям, читающим документ, скопировать / вставить код.
Адам Джонс

97

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

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

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

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

Вход:

введите описание изображения здесь

Вывод :

введите описание изображения здесь


1
Просто чтобы сообщить другим, приведенный выше вывод также показывает, как он будет отображаться в документе Word с номерами строк, зеленой рамкой и подсветкой синтаксиса
mc805

1
Единственным недостатком является то, что если вы хотите скопировать и вставить код, вы должны вручную удалить номера строк.
Стивен Спирка

54

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


6
Но далеко не 100% верность. Процесс копирования, кажется, удаляет много форматирования по некоторым причинам.
Фрэнк Крюгер

3
Кстати, это очень хорошо работает с Eclipse и OpenOffice Writer (хотя я не знаю Eclipse / Word или VisualStudio / Writer).
Йоахим Зауэр

1
Интересно, зависит ли это от того, используете ли вы вкладки или же Visual Studio конвертирует вкладки в пробелы. Я не замечаю никаких проблем с пробелами.
Devuxer

1
Использование пробелов исправляет ошибки форматирования. Вид боли, но это работает.
shmeeps

2
Работает, но так как у меня черная тема ... результаты неразборчивы. blog.wekeroad.com/wp-content/uploads/2007/10/codefile.gif
EdgarT

29

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

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

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


Спасибо Доналу за эту информацию. Может спросить, как я могу использовать намерения для представления строк вложенного кода? Если я использую цвет фона и границу для своего абзаца, то при использовании отступа весь блок перемещается.
m.spyratos

7
Было бы неплохо поделиться своим стилем / шаблоном?
Эрик Оуэлле,

Веками делал то же самое - один большой багбир: всякий раз, когда я применяю стиль, Word по-прежнему подчеркивает проблемы правописания. Если я изменяю стиль и выбираю «Формат-> Язык», проверяется «Не проверять орфографию и грамматику», и если я теперь закрываю диалог форматирования с помощью «ОК», строки будут идти - но они всегда появляются, пока я не сделаю это.
Ревень

23

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

Используйте CTRL+ SPACEBARдля сброса стиля.


17
Вы не будете сохранять подсветку синтаксиса.
Ури

1
Подсветка синтаксиса переоценивается, если мы говорим о документе Word здесь. Но это также легко реализуется в скрипте VB, который окрашивает весь текст в стиле «Код».
Фрэнк Крюгер

Вот как я делаю это тоже с довольно хорошими результатами, хотя я также отключаю проверку орфографии / грамматики для своего стиля «кода».
Клейтон

2
Конечно, вы можете сохранить подсветку синтаксиса: создайте стиль без цвета шрифта

21

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


4
Это все еще не будет сохранять подсветку синтаксиса.
Sk8erPeter

@ Sk8erPeter: Это не обязательно так. Копирование и вставка более чем способны передавать информацию о цвете - они делают это все время, хотя я бы предпочел, чтобы это не происходило. Это зависит от того, поддерживают ли исходное и целевое приложения одну и ту же схему для ее указания.
хаос

21

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

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

Вот как наконец-то выглядит код.код, как видно в Word


Есть ли способ изменить размер шрифта? Мой код очень большой, и я хочу поместить его в несколько страниц одним словом. Изменение размера шрифта в слове не помогает
dark32

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

1
@ dark32, если я правильно понимаю вашу проблему, вам нужно изменить межстрочный интервал: support.office.com/en-us/article/…
maaw

2
Это прекрасно работало неделю назад, однако по состоянию на 12.12.2017 сайт markup.su/highlighter больше не работает. Надеюсь, он скоро вернется.
Gorgon_Union

2
Ссылка снова мертва ... Просто на голову.
Зомби Чиби XD

20

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

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

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


2
Это отлично сработало для меня. Расширение Word полностью испортило мой код и комментарии, превращая их в нечитаемые. Это на самом деле работает отлично. Я добавлю, что вы можете просто перейти к возвышенному, нажмите cmd + shift + P, перейдите Install packageи введите highlightтам. Это установит это немедленно
Клод Х

12

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

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

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

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

НТН

Колби Африка


Требуется учетная запись на Windows Live или Wordpress или некоторых других из 10 блог-платформ.
Мирелон


10

По моему опыту copy-paste из eclipse и Notepad ++ работает напрямую со словом.

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

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

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


10

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

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


9

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

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

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

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

введите описание изображения здесь


9

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

введите описание изображения здесь


Это круто, но я не могу установить его в моем слове 2016 ... Ошибка в слове все время
Jebik

@Jebik - если вы используете корпоративный аккаунт, возможно, ваш администратор заблокировал установку? Я использую его в 2016 году ... Какой у вас номер сборки?
Mavi Domates

У меня была версия 16.0.4849.1000. Но, как я уже сказал, я установил 2 других дополнения. Так что моя компания, похоже, не блокирует установку. Я не могу установить это расширение. Я даже не нахожу это в магазине, чтобы быть честным. От слова, когда я открываю магазин и ищу приложение, этого нет в списке
Jebik

Это означает, что ваше Word находится в версии сборки, которая не поддерживает это дополнение.
Мави Domates

Попробуйте обновить слово, если можете, ваша версия кажется немного устаревшей.
Mavi Domates

8

Вы можете использовать код VS, чтобы сохранить формат кода и выделения. Непосредственно скопируйте и вставьте код из VS.введите описание изображения здесь


На этот раз я нашел самый умный ответ на этот вопрос. Спасибо!
Ануп Бангал

7

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


7

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

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

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


7

Ответ для людей, пытающихся решить эту проблему в 2019 году:

Большинство ответов на этот вопрос уже устарели. Хотелось бы, чтобы был способ переосмыслить старые вопросы и ответы время от времени!

Метод, который я нашел для этого вопроса, который работает с Office 365 и связанными с ним программами, можно найти здесь .


6

Вы также можете использовать 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 * Флагман (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 *, объектив 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 *.


Не работает при вставке кода PHP. Выделены только начальные и конечные скобки :( Хотя для Java все работало нормально.
Рен

6

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


5

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

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


5

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

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

введите описание изображения здесь


4

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


4

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


4

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



4

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.