У мене досить незвичайна проблема. У мене є файл 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?
Знімок екрана з описом проблеми
Дякую!
Петро