LaTeX Code in dynamisch erzeugten PDF's

sonic29

Mitglied
Hallo,

folgendes Problem:
ich habe LaTeX Code in einem String vorliegen und möchte diesen Code kompiliert in dynamisch erstellten PDF's anzeigen lassen.

Das Anzeigen eines PDF's klappt dank der Library iText ( iText ® - Free / Open Source PDF Library for Java and C# )
Doch die entsprechenden Stellen mit LaTeX Code werden unkompiliert angezeigt.
Bspw. wird dann der Code selbst angezeigt:
"Bestimmen Sie die xyz!
\begin{equation}
\psi (u) = \int_{o}^{T} \left[\frac{1}{2}
\left(\Lambda_{o}^{-1} u,u\right) + N^{\ast} (-u)\right] dt \; .
\end{equation}"
... und nicht die mathematische Formel.

Es handelt sich um eine Webanwendung. In den JavaServerPages habe ich mit Hilfe von MathJax ( http://www.mathjax.org/ ) das Kompilieren von LaTeX Code hinbekommen, so dass auf den JSP's der LaTeX Code kompiliert angezeigt wird. Mit MathJax kriege ich es aber nicht hin, den Code der PDF's zu kompilieren.

Hat jemand eine Idee?

Viele Grüße
 

Dekker

Bekanntes Mitglied
MathJax kompiliert das ganze ja auch für JavaScript, nicht für PDFs. Denke für PDFs wirste pdftex oder so aufrufen müssen.
 

sonic29

Mitglied
Soweit ich weiß ist pdftex ja ein eigenständiges Programm, das zur Erzeugung von PDF Dateien dient. Gibt es dazu eine entsprechende oder ähnliche Java Library?

Andernfalls hätte ich auf jeden Fall Probleme pdftex in Java dynamisch aufzurufen und davon Gebrauch zu machen. Geht das überhaupt?
 

AlexSpritze

Bekanntes Mitglied
Hm, also wenn du schon LaTeX Code hast, dann kannst du doch den ganzen Text in LaTeX ausgeben lassen. Du rufst also den pdf[la]tex auf:

Java:
Runtime r = Runtime.getRuntime();
Process p = r.exec("\"pfadZuPdf[la]tex\" \"pfadZurInputfile}\"");
p.waitFor(); // warten bis der Process fertig ist

Musst dann nur schauen, wo er dir die PDF hinspeichert. Aber das kann man sicherlich über weitere Optionen an pdf[la]tex angeben.
 

sonic29

Mitglied
Vielleicht jPicEdt for LaTeX? Aber habs noch nie gebraucht.

Das hört sich vielversprechend an. Werde ich mir nachher mal genauer ansehen. Ist nur die Frage zu welchem Zeitpunkt man einen Screenshot macht.


Hm, also wenn du schon LaTeX Code hast, dann kannst du doch den ganzen Text in LaTeX ausgeben lassen. Du rufst also den pdf[la]tex auf:

Java:
Runtime r = Runtime.getRuntime();
Process p = r.exec("\"pfadZuPdf[la]tex\" \"pfadZurInputfile}\"");
p.waitFor(); // warten bis der Process fertig ist

Musst dann nur schauen, wo er dir die PDF hinspeichert. Aber das kann man sicherlich über weitere Optionen an pdf[la]tex angeben.

Hier ist wohl das Problem, dass es eine Webanwendung ist und der Benutzer dann jedes Mal wenn er auf einem anderen Rechner arbeitet den Pfad zu PDFtex auswählen muss. Im Grunde genommen wäre es besser, wenn er selbst solch ein Programm gar nicht braucht.

Schonmal vielen Dank für eure Ideen. Viele Grüße
 

faetzminator

Gesperrter Benutzer
[...] eine Webanwendung ist und der Benutzer dann jedes Mal wenn er auf einem anderen Rechner arbeitet den Pfad zu PDFtex auswählen muss. Im Grunde genommen wäre es besser, wenn er selbst solch ein Programm gar nicht braucht.

Wenn es ein Applet ist, läuft der Code auf dem Client und der User benötigt eine solche Lib. Wenn es allerdings eine Hosted Java App (Websphere, Tomcat, ...) ist, dann läuft der Code sowieso auf dem Server und das externe Programm ist nur auf dem Server notwendig.
 

sonic29

Mitglied
Mein jetziger Stand ist so, dass ich die Bibliothek JLatexMath (JLaTeXMath - A Java API to render LaTeX - A Java package to display LaTeX code in mathematical mode) genommen habe und vom jeweiligen LaTeX Code ein BufferedImage erstelle, welches dann dem PDF zugefügt wird. Die Qualität des Bildes lässt aber zu Wünschen übrig und kann auf gar keinen Fall so bleiben. siehe Screenshot:
ImageShack® - Online Photo and Video Hosting

Folgender Code habe ich momentan:
Java:
TeXFormula formula = new TeXFormula(latex);
TeXIcon icon = formula.createTeXIcon(TeXConstants.STYLE_DISPLAY, 10);
icon.setInsets(new Insets(10, 10, 10, 10));
BufferedImage image = new BufferedImage(icon.getIconWidth(),  icon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR );
Graphics2D g2 = image.createGraphics();
g2.setColor(Color.white);
g2.fillRect(0, 0, icon.getIconWidth(), icon.getIconHeight());
JLabel jl = new JLabel();
jl.setForeground(new Color(0, 0, 0));
icon.paintIcon(jl, g2, 0, 0);
doc.add(Image.getInstance(image, null));

Lässt sich da etwas drehen, damit die Qualität verbessert wird? Oder liegt es evtl. an iText, dass die Qualität von Bildern in den PDF's eher schlecht ist?
Hat jemand eine bessere Idee die LaTeX Elemente in das PDF zu bekommen?

Grüße
 

sonic29

Mitglied
Ich habe eben mal ein anderes Bild ohne die JLatexMath Lib zum PDF hinzugefügt und die Qualität ist ähnlich mies wie bei dem LaTeX Beispiel.

Also liegt es wohl an iText, dass die Qualität zu Wünschen übrig lässt. Bzw. weiß ich nicht wie man jetzt die Bildqualität verbessert. iText ist ja durchaus in der Lage Bilder mit exzellenter Qualität dem PDF hinzuzufügen, wie man an diesem Beispiel sehen kann: iText in Action: example part3.chapter10.ImageTypes

Frage: Wie verbessere ich nun die Bildqualität?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R sHotEqn --> LaTeX-Code darstellen Allgemeine Java-Themen 8
E Best Practice LaTeX aus Textdateien einlesen und bearbeiten Allgemeine Java-Themen 4
W latex file erstellen Allgemeine Java-Themen 2
G Latex/Tex Bibliotheken für Java? Allgemeine Java-Themen 5
A api latex bzw. latex parser Allgemeine Java-Themen 2
M Unsicher, ob das Code richtig ist Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
schemil053 Methoden Code-Verbesserung Allgemeine Java-Themen 2
D Webarchive (war): Code verschleiern Allgemeine Java-Themen 7
D Compiler-Fehler child process exited with code 1 Allgemeine Java-Themen 1
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
OnDemand Releaseversion Tag in Code Allgemeine Java-Themen 5
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
A code wird nicht ausgeführt Allgemeine Java-Themen 3
B Bitte um Code Erklärung Allgemeine Java-Themen 5
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
OnDemand Clean Code oder Allgemeine Java-Themen 5
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
L Best Practice Auslagerung von Code = Performance Optimierung? Allgemeine Java-Themen 4
H Precompilierten code ansehen Allgemeine Java-Themen 3
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
L Ausgabe von in Echtzeit ausgeführten Code Allgemeine Java-Themen 9
Drachenbauer Wie kann ich die menge an code reduzieren? Allgemeine Java-Themen 28
Thallius Warum ist dieser Code OS abhängig? Allgemeine Java-Themen 10
S Code Erklärung Allgemeine Java-Themen 21
B Pausem im Code Allgemeine Java-Themen 2
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
F Code in Klassen bringen Allgemeine Java-Themen 4
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
F Klassen Spaghetti Code Vermeidung Allgemeine Java-Themen 16
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
J Code Page characters darstellen Allgemeine Java-Themen 12
J wie sollte man sinnvoll seinen Code aufteilen Allgemeine Java-Themen 6
I Python Code in Java Code Allgemeine Java-Themen 9
M Java (GUI) Code verdoppeln oder anzeige mehrmals anzeigen? Allgemeine Java-Themen 8
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
O Standard library nativer C code Allgemeine Java-Themen 1
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen ​ Allgemeine Java-Themen 3
N Morse Code decoder Allgemeine Java-Themen 9
O Erste Schritte Benzinverbrauch Code Hilfe Allgemeine Java-Themen 3
S Eclipse exit code 805306369 Allgemeine Java-Themen 1
Pataraca Vererbung Code einbinden Allgemeine Java-Themen 3
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
S Code 'innerhalb' des synchronen Bereichs einer BlockingQueue ausfuehren..? Allgemeine Java-Themen 7
F Verständlichkeitsproblem bei Java Code?! Allgemeine Java-Themen 2
G Eclipse Eclipse: Unreachable code Allgemeine Java-Themen 16
P Java Android Code in IOS compilieren? Allgemeine Java-Themen 9
C Code vereinfachen Allgemeine Java-Themen 2
T Hilfe bei Code Allgemeine Java-Themen 3
R Java-Code für folgene Aufgabe? Allgemeine Java-Themen 8
Prafy Best Practice Code Refaktorisierung Allgemeine Java-Themen 7
WetWer Was bedeutet/macht ein Exit-Code Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
perlenfischer1984 HTML Code decodieren Allgemeine Java-Themen 2
C ASCII-Code in Java Allgemeine Java-Themen 1
J Java-Code in DLL packen Allgemeine Java-Themen 5
J LWJGL 3 Error Code 1282 Allgemeine Java-Themen 4
0 Code startet nicht (Keine Warnung/Fehlermeldung) Allgemeine Java-Themen 4
A Frage zu meinem Code Allgemeine Java-Themen 2
B Code generierung Velocity Templates Telosys Allgemeine Java-Themen 1
E Fehlermeldung vor dem Programm code Allgemeine Java-Themen 1
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
wolfgang63 Code snipped Software Allgemeine Java-Themen 1
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
N HTTP response code: 403 Allgemeine Java-Themen 3
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
D Java Compiler code referencen Allgemeine Java-Themen 0
B Fehler im Java-Code Allgemeine Java-Themen 4
A PHP-Code zu Java-Code Allgemeine Java-Themen 5
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
X Was macht folgender Code!? Allgemeine Java-Themen 6
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
H Java Leistungssteigerung durch Code Anpassung Allgemeine Java-Themen 5
Fab1 Best Practice Vorgehensweise bestehenden Code/Programm verschönern Allgemeine Java-Themen 4
M Code optimieren Allgemeine Java-Themen 7
A jEditorPane Html Datei öffnen (code) Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben