Помогите дописать макрос экспорта всех страниц LibreOffice в PNG

Автор PyGreen, 11 апреля 2019, 11:46

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

bigor

Вот что получилось у меня:
Sub DrawtoPNG

Dim Param1(3) as new com.sun.star.beans.PropertyValue

Param1(0).Name =  "FilterName"
Param1(0).Value = "draw_jpg_Export"
Param1(1).Name  = "PixelWidth"        '
Param1(1).Value = 2000
'Param1(2).Name  = "PixelHeight"
'Param1(2).Value = 2000
'Param1(3).Name  ="Compression"
'Param1(3).Value = 0
'Param1(4).Name  ="Interlaced"
'Param1(4).Value = 0

Param1(2).Name  ="Quality"
Param1(2).Value = 85 'Quality: 1-100, 100 is best quality / lowest compression
Param1(3).Name  ="ColorMode"
Param1(3).Value = 0' Color; 1 - Grayscale

oDoc=ThisComponent

for p=0 to  ThisComponent.getDrawPages().getCount()-1
aURL = "file:///c:/test/Dr2PNG_" & p &".jpg"
ThisComponent.storetourl(aUrl,Param1())
next

End Sub


но jpg как и ожидалось с разрешением 96 dpi и настройки компрессии / качества у меня не работают
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

kompilainenn

Цитата: Bigor от 12 апреля 2019, 10:17но jpg как и ожидалось с разрешением 96 dpi и настройки компрессии / качества у меня не работают
Эта цифра захардкожена к сожалению
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

PyGreen

#17
по какой-то причине разрешение файлов задаётся не из скрипта а по дефолту.. я пробовал ранее вариант с такой инструкцией
args1(2).Value = Array(Array("PixelWidth",0,1800,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PixelHeight",0,2544,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageRange",0,"1",com.sun.star.beans.PropertyState.DIRECT_VALUE))

и эта инструкция работала (меняла разрешение в пикселях)

как его адаптировать в решение, которое предложил Bigor чуть выше: здесь

kompilainenn

Цитата: PyGreen от 14 апреля 2019, 18:08по какой-то причине разрешение файлов задаётся не из скрипта а по дефолту
оно захардкожено просто в исходном коде и есть бага на эту тему
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

... шёл шестой год, как из-за напряжённой работы над конвертацией с помощью ЛО совсем не было пяти минут сделать правильными инструментами ;)
С уважением,
Михаил Каганский