MathML или OMML к PNG w/.NET?

Есть ли какие-либо библиотеки, которые берут MathML (или, еще более предпочтительно, OMML), и производит.PNG файл?

Я соединяю процесс экспорта для .docx файлов и как часть этого процесса, я хотел бы извлечь уравнения и представить их как.PNG файлы. Word 2007 делает это исходно, когда Вы сохраняете документ для сети, но до сих пор, я не смог найти способ сделать это программно (если бы у кого-либо есть ответ, для которого, это было бы еще лучше). Таким образом, следующая лучшая вещь состоит в том, чтобы взять OMML и использовать Microsoft, обеспеченную таблицы стилей XSL, и преобразовать их к MathML.

К сожалению, я не смог найти любой (работа) библиотеки рендеринга или для MathML или для OMML.

Если не будет никаких чистых библиотек.NET для этого, то я соглашусь примерно на что-либо, что я могу назвать от командной строки для вывода.PNG или от MathML или от OMML.

11
задан kennytm 13 March 2010 в 06:51
поделиться

5 ответов

У меня аналогичная потребность. Вот фрагмент, который мне подходит:

public void FormulaToImage(string imageName, string eq)
{
    Application app = new Application();
    Document _doc = app.Documents.Add();
    Range _range = _doc.Range();
    _range.Text = eq; // "Celsius = (5/9)(Fahrenheit – 32)";
    _doc.OMaths.Add(_range);
    _doc.OMaths.BuildUp();
    _doc.SaveAs(@"foo.htm", WdSaveFormat.wdFormatHTML);

    //the gif appears to be better quality than the png
    File.Move(@"foo_files\image002.gif", imageName + ".gif");                
    app.Documents.Close(WdSaveOptions.wdDoNotSaveChanges);
    app.Quit(false);
}
1
ответ дан 3 December 2019 в 10:44
поделиться

Вы можете попробовать библиотеку Java JEuclid: http://jeuclid.sourceforge.net/

1
ответ дан 3 December 2019 в 10:44
поделиться

Вы можете попробовать SVGMath для преобразования mathml в SVG, а затем какой-нибудь инструмент для преобразования SVG в PNG, например

http://harriyott.com/2008/05/converting-svg-images-to-png-in-c.aspx

или используйте rsvg lib для преобразования SVG в файлы PNG.

3
ответ дан 3 December 2019 в 10:44
поделиться

Мы создаем библиотеку DLL под названием Equation Composer, которую многие используют с .NET для преобразования MathML в PNG. Он также доступен как исполняемый файл командной строки. Это не бесплатно, но это означает, что вы получите техническую поддержку и исправления ошибок. Дополнительная информация доступна здесь: http://dessci.com/en/products/mathflow/mf_components.htm

2
ответ дан 3 December 2019 в 10:44
поделиться

Некоторые хорошие новости, некоторые не очень хорошие новости и некоторые странные новости:

Хорошо новости - это библиотека, которую вы ищете, по адресу http://msdn.microsoft. com / en-us / library / documentformat.openxml.math% 28office.14% 29.aspx . По крайней мере, я думаю, что вы ищете.

Не очень хорошая новость в том, что приведенный ниже код работает не совсем так, как ожидалось - он копирует большинство символов как "?" и получившееся изображение в значительной степени чушь.

Sub SaveOMML()
Dim rng As Range
Dim Equation As OMath

Set rng = Selection.Range
rng.Text = "Celsius = (5/9)(Fahrenheit – 32)"
Set rng = Selection.OMaths.Add(rng)
Set Equation = rng.OMaths(1)
Equation.BuildUp
Equation.Range.Select

With Selection.Range
        .CopyAsPicture
        .PasteSpecial DataType:=wdPasteMetafilePicture
End With

End Sub

странная новость заключается в том, что OMML прекрасно копирует / вставляет в PowerPoint как изображение, которое затем можно сохранить как PNG. Немного громоздко, но с VSTO это можно сделать.

1
ответ дан 3 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: