У меня довольно необычная проблема. У меня есть файл MS Word (созданный Adobe Acrobat, оригинал был PDF), который содержит несколько текстовых полей. Содержимое этих текстовых полей необходимо проанализировать, чтобы я мог импортировать его в базу данных. Текст в документе PDF отформатирован в 2 столбца. К сожалению, преобразование файлов в Adobe Acrobat не вставляет возврат каретки после каждой строки. В результате, когда DOCX сохраняется в виде текстового файла, текст запутывается. Преобразование файлов в Word, опция "добавление конца строки", не работает для текстовых полей или текстовых фреймов. Преобразование всех текстовых полей в тексте абзаца также портит текст. На мой взгляд, это лучший способ решить этот макрос vba, который распознает каждый автоматический конец строки в любом текстовом поле в документе и вставляет возврат каретки. Тем не менее, я попытался сделать это с помощью предопределенной закладки "\line", но, похоже, это не работает и в текстовых полях. Я продолжаю получать сообщение об ошибке "Объект удален", который не возникает, если выбран только текст абзаца (не в текстовом поле).
Sub ChangeAutoLineBreaks()
Dim r As Word.Range
Set r = Selection.Range
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 = vbCr
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
Я пробовал другие инструменты миграции файлов (pdf> docx или pdf> txt), но я получил лучший результат, если преобразование файлов выполняется с использованием MS Word в качестве обходного пути.
Кто-нибудь есть какие-нибудь советы, как я могу заставить это работать для меня в Word?
Снимок экрана, описывающий проблему
Спасибо!
Питер