Вопрос или проблема
У меня есть документ Word объемом около 200 страниц. Текст, который я вставил из PDF, по какой-то причине потерял пробелы. Как мне это исправить?
Это довольно интересно, но также и сложно.
Мой настоящий ответ – предложить вам исправить проблему, связанную с тем, как был экспортирован PDF!
Тем не менее, этот VBA может вам помочь. Отмены нет, так что сначала создайте резервную копию.
Option Explicit
Sub DoIt()
Dim maxChars As Integer
maxChars = 30 'обновите для самого длинного слова, которое вы хотите проверить (максимальное количество символов в слове)
Dim pos As Integer
pos = 0
Dim total As Integer
total = Len(Range.Text)
Do While (pos < Len(Range.Text))
Dim s As String
s = ""
Dim wordToUse As String
wordToUse = ""
Dim i As Integer
For i = 1 To maxChars
s = s + Mid(Range.Text, pos + i, 1)
If SpellCheck(s) = True Then
wordToUse = s
End If
Next i
pos = pos + Len(wordToUse)
Dim lef As String
Dim rig As String
lef = Trim(left(Range.Text, pos))
rig = Trim(Mid(Range.Text, pos + 1))
Range.Text = Trim(lef) + " " + Trim(Replace(rig, " ", " "))
If pos >= total Then
Exit Do
End If
Loop
End Sub
Function SpellCheck(SomeWord As String) As Boolean
'credit https://stackoverflow.com/a/10776225/1221410
SpellCheck = Application.CheckSpelling(SomeWord)
End Function
Логика проста – добавляйте символы, пока не найдете действительное слово… в этот момент убедитесь, что это не часть другого слова (например, и существует в land). Затем добавьте пробел в конце.
Ответ или решение
Чтобы автоматически добавить пробелы между словами в документе Word, следуйте приведенным ниже рекомендациям. Этот процесс важен для восприятия текста, поскольку отсутствие пробелов может сделать его трудночитаемым, особенно если речь идет о большом документе, содержащем 200 страниц.
Проблема
При копировании текста из PDF-документа в Word могут возникнуть проблемы с форматированием, включая отсутствие пробелов между словами. Это происходит из-за особенностей обработки текста в PDF-формате и может привести к значительным усилиям при редактировании.
Решения
1. Удаление форматирования
Простой и быстрый способ решить проблему состоит в том, чтобы выделить весь текст и воспользоваться функцией "Очистить форматирование":
- Выделите весь текст (Ctrl + A).
- Перейдите в вкладку «Главная».
- Нажмите на кнопку "Очистить форматирование" (иконка с буквой "А" и ластиком).
Этот метод может исправить многие проблемы с форматированием текста, хотя он не всегда гарантирует полное решение проблемы с пробелами.
2. Использование VBA для автоматического добавления пробелов
Если проблема остается нерешенной, можно воспользоваться макросом на VBA (Visual Basic for Applications). Вот шаги, как это сделать:
-
Создайте резервную копию документа: Перед выполнением любых изменений обязательно создайте копию документа, так как невозможно будет отменить действия макроса.
-
Открытие редактора VBA:
- Нажмите
Alt + F11
для открытия редактора Visual Basic. - В редакторе выберите «Insert» -> «Module», чтобы создать новый модуль.
- Нажмите
-
Вставьте код макроса:
Option Explicit
Sub DoIt()
Dim maxChars As Integer
maxChars = 30 'Обновите для максимальной длины слова
Dim pos As Integer
pos = 0
Dim total As Integer
total = Len(Range.Text)
Do While (pos < Len(Range.Text))
Dim s As String
s = ""
Dim wordToUse As String
wordToUse = ""
Dim i As Integer
For i = 1 To maxChars
s = s + Mid(Range.Text, pos + i, 1)
If SpellCheck(s) = True Then
wordToUse = s
End If
Next i
pos = pos + Len(wordToUse)
Dim lef As String
Dim rig As String
lef = Trim(Left(Range.Text, pos))
rig = Trim(Mid(Range.Text, pos + 1))
Range.Text = Trim(lef) + " " + Trim(Replace(rig, " ", " "))
If pos >= total Then
Exit Do
End If
Loop
End Sub
Function SpellCheck(SomeWord As String) As Boolean
SpellCheck = Application.CheckSpelling(SomeWord)
End Function
- Завершите и выполните макрос:
- Закройте редактор VBA и вернитесь в Word.
- Запустите макрос, нажав
Alt + F8
, выберите макрос и нажмите "Выполнить".
Заключение
После выполнения вышеописанных действий ваш документ должен быть приведен в порядок, и пробелы между словами будут добавлены. Помните, что в некоторых случаях эта проблема может быть решена на этапе экспорта PDF-файлов, чтобы избежать повторного возникновения подобных ситуаций. Всегда полезно проверить параметры экспорта в используемом вами PDF-редакторе, чтобы минимизировать проблемы с форматированием текстов в будущем.