4

Я хочу включить схему XML в технический документ, созданный в MS Word. У него есть строки, которые намного длиннее доступной ширины на странице, поэтому Word автоматически разбивает строки. Я хочу ясно дать понять читателям, где это произошло, чтобы они знали, что следующая строка является продолжением предыдущей. Есть ли способ заставить Word автоматически вставлять символ, например ⏎, в конце каждой автоматически разбитой строки?

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

Возможно ли это с помощью MS Word, или если нет, может кто-нибудь порекомендовать другой автоматизированный метод для достижения этого?

2 ответа2

0

Я не буду называть его дубликатом, потому что это не ответ на вопрос, но, возможно, стоит посмотреть здесь:
Можно ли установить стиль отображения продолжения строки в Microsoft Word?

что приводит вас к:конвертировать HTML в изображение

0

Ну, вы могли бы попробовать следующий VBA в качестве отправной точки, но я думаю, что это потребует некоторой работы. Предполагается, что ваши разрывы всегда будут после пробела (что не является необоснованным для схемы IMO), поэтому, если у вас текст без пробелов длиннее строки, вам все равно придется разбивать их вручную.

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

Sub markAutoLineBreaks()
' Changes line breaks automatically made by Word
' into "return" charaters, but only where the line
' ends in a " "
' This operates on the text in the current selection
' We use a character style
Const strStyleName As String = "contchar"
Dim r As Word.Range
Dim styContchar As Word.Style

' Add the style if it is not present
On Error Resume Next
Set styContchar = ActiveDocument.Styles.Add(strStyleName, Type:=WdStyleType.wdStyleTypeCharacter)
Err.Clear
On Error GoTo 0
' Set the characteristics of the style. What you need to aim for
' is to adjust the character width so that the text breaks at the
' same point (if possible)
Set styContchar = ActiveDocument.Styles(strStyleName)
With styContchar.Font
  .Size = 8
End With

' Save the selection
Set r = Selection.Range

' remove old line end marks
With Selection.Find
  .ClearFormatting
  .Style = styContchar
  .Replacement.ClearFormatting
  ' Not sure what to use here, but this will have to do
  .Replacement.Style = ActiveDocument.Styles("Default Paragraph Font")
  ' 9166 is the return character. 8204 is a No-width breaking space
  .Text = ChrW(9166) & ChrW(8204)
  .Replacement.Text = " "
  .Forward = True
  .Format = True
  .MatchCase = False
  .MatchWholeWord = False
  .MatchWildcards = False
  .MatchSoundsLike = False
  .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

' Moving down lines is not completely straightforward
' but this seems to work
Selection.Collapse direction:=wdCollapseStart
Do Until Selection.End > r.End
  Selection.Bookmarks("\line").Select
  If Right(Selection, 1) = " " Then
      Selection.SetRange Selection.End - 1, Selection.End
      Selection.Delete
      Selection.Text = ChrW(9166) & ChrW(8204)
      Selection.Style = styContchar
      Selection.Bookmarks("\line").Select
      Selection.Collapse direction:=wdCollapseStart
  End If
  Selection.MoveDown wdLine, 1, False
Loop

' reselect our original selection
r.Select
Set r = Nothing
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .