Examples
Notes
Parameters
key | value | description |
---|---|---|
type (required) | deskew | |
fixedPoints (required) | object | Deskews the text in a skewed document by mapping the positions of three skewed points to their ideal positions in an unskewed document. Define the ideal Fixed Points using text anchors in an unskewed example of the document. Choose text anchors that form as large a triangle as possible, ideally at three corners of the document. Choosing the best points can take some trial and error. Parameters:match - the text to match for the Fixed Point. Choose “type”: “startsWith” or “type”: “endsWith” to avoid problems with lines oversplit by skew. See Match object for more details.targetPosition - contains x and y parameters that define the coordinates of the Fixed Points in inches relative to the 0,0 origin at the top left corner of the page. For more information defining the positions, see the Examples section. |
start | left , right. default: left | Specifies whether the Fixed Point is at the upper-left corner of the anchor line’s boundaries, or the upper-right corner. With a Match parameter of “type”: “startsWith”, use left.With a Match parameter of “type”: “endsWith”, use right. |
Examples
The following image shows that without the Deskew preprocessor, extraction from a skewed document fails. The Region method returns null, because the targeted date range is in an unexpected position (to the left of the anchor,tenure
) rather than in the expected position (below
):

- Define three widely spaced points in a well-aligned example of this document type: The following image shows using the displayed coordinates of a line to define the X and Y parameters for one of three Fixed Point parameters:

- Check the Deskew preprocessor against the skewed example to reveal a remaining problem:

-1963
.
- To fix this problem, apply a Merge Lines preprocessor after the Deskew preprocessor:

Example aligned document | Download link |
---|
Example skewed document | Download link |
---|
JSON
Notes
Page transformation preprocessors See the following table for preprocessors that correct page transformations:page transformation | preprocessor | notes |
---|---|---|
translation, shear, or other affine transformations in addition to or instead of rotation and scale | Deskew | Handles complex page transformations, requires advanced configuration. |
rotation | Rotate Page | If a document contains pages that are rotated but otherwise untransformed, in most cases you don’t need a preprocessor. Sensible corrects rotation automatically. If it doesn’t, configure the Rotate Page preprocessor. |
scale | Scale | If pages are affected by scale but not by affine transformations, use the Scale preprocessor as an easier-to-configure and more robust alternative to the Deskew preprocessor. |

- Click on a line in the document pane in the Sensible app to view line coordinates for defining the Fixed Points.
- Choose text anchors for Fixed Points that form as large a triangle as possible, ideally at three corners of the document. Choosing the best points can take trial and error.
- For the Match parameter, choose
"type": "startsWith"
or"type": "endsWith"
to avoid problems with lines split by skew. If you choose"endsWith"
, then also define"start:right"
. You can also define a Merge Lines preprocessor to clean up oversplit lines. - For the aligned reference document, choose a slightly enlarged version of the document so that the Fixed Points triangle is large. The Deskew preprocessor corrects scaling for smaller skewed images.