---
title: "ParseSettings"
canonical_url: "https://www.nutrient.io/api/python/settings/vision/parse-settings/"
md_url: "https://www.nutrient.io/api/python/settings/vision/parse-settings.md"
last_updated: "2026-10-26T16:51:00.819Z"
description: "Settings for Parse. Values fall back through three levels: document → SDK → built-in default."
---

Settings for Parse. Values fall back through three levels: document → SDK → built-in default. Writes target the document only when set on a document's settings, otherwise the SDK globally when set on SdkSettings.

**Tags:** `Vision`

```python

from nutrient_sdk import ParseSettings

```

## Construction

`ParseSettings` is accessed through a [`Document`](/api/python/document/) instance for per-document overrides, or via [`SdkSettings`](/api/python/settings/document/sdk-settings/) for SDK-wide defaults.

```python

# Per-document override

with Document.open("input.pdf") as doc:
    settings = doc.settings.parse_settings
    settings.some_field = new_value          # mutate fields directly

# SDK-wide default (applies to all documents)

SdkSettings.parse_settings.some_field = new_value

```

Settings are configured by writing to fields on the returned object. The settings property itself cannot be reassigned — `doc.settings.parse_settings = other_settings` is rejected.

## Properties

### emit_figure_placeholders

```python

@property
def emit_figure_placeholders(self) -> bool

@emit_figure_placeholders.setter
def emit_figure_placeholders(self, value: bool) -> None

```

Controls whether pictures that have no alt text and no extractable words emit a `[Figure]` placeholder line in the Markdown output. When enabled, such pictures are marked with the placeholder; when disabled, they emit nothing. Pictures with alt text are unaffected and always render as `![alt]()`.

**Type:** `bool`

---

### enable_inline_formatting

```python

@property
def enable_inline_formatting(self) -> bool

@enable_inline_formatting.setter
def enable_inline_formatting(self, value: bool) -> None

```

Controls whether inline text formatting is preserved in the Markdown output using Markdown or inline HTML markers for bold, italic, underline, highlight, strikethrough, superscript, and subscript text.

**Type:** `bool`

---

### enable_semantic_block_formatting

```python

@property
def enable_semantic_block_formatting(self) -> bool

@enable_semantic_block_formatting.setter
def enable_semantic_block_formatting(self, value: bool) -> None

```

Controls whether footnotes render as a blockquote (`>`) and whether pictures, charts and barcodes are emitted at all (pictures render as `![alt]()` when they carry alt text; refer to `emit_figure_placeholders` for pictures without one; charts render as their table only). When `false`, footnotes render as plain paragraphs and pictures, charts and barcodes are dropped entirely. Captions render as plain paragraphs and list items with `-` regardless.

**Type:** `bool`

---

### export_formats

```python

@property
def export_formats(self) -> list

@export_formats.setter
def export_formats(self, value: list) -> None

```

Several export formats at once. Overrides exportFormat. Supported values: json, markdown. Each format is returned as its own artifact (document.json, document.md). Over HTTP, several artifacts arrive as one TAR archive.

**Type:** `list`

---

### extract_words_from_pictures

```python

@property
def extract_words_from_pictures(self) -> bool

@extract_words_from_pictures.setter
def extract_words_from_pictures(self, value: bool) -> None

```

Controls whether words detected inside picture regions are emitted as plain text in Markdown output. This helps preserve chart labels, axis text, legends, and similar image-contained text when available.

**Type:** `bool`

---

### include_diagnostics

```python

@property
def include_diagnostics(self) -> Optional[bool]

@include_diagnostics.setter
def include_diagnostics(self, value: Optional[bool]) -> None

```

When true, emit diagnostics.json when VLM/model diagnostics were produced.

**Type:** `Optional[bool]`

---

### include_headers_and_footers

```python

@property
def include_headers_and_footers(self) -> bool

@include_headers_and_footers.setter
def include_headers_and_footers(self, value: bool) -> None

```

Controls whether running page headers and footers are included in the Markdown output. When enabled, their content (agency ids, case numbers, page numbers, letterhead) is emitted so it stays available to readers and language models. Set `emit_header_footer_markers` to also wrap it in comment markers.

**Type:** `bool`

---

### include_words

```python

@property
def include_words(self) -> Optional[bool]

@include_words.setter
def include_words(self, value: Optional[bool]) -> None

```

Include word-level details with bounding boxes

**Type:** `Optional[bool]`

---

### inverse_deskew

```python

@property
def inverse_deskew(self) -> bool

@inverse_deskew.setter
def inverse_deskew(self, value: bool) -> None

```

Indicates whether the inverse deskew transform is enabled. When disabled, bounding boxes remain in deskewed-image coordinates. Applies to the recognition pipelines only. A page-level deskew rotates the page content itself, so there are no detected coordinates to map back.

**Type:** `bool`

---

### output_directory

```python

@property
def output_directory(self) -> str

@output_directory.setter
def output_directory(self, value: str) -> None

```

Directory to write all emitted artifacts to (optional). Each artifact is written under its artifact name, for example document.json.

**Type:** `str`

---

### output_file_path

```python

@property
def output_file_path(self) -> str

@output_file_path.setter
def output_file_path(self, value: str) -> None

```

Path to write the single exported artifact to a file (optional). Fails if the chosen format emits multiple artifacts.

**Type:** `str`

---

### pretty_print

```python

@property
def pretty_print(self) -> Optional[bool]

@pretty_print.setter
def pretty_print(self, value: Optional[bool]) -> None

```

Emit indented JSON

**Type:** `Optional[bool]`

---

### use_html_tables

```python

@property
def use_html_tables(self) -> bool

@use_html_tables.setter
def use_html_tables(self, value: bool) -> None

```

Controls how tables are rendered in the Markdown output. When enabled, tables are emitted as HTML (`<table>/<tr>/<td>`) preserving row/column spans where available; when disabled, tables render as pipe-style Markdown.

**Type:** `bool`

---

---

## Related pages

- [Vision](/api/python/settings/vision.md)
- [Per-document override](/api/python/settings/vision/document-classification-settings.md)
- [Per-document override](/api/python/settings/vision/document-split-settings.md)
- [Per-document override](/api/python/settings/vision/extract-settings.md)
- [Per-document override](/api/python/settings/vision/schema-generation-settings.md)
- [Per-document override](/api/python/settings/vision/vision-settings.md)

