# Fix Image Orientation in OCR with C#
IronOCR fixes image orientation issues through rotation, deskewing, and scaling methods. Chain these transformations to correct tilted scans, upside-down documents, and improperly sized images for accurate OCR text extraction in your .NET applications.
*as-heading:2(Quickstart: Rotate-Deskew-Scale in One Line)*
Chain IronOCR's `OcrInput` methods to rotate, deskew, and scale your image in a single call - prepare images for accurate OCR without boilerplate.
```cs
:title=Correct Image Orientation Fast with IronOCR
var input = new IronOcr.OcrInput();
input.LoadImage("skewed.png");
input.Rotate(90);
input.Deskew(45);
input.Scale(150);
var result = new IronOcr.IronTesseract().Read(input);
```
<div class="hsg-featured-snippet">
<h3>Minimal Workflow (5 steps)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Download a C# library to fix image orientation</a></li>
<li>Import the PDF document and images for reading</li>
<li>Apply desired orientation correction, such as rotation, deskew, and scale</li>
<li>Export the corrected image for viewing</li>
<li>Utilize the <code>Read</code> method for OCR processing</li>
</ol>
</div>
<br class="clear" />
## How Do I Rotate Images in IronOCR?
Rotating changes image orientation by a specific angle to ensure text is upright and correctly aligned. This corrects scanned documents placed incorrectly on scanners or photos taken at awkward angles.
Pass a degree value to the `Rotate` method. Positive values rotate clockwise; negative values rotate counterclockwise. Rotation occurs around the image center point, maintaining original dimensions while adjusting content orientation.
### When Should I Use Image Rotation?
Image rotation corrects documents scanned or photographed at incorrect orientations. Common scenarios include:
- Documents scanned upside down or sideways
- Mobile photos requiring orientation change
- Multi-page documents with inconsistent page orientations
- Historical archives with varying scanning standards
- [Passport scanning](https://ironsoftware.com/csharp/ocr/how-to/read-passport/) where orientation varies
- [License plate recognition](https://ironsoftware.com/csharp/ocr/how-to/read-license-plate/) from different camera angles
For automated rotation detection, use IronOCR's `DetectPageOrientation` method which determines correct orientation through text analysis.
### What Degree Values Work Best?
Common rotation values are multiples of 90 degrees (90, 180, 270) for standard orientation issues. IronOCR supports any degree value for fine adjustments:
- **90/-270 degrees:** Landscape to portrait conversion
- **180 degrees:** Upside-down documents
- **270/-90 degrees:** Portrait to landscape conversion
- **Small angles (1-10 degrees):** Minor adjustments, though [deskewing](https://ironsoftware.com/csharp/ocr/examples/fix-image-orientation/) often works better for slight tilts
For [scanned documents](https://ironsoftware.com/csharp/ocr/how-to/read-scanned-document/) from older equipment, combine rotation with other preprocessing steps.
### How Does Rotation Affect OCR Accuracy?
Proper rotation is crucial for OCR accuracy. IronOCR's Tesseract 5 engine expects left-to-right, top-to-bottom text flow. Misaligned text causes:
- Character misrecognition
- Incorrect word boundaries
- Failed paragraph detection
- Poor [multi-language document](https://ironsoftware.com/csharp/ocr/how-to/ocr-multiple-languages/) performance
- Reduced [confidence scores](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/) in results
```csharp
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
```
Export modified images using the `SaveAsImages` method. Below shows the image before and after rotation.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-orientation-correction/paragraph_skewed.png" alt="Original skewed text document before rotation correction" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Before</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-orientation-correction/rotate_0.webp" alt="Document with 180-degree rotated text showing upside-down content that requires IronOCR rotation correction" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">After</p>
</div>
</div>
<hr />
## How Do I Deskew Tilted Images?
Deskewing straightens tilted or skewed images, correcting slant to ensure horizontal text alignment. This fixes documents placed crookedly on scanners or photos taken at slight angles.
Apply deskewing with the `Deskew` method. Pass an integer specifying maximum skew angle to correct. Higher values allow more correction but slow processing and risk errors like upside-down pages. The default 15-degree maximum handles most scenarios effectively.
### What Angle Values Should I Use for Deskewing?
Optimal deskew angles depend on document quality and requirements:
- **Default (no parameter):** Automatic detection for most documents
- **5-15 degrees:** Slightly tilted scans, balancing accuracy with speed
- **15-30 degrees:** Severely skewed documents; consider rotation for angles beyond 20 degrees
- **30+ degrees:** May over-correct; use [image filters](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/) instead
For heavily skewed documents, combine deskewing with [image optimization filters](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/). The [Filter Wizard](https://ironsoftware.com/csharp/ocr/examples/filter-wizard/) can help identify optimal preprocessing steps.
### When Is Deskewing Most Effective?
Deskewing works best on:
- Text-heavy documents with clear horizontal lines
- Forms and structured documents
- Scanned pages from books or magazines
- [Multi-page TIFF files](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/) with consistent skew
- [Financial documents](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/) requiring precise alignment
Less effective for:
- Handwritten text with irregular baselines
- Images with multiple text orientations
- Documents with heavy graphics or [tables](https://ironsoftware.com/csharp/ocr/how-to/read-table-in-document/)
- [Screenshots](https://ironsoftware.com/csharp/ocr/how-to/read-screenshot/) that are already properly aligned
### How Can I Avoid Over-Correction Issues?
Prevent deskewing problems by:
1. Starting with conservative angle limits (10-15 degrees)
2. Using [OcrResult confidence scores](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/) to validate corrections
3. Applying deskewing after rotation for compound issues
4. Testing sample documents before batch processing
5. Using [progress tracking](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/) for large batches
6. Implementing [abort tokens](https://ironsoftware.com/csharp/ocr/examples/abort-token/) for long-running operations
```csharp
// Apply deskew
imageInput.Deskew();
```
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-orientation-correction/paragraph_skewed.png" alt="Original document with noticeable tilt requiring deskew correction" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Before</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-orientation-correction/deskew_0.webp" alt="Document after deskew correction showing properly aligned horizontal text" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">After</p>
</div>
</div>
<hr />
## How Do I Scale Images for Better OCR?
Scaling resizes images to standardize dimensions for consistent text recognition. Proper scaling ensures text is neither too small to detect accurately nor too large to process efficiently.
Apply scaling with the `Scale` method using a percentage value (100% means no effect). The second parameter, `ScaleCropArea`, determines whether crop areas scale proportionally (recommended as 'true'). Use `ScaleCropArea` to preserve original DPI metadata during scaling. Scaling maintains aspect ratio to prevent text distortion.
### What Are the Optimal Scale Percentages?
Optimal scaling depends on source resolution and OCR requirements:
- **50-80%:** High-resolution scans (600+ DPI) for faster processing
- **100%:** No scaling, original dimensions
- **120-150%:** Low-resolution images to enhance character recognition
- **200%+:** Very small text, though [DPI settings](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/) may work better
Target text height of 20-30 pixels for best results. See [optimizing image DPI for Tesseract](https://ironsoftware.com/csharp/ocr/examples/ocr-image-dpi-for-tesseract/) for detailed guidance on resolution optimization.
### How Does Scaling Impact OCR Performance?
Scaling affects accuracy and speed:
- **Downscaling** (below 100%): Faster processing but may lose fine details
- **Upscaling** (above 100%): Better accuracy for small text but slower processing
- **Memory usage:** Scales quadratically with image dimensions
- **Processing time:** Increases with larger dimensions
For performance optimization, see [fast OCR configuration](https://ironsoftware.com/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/) and [multithreading for speed](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/).
### When Should I Use ScaleCropArea?
Use `ScaleCropArea` when:
- Working with specific [image regions](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/)
- Processing forms with defined fields
- Extracting [identity document](https://ironsoftware.com/csharp/ocr/troubleshooting/identity-documents/) data
- Maintaining positions for [barcode reading](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)
- Reading [MICR cheques](https://ironsoftware.com/csharp/ocr/how-to/read-micr-cheque/) with specific zones
Set to `true` unless you need original crop coordinates.
```csharp
// Apply scale
imageInput.Scale(70);
```
### How Do Different Scale Values Compare?
The comparison below shows how scaling affects dimensions and text clarity. Moderate scaling maintains readability while adjusting processing requirements:
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/ocr/how-to/image-orientation-correction/size-comparison.webp" alt="Comparison showing text document at 50%, 100%, and 150% scale demonstrating size differences" class="img-responsive add-shadow" />
</div>
<div class="center-image-wrapper">
<img src="/static-assets/ocr/how-to/image-orientation-correction/size-comparison2.webp" alt="Side-by-side comparison of text rendered at different scales showing OCR quality retention in 3D perspective" class="img-responsive add-shadow" />
</div>
</div>
## What Are the Best Practices for Combined Corrections?
Apply corrections in this order for optimal results:
1. **Rotation** first for major orientation issues
2. **Deskewing** to fine-tune alignment
3. **Scaling** to optimize OCR processing
This sequence ensures each correction builds upon the previous without compounding errors. For complex processing needs, explore IronOCR's comprehensive image filters and [image quality correction tools](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/).
### How Do I Combine All Orientation Corrections?
Chain multiple corrections for comprehensive image preparation:
```csharp
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;
```
### Which Additional Preprocessing Improves Results?
Beyond orientation correction, consider these enhancements:
- [Color correction](https://ironsoftware.com/csharp/ocr/how-to/image-color-correction/) for faded documents
- [Quality filters](https://ironsoftware.com/csharp/ocr/tutorials/c-sharp-ocr-image-filters/) for noise reduction
- [Computer vision](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/) for text location
- [Highlight text debugging](https://ironsoftware.com/csharp/ocr/examples/highlight-texts-for-debugging/) to verify corrections
For batch processing, implement [async support](https://ironsoftware.com/csharp/ocr/how-to/async/) to handle multiple documents efficiently. Monitor processing with [timeouts](https://ironsoftware.com/csharp/ocr/examples/timeouts/) for large operations.
### How Can I Export Corrected Images?
Export processed images for verification or further use:
- Single images: `SaveAsImages()` method
- [Searchable PDFs](https://ironsoftware.com/csharp/ocr/how-to/searchable-pdf/) with embedded text
- [hOCR HTML export](https://ironsoftware.com/csharp/ocr/how-to/html-hocr-export/) for web integration
- [PDF streams](https://ironsoftware.com/csharp/ocr/examples/ocr-for-pdf-stream/) for cloud storage
Test corrections with [simple one-line OCR](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/) before implementing complex workflows.
IronOCR fixes image orientation issues through rotation, deskewing, and scaling methods. Chain these transformations to correct tilted scans, upside-down documents, and improperly sized images for accurate OCR text extraction in your .NET applications.
Quickstart: Rotate-Deskew-Scale in One Line
Chain IronOCR's OcrInput methods to rotate, deskew, and scale your image in a single call - prepare images for accurate OCR without boilerplate.
1Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr
Install-Package IronOcr
2Copy and run this code snippet.
var input = new IronOcr.OcrInput();input.LoadImage("skewed.png");input.Rotate(90);input.Deskew(45);input.Scale(150);var result = new IronOcr.IronTesseract().Read(input);
var input = new IronOcr.OcrInput();
input.LoadImage("skewed.png");
input.Rotate(90);
input.Deskew(45);
input.Scale(150);
var result = new IronOcr.IronTesseract().Read(input);
C#
3Deploy to test on your live environment
Start using IronOCR in your project today with a free trial
Apply desired orientation correction, such as rotation, deskew, and scale
Export the corrected image for viewing
Utilize the Read method for OCR processing
How Do I Rotate Images in IronOCR?
Rotating changes image orientation by a specific angle to ensure text is upright and correctly aligned. This corrects scanned documents placed incorrectly on scanners or photos taken at awkward angles.
Pass a degree value to the Rotate method. Positive values rotate clockwise; negative values rotate counterclockwise. Rotation occurs around the image center point, maintaining original dimensions while adjusting content orientation.
When Should I Use Image Rotation?
Image rotation corrects documents scanned or photographed at incorrect orientations. Common scenarios include:
Documents scanned upside down or sideways
Mobile photos requiring orientation change
Multi-page documents with inconsistent page orientations
Historical archives with varying scanning standards
For automated rotation detection, use IronOCR's DetectPageOrientation method which determines correct orientation through text analysis.
What Degree Values Work Best?
Common rotation values are multiples of 90 degrees (90, 180, 270) for standard orientation issues. IronOCR supports any degree value for fine adjustments:
90/-270 degrees: Landscape to portrait conversion
180 degrees: Upside-down documents
270/-90 degrees: Portrait to landscape conversion
Small angles (1-10 degrees): Minor adjustments, though deskewing often works better for slight tilts
For scanned documents from older equipment, combine rotation with other preprocessing steps.
How Does Rotation Affect OCR Accuracy?
Proper rotation is crucial for OCR accuracy. IronOCR's Tesseract 5 engine expects left-to-right, top-to-bottom text flow. Misaligned text causes:
using IronOcr;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Add imageusing var imageInput = new OcrImageInput("paragraph_skewed.png");// Rotate the image 180 degrees clockwiseimageInput.Rotate(180);// Export the modified imageimageInput.SaveAsImages("rotate");
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
ImportsIronOcr' Instantiate IronTesseractDim ocrTesseract As New IronTesseract()' Add imageUsing imageInput = New OcrImageInput("paragraph_skewed.png") ' Rotate the image 180 degrees clockwise imageInput.Rotate(180) ' Export the modified image imageInput.SaveAsImages("rotate")EndUsing
Imports IronOcr
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput = New OcrImageInput("paragraph_skewed.png")
' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)
' Export the modified image
imageInput.SaveAsImages("rotate")
End Using
Export modified images using the SaveAsImages method. Below shows the image before and after rotation.
Before
After
How Do I Deskew Tilted Images?
Deskewing straightens tilted or skewed images, correcting slant to ensure horizontal text alignment. This fixes documents placed crookedly on scanners or photos taken at slight angles.
Apply deskewing with the Deskew method. Pass an integer specifying maximum skew angle to correct. Higher values allow more correction but slow processing and risk errors like upside-down pages. The default 15-degree maximum handles most scenarios effectively.
What Angle Values Should I Use for Deskewing?
Optimal deskew angles depend on document quality and requirements:
Default (no parameter): Automatic detection for most documents
5-15 degrees: Slightly tilted scans, balancing accuracy with speed
Implementing abort tokens for long-running operations
// Apply deskewimageInput.Deskew();
// Apply deskew
imageInput.Deskew();
' Apply deskewimageInput.Deskew()
' Apply deskew
imageInput.Deskew()
Before
After
How Do I Scale Images for Better OCR?
Scaling resizes images to standardize dimensions for consistent text recognition. Proper scaling ensures text is neither too small to detect accurately nor too large to process efficiently.
Apply scaling with the Scale method using a percentage value (100% means no effect). The second parameter, ScaleCropArea, determines whether crop areas scale proportionally (recommended as 'true'). Use ScaleCropArea to preserve original DPI metadata during scaling. Scaling maintains aspect ratio to prevent text distortion.
What Are the Optimal Scale Percentages?
Optimal scaling depends on source resolution and OCR requirements:
50-80%: High-resolution scans (600+ DPI) for faster processing
100%: No scaling, original dimensions
120-150%: Low-resolution images to enhance character recognition
200%+: Very small text, though DPI settings may work better
Target text height of 20-30 pixels for best results. See optimizing image DPI for Tesseract for detailed guidance on resolution optimization.
How Does Scaling Impact OCR Performance?
Scaling affects accuracy and speed:
Downscaling (below 100%): Faster processing but may lose fine details
Upscaling (above 100%): Better accuracy for small text but slower processing
Memory usage: Scales quadratically with image dimensions
Set to true unless you need original crop coordinates.
// Apply scaleimageInput.Scale(70);
// Apply scale
imageInput.Scale(70);
' Apply scaleimageInput.Scale(70)
' Apply scale
imageInput.Scale(70)
How Do Different Scale Values Compare?
The comparison below shows how scaling affects dimensions and text clarity. Moderate scaling maintains readability while adjusting processing requirements:
What Are the Best Practices for Combined Corrections?
Apply corrections in this order for optimal results:
Rotation first for major orientation issues
Deskewing to fine-tune alignment
Scaling to optimize OCR processing
This sequence ensures each correction builds upon the previous without compounding errors. For complex processing needs, explore IronOCR's comprehensive image filters and image quality correction tools.
How Do I Combine All Orientation Corrections?
Chain multiple corrections for comprehensive image preparation:
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */using IronOcr;// Create OCR engine with optimized configurationIronTesseract ocrTesseract = new IronTesseract();// Load and process image with all correctionsusing var imageInput = new OcrImageInput("skewed_document.png");// Apply corrections in optimal sequenceimageInput .Rotate(90) // Fix major orientation .Deskew(15) // Correct minor tilts .Scale(150, true); // Enhance for OCR// Perform OCR on corrected imageOcrResult result = ocrTesseract.Read(imageInput);// Access extracted textstring extractedText = result.Text;
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;
ImportsIronOcr' Create OCR engine with optimized configurationDim ocrTesseract As New IronTesseract()' Load and process image with all correctionsUsing imageInput As New OcrImageInput("skewed_document.png") ' Apply corrections in optimal sequence imageInput _ .Rotate(90) _ ' Fix major orientation .Deskew(15) _ ' Correct minor tilts .Scale(150, True) ' Enhance for OCR ' Perform OCR on corrected image Dim result AsOcrResult = ocrTesseract.Read(imageInput) ' Access extracted text Dim extractedText AsString = result.TextEndUsing
Imports IronOcr
' Create OCR engine with optimized configuration
Dim ocrTesseract As New IronTesseract()
' Load and process image with all corrections
Using imageInput As New OcrImageInput("skewed_document.png")
' Apply corrections in optimal sequence
imageInput _
.Rotate(90) _ ' Fix major orientation
.Deskew(15) _ ' Correct minor tilts
.Scale(150, True) ' Enhance for OCR
' Perform OCR on corrected image
Dim result As OcrResult = ocrTesseract.Read(imageInput)
' Access extracted text
Dim extractedText As String = result.Text
End Using
Which Additional Preprocessing Improves Results?
Beyond orientation correction, consider these enhancements:
Test corrections with simple one-line OCR before implementing complex workflows.
Frequently Asked Questions
How can I correct image orientation using IronOCR in C#?
IronOCR provides methods such as Rotate, Deskew, and Scale to correct image orientation issues like tilted scans or upside-down documents in C#. You can chain these transformations to prepare images for accurate OCR text extraction within your .NET applications.
What is the purpose of rotating images in IronOCR?
Rotating images with IronOCR ensures the text is upright and correctly aligned, which is essential for accurate OCR processing. You can use the Rotate method to adjust image orientation by a specified angle, improving text recognition.
When should I apply deskewing to images in IronOCR?
Deskewing is most effective for straightening tilted or skewed images, ensuring horizontal text alignment. It's best used on text-heavy documents or forms scanned at slight angles, such as receipts or structured forms.
What scale percentages are optimal for OCR with IronOCR?
Optimal scale percentages depend on the source image resolution. For high-resolution scans, 50-80% helps speed up processing, while 120-150% is ideal for enhancing character recognition in low-resolution images.
How do rotation and scaling affect OCR accuracy in IronOCR?
Proper rotation is crucial for OCR accuracy as it aligns the text correctly for the Tesseract engine. Scaling ensures text is appropriately sized for recognition, balancing processing speed and accuracy.
What are the best practices for combining image corrections in IronOCR?
For optimal results, apply corrections in the order: first, use rotation for major orientation issues; second, deskew to fine-tune alignment; lastly, apply scaling to standardize dimensions for consistent OCR processing.
How can I automate the detection of page orientation in IronOCR?
IronOCR's DetectPageOrientation method automatically determines the correct image orientation through text analysis, simplifying the preprocessing workflow and improving OCR accuracy.
Can IronOCR handle multi-page documents with different orientations?
Yes, IronOCR can process multi-page documents with various orientations by applying rotation, deskewing, and scaling corrections to each page, ensuring consistent OCR results across the entire document.
What additional preprocessing can enhance OCR results in IronOCR?
Beyond orientation correction, applying color correction, quality filters, and computer vision techniques can further improve OCR results. IronOCR also supports async operations for batch processing efficiency.
How can I export corrected images or OCR results using IronOCR?
Corrected images can be exported using the SaveAsImages method, while OCR results can be saved as searchable PDFs, hOCR HTML for web integration, or PDF streams for cloud storage.
Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.