Макрос нужен

  • Автор темы Автор темы izrukvruki
  • Дата начала Дата начала

izrukvruki

Топикстартер
15 лет на форуме
Сообщения
1 881
Реакции
311
Задача такая: делаем научный журнал, дают вордовский файл с формулами (с формулами ничего делать не нужно) и графиками/картинками. Картинки зачастую в самом ворде обрезаны, возможно у них в ворде пропорции искажены (сама картинка - 5 на 5 см, а автор ее специально вытянул и сделал 5 на 7 см). Отдельными файлами картинки не дают. Мне нужен макрос, который бы сохранил картинки отдельными файлами (с учетом их обрезки в ворде, размеры должны быть пропорциональны размеру в ворде, в максимально возможном качестве, в RGB и TIFF), вместо самих бы картинок вставить имена этих файлов (для последующей обработке в Индизайне макросом TFManagerCS3

Это должно работать как просто в тексте, так и внутри табличках (пример ниже - там табличка, внутри ячеек картинки стоят)

Вот это в ворде:
1582265383985.png



Вот так в индизайне

1582265409711.png



Если это возможно реализовать, то сколько это будет стоит?
Пишите в ЛС
 
Ваши картинки не видны, но , для начала, просто сохраните как docx и безо всякого макроса вытащите все что надо из архива
 
вытащить их можно, но потом их нужно обрезать непонятно как... и расставить в нужные места, что иногда не очень очевидно...
Пять графиков, практически одинаковых на вид, разница видна только тому кто в теме этой статьи...
 
Гм, меня терзают смутные сомнения, что задача сильно взрослее для вордовской VBA реализации.
А если в PDF, который потом, скажем, иллюстратором по винтикам разгребать?
 
Я думаю, что эту задачу можно решить следующим образом.
1. Открываем файл с внедренной графикой.
Снимок экрана 2020-02-24 в 19.39.38.png

2. F5 — поиск и замена. Найти любой знак ^? . Поле "Заменить" оставляем пустым
Снимок экрана 2020-02-24 в 19.40.04.png

В файле останутся только графические объекты и пустые таблицы
Снимок экрана 2020-02-24 в 19.40.51.png

3. Сохранить как PDF
Снимок экрана 2020-02-24 в 19.41.10.png

Последовательность действий можно записать в макрос
 
  • Спасибо
Реакции: Как_же_так
Можно текст и не удалять. В Акробате есть инструмент (в Document Processing) экспорта всех изображений сразу (Export All Images) в настраиваемом качестве и выбранного типа.
 
Можно текст и не удалять. В Акробате есть инструмент (в Document Processing) экспорта всех изображений сразу (Export All Images) в настраиваемом качестве и выбранного типа.
Да, экспортировать так можно... Но потом картинки расставить довольно сложно...

А что заменить картинки на текст-счетчики (img1, img2, img3...) макросом сложно?
 
А что заменить картинки на текст-счетчики (img1, img2, img3...) макросом сложно?
Можно.
Код:
Sub Picture_del()
Dim oInlineShape As InlineShape
Dim i As Integer

i = 1
Selection.HomeKey Unit:=wdStory
For Each oInlineShape In ActiveDocument.InlineShapes
oInlineShape.Select
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="img" & i
i = i + 1
Next
End Sub
 
Последнее редактирование:
  • Спасибо
Реакции: izrukvruki
а после

Код:
oInlineShape.Select
сохранить выделение как tiff нельзя? или картинка сохранится целиком, без учета обрезания?
 
Последнее редактирование:
Сохранять как html пробовали?
 
Может, всё-таки есть смысл сначала вывести из Ворда pdf, потом из этого pdf выдрать картинки в виде tiff в указанную папку (они там будут поименованы и пронумерованы по порядку - потом TotalCommander'ом можно выделить все и переименовать по-другому, к примеру, в img1... и т. п.), а затем в исходном вордовском файле уже удалить эти картинки, заменив их этими самыми img1...?
 
  • Спасибо
Реакции: izrukvruki
а нумерация картинок совпадет?
 
  • Спасибо
Реакции: К.Т.
Можно текст и не удалять. В Акробате есть инструмент (в Document Processing) экспорта всех изображений сразу (Export All Images) в настраиваемом качестве и выбранного типа.
Есть, но выбор форматов там довольно ограничен и если иллюстрация векторная, она растрируется
Снимок экрана 2020-02-25 в 08.40.29.png
 
Есть, но выбор форматов там довольно ограничен и если иллюстрация векторная, она растрируется
Так речь же сейчас идёт именно о растре, причём в формате tiff.

Мне нужен макрос, который бы сохранил картинки отдельными файлами (с учетом их обрезки в ворде, размеры должны быть пропорциональны размеру в ворде, в максимально возможном качестве, в RGB и TIFF)
 
Задача такая: делаем научный журнал, дают вордовский файл с формулами (с формулами ничего делать не нужно) и графиками/картинками.
График или диаграмма в научном журнале нередко сделаны в Exel, т.е. они векторные. Зачем же их растрировать и сохранять как TIFF?
 
Если предварительно преобразовать в документе все таблицы в текст, используя макрос
Код:
Sub AllTblsToText()
'все таблицы в текст
Dim tbl As Table
For Each tbl In ActiveDocument.Tables
   tbl.ConvertToText (wdSeparateByParagraphs)
Next tbl
End Sub
то после удаления всех символов в файле останутся только графические объекты.
Дальше включив в поиске—замене режим "подстановочные знаки" (вордовский аналог Grep) и заменив "любой знак" (?) на "^&^m" (искомый текст+разрыв страницы) получим каждый рисунок на отдельной странице.
Снимок экрана 2020-02-25 в 11.34.26.png
Файл сохраняем как PDF.
Затем в акробате можно разбить полученный PDF на отдельные страницы, сохранив каждую отдельным файлом.
Снимок экрана 2020-02-25 в 11.37.58.png


Снимок экрана 2020-02-25 в 11.39.53.png