Generación de archivos PDF a partir de comentarios XML

Fondo

Escribo mucho código en C# y uso comentarios XML por todas partes para describir cómo se comportan mis métodos, miembros y propiedades.

En última instancia, me gustaría recopilar toda la información recopilada a partir de estos comentarios (junto con los métodos, miembros y nombres de propiedades) y generar un documento agradable y legible que describa mi API.

Sé que ya hay algún software que hace cosas similares, como el constructor de ayuda SandCastle. Sin embargo, me gustaría evitar usar SandCastle y los archivos de ayuda de Windows en general.

De hecho, me gustaría generar mi documento como PDF si eso es posible.

Pregunta

¿Existe algún software gratuito o de código abierto para convertir todos mis comentarios XML en un buen documento PDF?

"Sin embargo, me gustaría evitar usar SandCastle y los archivos de ayuda de Windows en general". - ¿Podría elaborar un poco sobre los antecedentes de esto, para ayudarnos a hacer sugerencias? Lo pregunto porque SandCastle básicamente ejecuta una transformación parcialmente basada en XSLT de los archivos Xml originales para producir cualquier tipo de formato de salida, no necesariamente archivos de ayuda de Windows. Por ejemplo, puede generar (más o menos, según el estilo utilizado) archivos HTML sin formato.
¿Le echaste un vistazo a doxygen? es compatible con C # y también con salida en pdf (a través de la generación de salida LaTeX que se puede convertir a un pdf).
@albert En realidad lo hice, pero solo pude encontrar el código fuente. Todavía tengo que ver alguna implementación creada con Doxygen que pueda ejecutar en mi código y obtener la salida en PDF. Si sabes algo así, házmelo saber.
Es bastante fácil construir doxygen desde la fuente, consulte www.doxygen.org para obtener instrucciones de descarga. Luego, debe compilar el pdf desde Latex, lo que requiere algunos paquetes según su sistema operativo.
@albert Me gustaría intentarlo. ¿Puedes formalizar lo que estás diciendo arrojando una respuesta que incluya algunos pasos básicos para comenzar?

Respuestas (1)

Tenemos nuestras propias herramientas que hacen esto, y es bastante complejo, pero demuestra que se puede hacer. Trabajamos Java más que C# y, por supuesto, somos una tienda XSLT, por lo que probablemente todo influye en nuestro enfoque. Tomamos la salida apidoc.xml del compilador de C# como una entrada, otro archivo XML producido por un análisis crudo del código fuente de C# como una segunda entrada, luego los fusionamos (usando XSLT) en un archivo XML en un formato que es compatible con la documentación de nuestras API de Java producidas con javadoc y jeldoclet, combine esto con las API de Java y luego convierta el resultado en un sabor particular de HTML5 que sea compatible con el resto de nuestra documentación, nuevamente usando XSLT. No producimos PDF en estos días, pero lo hemos hecho en el pasado, usando XSL-FO.

Esto, por supuesto, es una herramienta interna y no está lo suficientemente elaborado para que nadie más lo use, pero pensé en describirlo para que (a) tenga evidencia de que se puede hacer, y (b) una medida de la complejidad.

En general, nos sorprendió lo deficientes que son las herramientas para esto en el mundo .NET en comparación con el equivalente de Java. Quizás las cosas han cambiado desde que construimos todo esto, no he mirado recientemente.

Aunque no hará archivos PDF, actualmente estoy mirando Doxygen. Supuestamente generará HTML, y luego siempre podría hacer la conversión yo mismo a un PDF si es necesario. Gracias por tu aporte.
doxygen también puede crear una salida de látex y, a partir de esto, un pdf (también se proporciona Makefile y/o make.bat)