Functions:documentParser - bettyblocks/cli GitHub Wiki

Document Parser

Description

The documentParser function is an asynchronous function that takes in DocumentParserArguments as a parameter and returns a Promise that resolves to DocumentParserResult. It is used to parse a document and extract the text content from it.

Parameters

interface DocumentParserArguments {
  document: string | ArrayBuffer; // document URL or a Buffer containing a file
  parserOptions?: {
    forceImage?: boolean;
    density?: number;
  };
}

interface DocumentParserResult {
  result: string;
}

Parser options

The parserOptions have two optional options. Density specifies the image resolution. The higher the density, the better the quality of the output will be. However, higher density also means slower processing. Force image forces the document to be scanned as an image. Sometimes this can result in a better output.

Returns

A Promise that resolves to DocumentParserResult which is an object that contains the result which is the extracted text from the parsed document.

Examples

with url or file property

const isFileProperty = (value) =>
  value && typeof value === 'object' && 'url' in value;

const parseDocument = async ({ document, density, forceImage }) => {
  const url = isFileProperty(document) ? document?.url : document;

  const { result } = await documentParser({
    document: url,
    parseOptions: { density, forceImage },
  });

  return {
    result,
  };
};

export default parseDocument;

with ArrayBuffer

const customDocumentParser = async ({ document }) => {
  const customOpts = {
    // your custom fetch options
  };

  let response = await fetch(document, customOpts);

  const { result } = await documentParser({
    document: response.blob().buffer,
    parseOptions: {
      // same options are avaible as in the example above
    },
  });

  return {
    result,
  };
};

export default customDocumentParser;