[Решено]Правка pdf в Draw

Автор bigor, 9 января 2018, 09:42

0 Пользователи и 1 гость просматривают эту тему.

bigor

Всех с наступившим!

Помогите пожалуйста. Есть 2 pdf файла pril1 и pril2, нужно из pril1 дату и номер скопировать
в pril2. Проблема что таких пар файлов больше сотни и хотелось бы это все сделать макросом.
Видится вариант через Draw, но как-то не пойму как в нем искать что копировать и куда копировать.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

rami

Цитата: Bigor от  9 января 2018, 07:42Видится вариант через Draw, но как-то не пойму как в нем искать что копировать и куда копировать.
В документе есть рисованные страницы, а в каждой странице могут быть объекты. В pril1.pdf есть две линии и пять врезок, врезки 6 и 5 — это соответственно дата и номер. Попробуйте начать с примера:
Sub Main
Dim oDrawPage, oDate$, oNum$
oDrawPage=ThisComponent.DrawPages(0)

oDate=oDrawPage.getByIndex(6).String
Print oDate

oNum=oDrawPage.getByIndex(5).String
Print oNum

End Sub

bigor

Спасибо. Получилось
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

bigor

#3
Цитата: Bigor от 11 января 2018, 14:09В Libre все работает, но захотелось макрос переделать через vbs, и тут проблема выскочила в сохранении в PDF.

Код:

aURL = Document2.getLocation()
aURL = replace(aURL,"pril2","pril2_1",1)
  Param1 = Array(_
                       MkPropVal( "FilterName", "draw_pdf_Export" ),_
                       MkPropVal( "FilterData",  oExpFilterOptions )_
            )
Document2.storeToURL aURL, Param1

Function MkPropVal(cName,uValue)
       Dim oPropertyValue
      set MkPropVal =  ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
      set oPropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
       
               oPropertyValue.Name = cName           
               oPropertyValue.Value = uValue
       
       MkPropVal = oPropertyValue
End Function


Ругается на эту строку  MkPropVal = oPropertyValue - объект не поддерживает это свойство или метод.

Чего-то я ступил и в сложности полез, все оказывается намного проще
aURL = replace(aURL,"pril2","pril2_1",1)
  Param1(0).Name =  "FilterName"
  Param1(0).Value = "draw_pdf_Export"
                       
Document2.storeToURL aURL, Param1

только кавычки "draw_pdf_Export" обязательны, без них не работает.

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут