Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# `Buffer`

`Buffer` objects are used for working with binary data. They can be used much like arrays, but are much more efficient since they only store bytes.

new Buffer()

  Constructor method.

  Create a new empty buffer.

  Returns:

    `Buffer`.

  EXAMPLE

      var buffer = new mupdf.Buffer();

new Buffer(original)

  Constructor method.

  Create a new buffer with a copy of the data from the original buffer.

  Arguments:

    - original – `Buffer`.

  Returns:

    `Buffer`.

  EXAMPLE

      var buffer = new mupdf.Buffer(buffer);

readFile(fileName)

  mutool only

  Constructor method.

  Create a new buffer with the contents of a file.

  Arguments:

    - fileName – The path to the file to read.

  Returns:

    `Buffer`.

  EXAMPLE

      var buffer = mupdf.readFile("my_file.pdf");

Instance properties

`length`

> mutool only

> The number of bytes in the buffer. `Read-only`.

`[n]`

> mutool only

> Read/write the byte at index ‘n’. Will throw exceptions on out of bounds accesses.

> EXAMPLE

>     var byte = buffer[0];

Instance methods

getLength()

  wasm only

  Returns the number of bytes in the buffer. `Read-only`.

  Returns:

    `Integer`.

  EXAMPLE

      var length = buffer.getLength();

writeByte(b)

  Append a single byte to the end of the buffer.

  Arguments:

    - b – The byte value. Only the least significant 8 bits of the value are appended to the buffer.

  EXAMPLE

      buffer.writeByte(0x2a);

readByte(at)

  wasm only

  Read the byte at the supplied index.

  Arguments:

    - at – `Integer`.

  EXAMPLE

      buffer.readByte(0);

writeRune(c)

  mutool only

  Encode a unicode character as UTF-8 and append to the end of the buffer.

  Arguments:

    - c – The character unicode codepoint.

  EXAMPLE

      buffer.writeRune(0x4f60); // To append U+4f60
      buffer.writeRune(0x597d); // To append U+597d
      buffer.writeRune(0xff01); // To append U+ff01

writeLine(...)

  Append arguments to the end of the buffer, separated by spaces, ending with a newline.

  Arguments:

    - ... – List of arguments.

  EXAMPLE

      buffer.writeLine("a line");

write(...)

  Append arguments to the end of the buffer, separated by spaces.

  Arguments:

    - ... – List of arguments.

  EXAMPLE

      buffer.write("hello", "world");

writeBuffer(data)

  Append the contents of the `data` buffer to the end of the buffer.

  Arguments:

    - data – Data buffer.

  EXAMPLE

      buffer.writeBuffer(anotherBuffer);

slice(start end)

  Create a new buffer containing a (subset of) the data in this buffer. Start and end are offsets from the beginning of this buffer, and if negative from the end of this buffer.

  Arguments:

    - start – Start index.

    - end – End index.

  Returns:

    `Buffer`.

  EXAMPLE

      var buffer = new Buffer();
      buffer.write("hello", "world"); // buffer contains "hello world"
      var newBuffer = buffer.slice(1, -1); // newBuffer contains "ello worl"

save(fileName)

  mutool only

  Write the contents of the buffer to a file.

  Arguments:

    - fileName – Filename to save to.

  EXAMPLE

      buffer.save("my_buffer_filename");

asUint8Array()

  wasm only

  Returns the buffer as a `Uint8Array`.

  Returns:

    `Uint8Array`.

  EXAMPLE

      var arr = buffer.asUint8Array();

asString()

  wasm only

  Returns the buffer as a `String`.

  Returns:

    `String`.

  EXAMPLE

      var str = buffer.asString();