docs: private PDDocument removeText(PDPage page) throws IOException {
  
          PDFStreamParser parser = new PDFStreamParser(page);
          parser.parse();
          List<Object> tokens = parser.getTokens();
          List<Object> newTokens = new ArrayList<>();
          for (Object token : tokens) {
              if (token instanceof Operator) {
                  Operator op = (Operator) token;
                  if (op.getName().equals("TJ") || op.getName().equals("Tj")) {
                      //remove the one argument to this operator
                      newTokens.remove(newTokens.size() - 1);
                      continue;
                  }
              }
              newTokens.add(token);
          }
  
          PDDocument document = new PDDocument();
          document.addPage(page);
  
          PDStream newContents = new PDStream(document);
          OutputStream out = newContents.createOutputStream(COSName.FLATE_DECODE);
          ContentStreamWriter writer = new ContentStreamWriter(out);
          writer.writeTokens(newTokens);
          out.close();
          page.setContents(newContents);
  
          return document;
  
      }