Форум поддержки пользователей LibreOffice, Apache OpenOffice

Главная категория => Макросы => Тема начата: bigor от 9 октября 2023, 12:53

Название: Параметры фильтров импорта/экспорта
Отправлено: bigor от 9 октября 2023, 12:53
Всем доброго дня.
Не могу найти, где посмотреть все параметры определенного фильтра экспорта/импорта. Нашел только информацию по PDF Export filter data, а есть нечто подобное по другим фильтрам? В настоящее время интересует экспорт в JPG или PNG.
Название: От: Параметры фильтров импорта/экспорта
Отправлено: mikekaganski от 9 октября 2023, 13:33
Есть только по тем фильтрам, которые были описаны. Есть по CSV, по PDF, dBase, Lotus, Diff. По всему остальному надо смотреть код (не могу посмотреть прямо сейчас).
Название: От: Параметры фильтров импорта/экспорта
Отправлено: bigor от 9 октября 2023, 13:42
Цитата: mikekaganski от  9 октября 2023, 13:33(не могу посмотреть прямо сейчас)
спасибо. Мне не срочно
Название: От: Параметры фильтров импорта/экспорта
Отправлено: mikekaganski от 9 октября 2023, 16:28
Заметки:

Графические фильтры экспорта получают параметры через GraphicExportFilter::gatherProperties (https://opengrok.libreoffice.org/xref/core/filter/source/graphic/GraphicExportFilter.cxx?r=6b252b6a#59). Свойство "FilterData" сохраняется в maFilterDataSequence, и из него сразу получаются параметры "PixelWidth" и "PixelHeight".

Затем эти же параметры передаются в GraphicFilter::ExportGraphic (https://opengrok.libreoffice.org/xref/core/vcl/source/filter/graphicfilter.cxx?r=01230c5c#1483) в виде pFilterData. Там они используются в FilterConfigItem aConfigItem, и соответственно в ImpGetScaledGraphic (https://opengrok.libreoffice.org/xref/core/vcl/source/filter/graphicfilter.cxx?r=01230c5c&mo=6402&fi=190#190); последний использует параметры "LogicalWidth", "LogicalHeight", "ExportMode", "Resolution", "Color". Также aConfigItem используется во многих вызовах ExportXxxGraphic; но в случае PNG и JPG, в соответствующие функции передаётся непосредственно pFilterData. Например, aPNGWriter.setParameters (https://opengrok.libreoffice.org/xref/core/vcl/source/filter/png/PngImageWriter.cxx?r=5374b710#444)( *pFilterData ).

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

* Compression
* Interlaced
* Translucent
* AdditionalChunks

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

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

Так что на данный момент ничего из командной стоки не передашь. В принципе это просто реализовать наподобие реализации для PDF (https://gerrit.libreoffice.org/c/core/+/128849).
Название: От: Параметры фильтров импорта/экспорта
Отправлено: bigor от 9 октября 2023, 17:45
Спасибо. Буду изучать
Название: От: Параметры фильтров импорта/экспорта
Отправлено: mikekaganski от 9 октября 2023, 18:12
https://bugs.documentfoundation.org/show_bug.cgi?id=157668