[[Report Generation]] provides an overview of the 'docgen' interfaces that are available for outputting documents.
[[Report API]] provides more details about the interfaces.
[https://gramps-project.org/docs/gen/gen_plug.html#module-gen.plug._docgenplugin docgen] provides a detailed specification of the interfaces.
Gramps attempts to abstract the output document format away from the report. By coding to the [https://gramps-project.org/docs/gen/gen_plug.html#module-gen.plug._docgenplugin docgen] class, the report can generate its output in the format desired by the end user. The document passed to the report (<tt>self.doc</tt>) could represent an HTML, OpenDocument, PDF or any of the other formats supported by the user. The report does not have to concern itself with the output format details, since all details are handled by the document object.