Esporta equazioni matematiche dalle presentazioni su Android
Introduzione
Aspose.Slides for Android via Java consente di esportare equazioni matematiche dalle presentazioni. Ad esempio, potresti dover estrarre le equazioni matematiche dalle diapositive (da una presentazione specifica) e usarle in un altro programma o piattaforma.
Esporta equazioni matematiche in LaTeX
Aspose.Slides può convertire un’equazione matematica di PowerPoint direttamente in LaTeX; non è necessario un file MathML intermedio né un convertitore esterno. Un’equazione matematica è memorizzata in un riquadro di testo come un IMathPortion. Usa IMathPortion.getMathParagraph per ottenere un IMathParagraph, e poi chiama IMathParagraph.toLatex. Il metodo restituisce una stringa che puoi salvare, visualizzare, inviare a un’altra applicazione o elaborare ulteriormente.
Il seguente esempio esamina ogni riquadro di testo in ogni diapositiva, trova tutte le porzioni matematiche e scrive ciascuna equazione in un file .tex separato:
Presentation presentation = new Presentation("equations.pptx");
try {
int slideCount = presentation.getSlides().size();
for (int slideIndex = 0; slideIndex < slideCount; slideIndex++) {
ISlide slide = presentation.getSlides().get_Item(slideIndex);
int slideNumber = slideIndex + 1;
int equationNumber = 1;
ITextFrame[] textFrames = SlideUtil.getAllTextBoxes(slide);
for (ITextFrame textFrame : textFrames) {
for (IParagraph paragraph : textFrame.getParagraphs()) {
for (IPortion portion : paragraph.getPortions()) {
if (!(portion instanceof IMathPortion))
continue;
IMathPortion mathPortion = (IMathPortion) portion;
IMathParagraph mathParagraph = mathPortion.getMathParagraph();
String latexFileName = "slide_" + slideNumber + "_equation_" + equationNumber + ".tex";
String latexText = mathParagraph.toLatex();
File latexFile = new File(latexFileName);
byte[] latexBytes = latexText.getBytes(StandardCharsets.UTF_8);
FileOutputStream outputStream = new FileOutputStream(latexFile);
try {
outputStream.write(latexBytes);
} finally {
outputStream.close();
}
equationNumber++;
}
}
}
}
} finally {
presentation.dispose();
}
SlideUtil.getAllTextBoxes restituisce tutti i riquadri di testo trovati su una diapositiva. Il controllo del tipo IMathPortion separa le vere equazioni modificabili dal testo e dalle immagini ordinari.
I motori LaTeX e i modelli di documento non supportano tutti gli stessi comandi, pacchetti o caratteri Unicode. Verifica la stringa restituita con il motore LaTeX utilizzato dalla tua applicazione. Se un simbolo o un elemento Office Math non ha una rappresentazione adeguata in quell’ambiente, sostituiscilo nella stringa restituita con un comando specifico del progetto o salta l’equazione e registra il problema per la revisione.
Salva equazioni matematiche come MathML
Mentre gli esseri umani scrivono facilmente il codice per alcuni formati di equazione come LaTeX, hanno difficoltà a scrivere il codice per MathML perché quest’ultimo è destinato a essere generato automaticamente dalle app. I programmi leggono e analizzano MathML facilmente poiché il suo codice è in XML, quindi MathML è comunemente usato come formato di output e stampa in molti settori.
Questo esempio di codice mostra come esportare un’equazione matematica da una presentazione a MathML:
Presentation pres = new Presentation();
try {
IAutoShape autoShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 500, 50);
IMathParagraph mathParagraph = ((MathPortion)autoShape.getTextFrame().getParagraphs().get_Item(0).
getPortions().get_Item(0)).getMathParagraph();
mathParagraph.add(new MathematicalText("a").
setSuperscript("2").
join("+").
join(new MathematicalText("b").setSuperscript("2")).
join("=").
join(new MathematicalText("c").setSuperscript("2")));
FileOutputStream stream = new FileOutputStream("mathml.xml");
mathParagraph.writeAsMathMl(stream);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
FAQ
Cosa viene esattamente esportato in MathML—a un paragrafo o a un blocco di formula individuale?
Puoi esportare sia un intero paragrafo matematico (MathParagraph) sia un blocco individuale (MathBlock) in MathML. Entrambi i tipi forniscono un metodo per scrivere in MathML.
Come posso capire se un oggetto su una diapositiva è una formula matematica anziché testo normale o un’immagine?
Una formula risiede in un MathPortion e ha un MathParagraph. Le immagini e le porzioni di testo regolari senza un MathParagraph non sono formule esportabili.
Da dove proviene il MathML in una presentazione—è specifico di PowerPoint o è uno standard?
L’esportazione mira a MathML standard (XML). Aspose utilizza Presentation MathML—il sottoinsieme di presentazione dello standard—che è ampiamente usato in molte applicazioni e sul web.
L’esportazione di formule all’interno di tabelle, SmartArt, gruppi, ecc. è supportata?
Sì, se quegli oggetti contengono porzioni di testo con un MathParagraph (cioè vere formule PowerPoint), vengono esportati. Se una formula è incorporata come immagine, non lo è.
L’esportazione in MathML modifica la presentazione originale?
No. Scrivere MathML è una serializzazione del contenuto della formula; non modifica il file della presentazione.