code: def partial_page(self, page, used_labels):
          
          # Check the page number is valid.
          if page <= self.page_count:
              raise ValueError("Page {0:d} has already started, cannot mark used labels now.".format(page))
  
          # Add these to any existing labels marked as used.
          used = self._used.get(page, set())
          for row, column in used_labels:
              # Check the index is valid.
              if row < 1 or row > self.specs.rows:
                  raise IndexError("Invalid row number: {0:d}.".format(row))
              if column < 1 or column > self.specs.columns:
                  raise IndexError("Invalid column number: {0:d}.".format(column))
  
              # Add it.
              used.add((int(row), int(column)))
  
          # Save the details.
          self._used[page] = used
docs: Allows a page to be marked as already partially used so you can
          generate a PDF to print on the remaining labels.
  
          Parameters
          ----------
          page: positive integer
              The page number to mark as partially used. The page must not have
              already been started, i.e., for page 1 this must be called before
              any labels have been started, for page 2 this must be called before
              the first page is full and so on.
          used_labels: iterable
              An iterable of (row, column) pairs marking which labels have been
              used already. The rows and columns must be within the bounds of the
              sheet.