Configuration

Converter Options

The ConverterOptions interface provides configuration options to customize the conversion behavior.

Interface Definition

interface ConverterOptions {
  fileName?: string;
  forceExtension?: string;
  url?: string;
  ocr?: boolean | OCROptions;
  doc?: DocOptions;
}

Options

fileName

Example:

const buffer = readFileSync('./document.pdf');
const markdown = await convertToMarkdown(buffer, {
  fileName: 'document.pdf'
});

forceExtension

Example:

// Force treat as PDF even if detection fails
const markdown = await convertToMarkdown(buffer, {
  forceExtension: '.pdf'
});

Supported Extensions:


url

Example:

// Convert YouTube page
const markdown = await convertToMarkdown(htmlBuffer, {
  url: 'https://www.youtube.com/watch?v=...'
});

// Convert Bing search results
const markdown = await convertToMarkdown(htmlBuffer, {
  url: 'https://www.bing.com/search?q=...'
});

ocr

Example:

const markdown = await convertToMarkdown("scan.pdf", {
  ocr: {
    provider: "handler",
    pdfMode: "auto",
    handler: async (buffer, context) => myOcr(buffer, context),
  },
});

See Type Definitions for OCROptions, OCRHandler, and OCRHandlerContext.


doc

The default output contains body text plus non-empty headers and footnotes. For Buffer or plain-base64 DOC input, set fileName or forceExtension: '.doc' so the converter can distinguish the shared Compound File container from other legacy Office formats.

Property Type Default Description
includeHeaders boolean true Include non-empty headers under ## Document headers.
includeFootnotes boolean true Include non-empty footnotes under ## Footnotes.
maxInputBytes number 25 MiB DOC byte limit; maximum 50 MiB. Applies before configured base64 DOC input is decoded.
maxOutputChars number 2,000,000 Markdown character limit; maximum 4,000,000.
const markdown = await convertToMarkdown(docBase64, {
  fileName: 'policy.doc',
  doc: {
    includeFootnotes: false,
    maxInputBytes: 10 * 1024 * 1024,
  },
});

See Error Handling for controlled DOC conversion errors.

Usage Examples

Combining Options

You can combine multiple options:

const markdown = await convertToMarkdown(buffer, {
  fileName: 'document.pdf',
  forceExtension: '.pdf',
});

Buffer with Format Detection

When working with buffers without extension information:

const buffer = getSomeBuffer();
const markdown = await convertToMarkdown(buffer, {
  fileName: 'unknown-file.pdf'  // Helps detect it's a PDF
});

Web Content Conversion

For web-scraped content:

const htmlContent = await fetchWebPage(url);
const markdown = await convertToMarkdown(htmlContent, {
  url: url  // Enables special handling for known sites
});

Default Behavior

When no options are provided:

See Also