Параметры фильтров импорта/экспорта

Автор bigor, 9 октября 2023, 12:53

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

bigor

Всем доброго дня.
Не могу найти, где посмотреть все параметры определенного фильтра экспорта/импорта. Нашел только информацию по PDF Export filter data, а есть нечто подобное по другим фильтрам? В настоящее время интересует экспорт в JPG или PNG.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

mikekaganski

Есть только по тем фильтрам, которые были описаны. Есть по CSV, по PDF, dBase, Lotus, Diff. По всему остальному надо смотреть код (не могу посмотреть прямо сейчас).
С уважением,
Михаил Каганский

bigor

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

mikekaganski

Заметки:

Графические фильтры экспорта получают параметры через GraphicExportFilter::gatherProperties. Свойство "FilterData" сохраняется в maFilterDataSequence, и из него сразу получаются параметры "PixelWidth" и "PixelHeight".

Затем эти же параметры передаются в GraphicFilter::ExportGraphic в виде pFilterData. Там они используются в FilterConfigItem aConfigItem, и соответственно в ImpGetScaledGraphic; последний использует параметры "LogicalWidth", "LogicalHeight", "ExportMode", "Resolution", "Color". Также aConfigItem используется во многих вызовах ExportXxxGraphic; но в случае PNG и JPG, в соответствующие функции передаётся непосредственно pFilterData. Например, aPNGWriter.setParameters( *pFilterData ).

Экспорт PNG использует:

* Compression
* Interlaced
* Translucent
* AdditionalChunks

Но!
Параметры, передаваемые из командной строки типа

soffice --convert-to png:writer_png_Export:params_here example.odt
попадают в строковый параметр "FilterOptions", и графические фильтры ничего не делают, чтобы преобразовать его в "FilterData".

Так что на данный момент ничего из командной стоки не передашь. В принципе это просто реализовать наподобие реализации для PDF.
С уважением,
Михаил Каганский

bigor

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

mikekaganski

С уважением,
Михаил Каганский