class_docstr: Compiler Report in PDF format
  
  Param:
      package (str, Optional): component package name
      module (str, Optional): component module name
      class (str): component class name
  
  Attr:
      name: report file name
      path: path to persist the report
  
  Example:
    "writers": [
      {
        "class": "Pdf",
        "attr": {
          "name": "first-simple-report",
          "path": "./sample_output"
        }
      }
    ]
class_docstr_tok: ["Compiler","Report","in","PDF","format","Param",":","package","(","str",",","Optional",")",":","component","package","name","module","(","str",",","Optional",")",":","component","module","name","class","(","str",")",":","component","class","name","Attr",":","name",":","report","file","name","path",":","path","to","persist","the","report","Example",":","``","writers","''",":","[","{","``","class","''",":","``","Pdf","''",",","``","attr","''",":","{","``","name","''",":","``","first-simple-report","''",",","``","path","''",":","``",".\/sample_output","''","}","}","]"]
docstr: PDF Report Generation
  
  Args:
      report (Report): report object
      level (int): content level
docstr_tok: ["PDF","Report","Generation","Args",":","report","(","Report",")",":","report","object","level","(","int",")",":","content","level"]
code: def __call__(self, report: Report, level=None):
      """
      PDF Report Generation
  
      Args:
          report (Report): report object
          level (int): content level
      """
      name = self.assert_attr(key="name")
      path = self.assert_attr(key="path", default="./")
      report.generate(writer=PdfWriter(name=name, path=path))
  
file_path: contextual-ai/xai/compiler/writer.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from xai.compiler.base import Dict2Obj
  from xai.formatter import Report, PdfWriter, HtmlWriter
label_desc: Use image node_id 2 for calling the Pdf obj's underlying member method code with example usage: obj.__call__(report, level) without return types