Generieren von PDFs aus XML-Kommentaren

Hintergrund

Ich schreibe viel Code in C# und verwende überall XML-Kommentare, um zu beschreiben, wie sich meine Methoden, Mitglieder und Eigenschaften verhalten.

Letztendlich möchte ich alle aus diesen Kommentaren gesammelten Informationen (zusammen mit den Methoden, Mitgliedern und Eigenschaftsnamen) zusammenstellen und ein schönes/lesbares Dokument generieren, das meine API beschreibt.

Ich weiß, dass es bereits einige Software gibt, die ähnliche Dinge tut, wie SandCastle Help-Builder. Ich möchte mich jedoch von der Verwendung von SandCastle und den Windows-Hilfedateien im Allgemeinen fernhalten.

Ich möchte eigentlich mein Dokument als PDF generieren, wenn das möglich ist.

Frage

Gibt es eine kostenlose/Open-Source-Software, mit der ich alle meine XML-Kommentare in ein schönes PDF-Dokument umwandeln kann?

"Ich möchte jedoch SandCastle und die Windows-Hilfedateien im Allgemeinen meiden." - Könnten Sie den Hintergrund ein wenig erläutern, um uns bei der Unterbreitung von Vorschlägen zu helfen? Ich frage, weil SandCastle im Grunde eine teilweise XSLT-basierte Transformation der ursprünglichen XML-Dateien ausführt, um jede Art von Ausgabeformat zu erzeugen, nicht unbedingt Windows-Hilfedateien. Beispielsweise kann es (mehr oder weniger, je nach verwendetem Stil) reine HTML-Dateien erzeugen.
Hast du dir mal doxygen angeschaut? Es unterstützt C# und auch PDF-Ausgabe (durch Generieren von LaTeX-Ausgaben, die in ein PDF konvertiert werden können).
@albert Eigentlich habe ich es getan, konnte aber nur den Quellcode dafür finden. Ich habe noch keine mit Doxygen erstellte Implementierung gesehen, die ich einfach auf meinem Code ausführen und die PDF-Ausgabe erhalten könnte. Wenn ihr so ​​etwas wisst dann lasst es mich wissen.
Es ist ziemlich einfach, Doxygen aus dem Quellcode zu erstellen, siehe www.doxygen.org für Download-Anweisungen. Anschließend müssen Sie das PDF aus Latex erstellen, was je nach Betriebssystem einige Pakete erfordert.
@albert Das würde ich gerne ausprobieren. Können Sie das, was Sie sagen, formalisieren, indem Sie eine Antwort geben, die einige grundlegende Schritte für den Einstieg enthält?

Antworten (1)

Wir haben unsere eigenen Tools, die dies tun, und es ist ziemlich komplex, aber es zeigt, dass es möglich ist. Wir machen mehr Java als C#, und natürlich sind wir ein XSLT-Shop, so dass wahrscheinlich alles unseren Ansatz färbt. Wir nehmen die apidoc.xml-Ausgabe des C#-Compilers als eine Eingabe, eine andere XML-Datei, die durch grobes Parsen des C#-Quellcodes erzeugt wurde, als zweite Eingabe und führen diese dann (unter Verwendung von XSLT) zu einer XML-Datei in einem Format zusammen, das ist kompatibel mit der Dokumentation unserer Java-APIs, die mit javadoc und jeldoclet erstellt wurden, kombinieren Sie dies mit den Java-APIs und verwandeln Sie das Ergebnis dann in eine bestimmte Variante von HTML5, die mit dem Rest unserer Dokumentation kompatibel ist, wiederum unter Verwendung von XSLT. Wir produzieren heutzutage keine PDF-Dateien, aber wir haben dies in der Vergangenheit mit XSL-FO getan.

Dies ist natürlich ein hausinternes Werkzeug und es ist nicht produktiv genug, um von anderen verwendet zu werden, aber ich dachte, ich würde es einfach beschreiben, damit Sie (a) Beweise dafür haben, dass es getan werden kann, und (b) ein Maß dafür haben Komplexität.

Wir waren generell überrascht, wie schlecht das Tooling dafür in der .NET-Welt im Vergleich zum Java-Pendant ist. Vielleicht haben sich die Dinge geändert, seit wir das alles gebaut haben, ich habe in letzter Zeit nicht nachgesehen.

Obwohl es keine PDFs macht, schaue ich mir derzeit Doxygen an. Angeblich wird es HTML generieren, und dann könnte ich die Konvertierung in ein PDF bei Bedarf immer selbst vornehmen. Danke aber für deinen Beitrag.
doxygen kann auch eine Latexausgabe und daraus ein pdf erstellen (Makefile und / oder make.bat werden ebenfalls bereitgestellt)