Есть ли какие-либо библиотеки, которые берут MathML (или, еще более предпочтительно, OMML), и производит.PNG файл?
Я соединяю процесс экспорта для .docx файлов и как часть этого процесса, я хотел бы извлечь уравнения и представить их как.PNG файлы. Word 2007 делает это исходно, когда Вы сохраняете документ для сети, но до сих пор, я не смог найти способ сделать это программно (если бы у кого-либо есть ответ, для которого, это было бы еще лучше). Таким образом, следующая лучшая вещь состоит в том, чтобы взять OMML и использовать Microsoft, обеспеченную таблицы стилей XSL, и преобразовать их к MathML.
К сожалению, я не смог найти любой (работа) библиотеки рендеринга или для MathML или для OMML.
Если не будет никаких чистых библиотек.NET для этого, то я соглашусь примерно на что-либо, что я могу назвать от командной строки для вывода.PNG или от MathML или от OMML.
У меня аналогичная потребность. Вот фрагмент, который мне подходит:
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);
}
Вы можете попробовать библиотеку Java JEuclid: http://jeuclid.sourceforge.net/
Вы можете попробовать SVGMath для преобразования mathml в SVG, а затем какой-нибудь инструмент для преобразования SVG в PNG, например
http://harriyott.com/2008/05/converting-svg-images-to-png-in-c.aspx
или используйте rsvg lib для преобразования SVG в файлы PNG.
Мы создаем библиотеку DLL под названием Equation Composer, которую многие используют с .NET для преобразования MathML в PNG. Он также доступен как исполняемый файл командной строки. Это не бесплатно, но это означает, что вы получите техническую поддержку и исправления ошибок. Дополнительная информация доступна здесь: http://dessci.com/en/products/mathflow/mf_components.htm
Некоторые хорошие новости, некоторые не очень хорошие новости и некоторые странные новости:
Хорошо новости - это библиотека, которую вы ищете, по адресу 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 это можно сделать.