code: public static SeekableSource onTempFileSeekableSourceFrom(InputStream stream) throws IOException {
          requireNonNull(stream);
          Path temp = Files.createTempFile("SejdaIO", null);
          Files.copy(stream, temp, StandardCopyOption.REPLACE_EXISTING);
          return new BufferedSeekableSource(new FileChannelSeekableSource(temp.toFile()) {
              @Override
              public void close() throws IOException {
                  super.close();
                  Files.deleteIfExists(temp);
              }
          });
      }
docs: Factory method to create a {@link SeekableSource} from a {@link InputStream}. The whole stream is copied to a temporary file.
  
  @param stream
  @return a {@link SeekableSource} from the given stream.
  @throws IOException