code: def export(self, fileName=None, toBytes=False, copy=False):
      if toBytes is False and copy is False and fileName is None:
          self.fileSaveDialog(
              filter=f"{translate('Exporter', 'Scalable Vector Graphics')} (*.svg)"
          )
          return
  
      ## Qt's SVG generator is not complete. (notably, it lacks clipping)
      ## Instead, we will use Qt to generate SVG for each item independently,
      ## then manually reconstruct the entire document.
      options = {ch.name(): ch.value() for ch in self.params.children()}
      options["background"] = self.params["background"]
      options["width"] = self.params["width"]
      options["height"] = self.params["height"]
      xml = generateSvg(self.item, options)
      if toBytes:
          return xml.encode("UTF-8")
      elif copy:
          md = QtCore.QMimeData()
          md.setData(
              "image/svg+xml", QtCore.QByteArray(xml.encode("UTF-8"))
          )
          QtWidgets.QApplication.clipboard().setMimeData(md)
      else:
          with open(fileName, "wb") as fh:
              fh.write(xml.encode("utf-8"))
  
imports: import contextlib
  import re
  import xml.dom.minidom
  import numpy
  from ..None import PlotCurveItem, ScatterPlotItem, debug
  from ..None import functions
  from ..parametertree import Parameter
  from ..Qt import QtCore, QtGui, QtSvg, QtWidgets
  from .Exporter import Exporter
label_desc: Use image node_id 5 for calling the SVGExporter obj's underlying member method code with example usage: obj.export(fileName, toBytes, copy) and returns: xml