Entwickler-Ecke

ASP.NET und Web - Latex Formel anzeigen


InfoStudent86 - Sa 23.01.10 18:25
Titel: Latex Formel anzeigen
Hallo,

ich versuche gerade in meiner WindowsForm mathematische Formeln anzuzeigen. Lieder benötigt man für Latex ja extra Compiler etc. Jetzt habe ich im Internet einen Service gefunden, der Latex-Formeln als *.png abspeichert.

http://latex.univie.ac.at/?x=1

Gibt es eine Möglichkeit aus .NET heraus dieses Angebot anzuzapfen und das Bild zu downloaden.

Idee ist es dabei in einem Textfeld die Formel in Latex einzugeben und nach drücken von Generate das bild angezeigt zu bekommen.


Grüße

Johannes


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Sa 23.01.2010 um 18:02


Christian S. - Sa 23.01.10 19:01

Hallo!

Du kannst z.B. die WebClient-Klasse benutzen, um das Bild in ein Byte-Array zu laden (die Methoden hier wären dann DownloadData bzw. DownloadDataAsync).

Wenn man das Byte-Array dann in einen MemoryStream verpackt (einfach im Konstruktor des MemoryStreams übergeben), kann man ein Bitmap draus erzeugen (den Stream im Konstruktor des Bitmaps übergeben), welches ganz normal angezeigt werden kann.

Grüße
Christian


InfoStudent86 - Sa 23.01.10 19:56

Vielen dank für den Ansatz. Ich habe direkt mal ein bisschen in der API nachgelesen.

Meine ersten Zeilen sind jetzt

C#-Quelltext
1:
2:
3:
            WebClient client = new WebClient();
            client.Headers.Add("user-agent""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            byte[] x = client.DownloadData(@"http://latex.univie.ac.at/?x=1");



Leider kommt da schon keine Antwort bei mir an, sprich das Array ist leer. Ich habe leider noch nie etwas mit dem WebClient geschweige denn mit ASP etc gemacht.


Christian S. - Sa 23.01.10 20:07

Also bei mir funktioniert das mit dem Webclient (gerade getestet), allerdings lasse ich die Sache mit dem Header weg. Oh, und ich benutze HttpUtility.UrlEncode um den Teil mit der Formel in URL-konforme Zeichen zu verwandeln. Die HttpUtility-Klasse findest Du im Assembly System.Web.

//edit: Letzteres scheint nicht wirklich notwendig zu sein.


InfoStudent86 - Sa 23.01.10 21:45

Hi,


super geil. Ich hab es gelöst. Jetzt muss ich für eine einfache Formel nicht komplett Latex Installieren.

Für alle die dies auch gebrauchen können poste ich mal meinen sicher nicht perfekten Lösungsansatz


C#-Quelltext
1:
2:
3:
4:
5:
6:
            WebClient client = new WebClient();
            byte[] x = client.DownloadData(@"http://latex.univie.ac.at/?x=1");

            Stream s = File.Create(@"c:\test.png");
            s.Write(x, 0, x.Length);
            s.Close();