---
title: "Rotate pages in a multipage TIFF using OCR and C#"
canonical_url: "https://www.nutrient.io/guides/dotnet/samples/auto-rotate-tiff-cs/"
md_url: "https://www.nutrient.io/guides/dotnet/samples/auto-rotate-tiff-cs.md"
last_updated: "2026-05-21T17:12:02.215Z"
description: "Learn how to use Tesseract OCR to automatically rotate multipage TIFF files and save them efficiently. Includes a C# code example for implementation."
---

# Automatically rotate pages of a multipage TIFF file using OCR and C#

This example shows how to automatically rotate pages of a multipage TIFF file with help of the OCR Tesseract engine method. After the successful rotation of all pages, the source file is saved to the destination file.

[Get Started](https://www.nutrient.io/sdk/dotnet/getting-started.md)

[All Samples](https://www.nutrient.io/guides/dotnet/samples.md)

[Download](https://www.nutrient.io/guides/dotnet/downloads.md)

[Launch Demo](https://www.nutrient.io/demo/)

---

### C#

[C#](https://www.nutrient.io/guides/dotnet/samples/auto-rotate-tiff-cs.md)

### VB.NET

[VB.NET](https://www.nutrient.io/guides/dotnet/samples/auto-rotate-tiff-vbnet.md)

```cs

// We assume that GdPicture has been correctly installed and unlocked.
string filepath = "multipage.tif";
string destpath = "output.tif";
string DICT_PATH = "C:\\GdPicture.NET 14\\Redist\\OCR"; // Specify your path.
OCRLanguage LANG = OCRLanguage.English; // Specify your language.

GdPictureStatus status;
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
   bool hasRotation = false;
   int imageID = gdpictureImaging.CreateGdPictureImageFromFile(filepath);
   status = gdpictureImaging.GetStat();
   if (status == GdPictureStatus.OK)
   {
	  int pageCount = gdpictureImaging.GetPageCount(imageID);
	  for (int i = 1; i <= pageCount; i++)
	  {
		 status = gdpictureImaging.SelectPage(imageID, i);
		 if (status == GdPictureStatus.OK)
		 {
			using (GdPictureOCR gdpictureOCR = new GdPictureOCR())
			{
			   gdpictureOCR.ResourceFolder = DICT_PATH;
			   gdpictureOCR.AddLanguage(LANG);
			   status = gdpictureOCR.SetImage(imageID);
			   int pageRotation = gdpictureOCR.GetOrientation();
			   if (pageRotation!= 0)
			   {
				  hasRotation = true;
				  status = gdpictureImaging.RotateAngle(imageID, 360 - pageRotation);
			   }
			}
		 }
		 if (status!= GdPictureStatus.OK)
		 {
			MessageBox.Show("Error: " + status, "Rotation + OCR Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
			break;
		 }
	  }
	  if (status == GdPictureStatus.OK)
	  {
		 if (hasRotation)
		 {
			status = gdpictureImaging.TiffSaveMultiPageToFile(imageID, destpath, TiffCompression.TiffCompressionAUTO);
			if (status == GdPictureStatus.OK)
			   MessageBox.Show("Done!", "Rotation + OCR Example", MessageBoxButtons.OK, MessageBoxIcon.Information);
			else
			   MessageBox.Show("Error: " + status, "Rotation + OCR Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
		 }
		 else
		 {
			System.IO.File.Copy(filepath, destpath);
		 }
	  }
	  gdpictureImaging.ReleaseGdPictureImage(imageID);
   }
}

```

This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.

---

## Related pages

- [Saving images into folders based on their barcode](/guides/dotnet/samples/barcode-auto-sorting-vbnet.md)
- [Generate a multipage TIFF file using a compression mode per page in C#](/guides/dotnet/samples/create-multipage-tiff-cs.md)
- [Automatically rotate pages of a multipage TIFF file using OCR and VB.NET](/guides/dotnet/samples/auto-rotate-tiff-vbnet.md)
- [Saving images into folders based on their barcode](/guides/dotnet/samples/barcode-auto-sorting-cs.md)
- [Converting a Microsoft Word binary file document (DOC) to a Microsoft Word OpenXML document (DOCX) in C#](/guides/dotnet/samples/doc-to-docx-cs.md)
- [Convert PDFs, MS Office, and images to TIFF in C#](/guides/dotnet/samples/convert-to-tiff-cs.md)
- [Using an external OCR engine during PDF/OCR generation](/guides/dotnet/samples/integrate-omnipage-ocr-cs.md)
- [Merging two PDF documents by alternating pages from both files in C#](/guides/dotnet/samples/merge-pdf-alternate-pages-cs.md)
- [Merging two PDF documents by alternating pages from both files in VB.NET](/guides/dotnet/samples/merge-pdf-alternate-pages-vbnet.md)
- [Recompress an existing PDF using color detection in C#](/guides/dotnet/samples/recompress-pdf-cs.md)
- [Converting a multipage PDF to a multipage TIFF using color detection in C#](/guides/dotnet/samples/pdf-to-tiff-color-detection-cs.md)
- [Converting a multipage PDF to a multipage TIFF using color detection in VB.NET](/guides/dotnet/samples/pdf-to-tiff-color-detection-vbnet.md)
- [Recompress existing PDFs using MRC compression in C#](/guides/dotnet/samples/recompress-pdf-mrc-cs.md)
- [Recompress existing PDFs using MRC compression in VB.NET](/guides/dotnet/samples/recompress-pdf-mrc-vbnet.md)
- [Highlight and crop an image in C#](/guides/dotnet/samples/select-image-crop-area-cs.md)
- [Recompress an existing PDF using color detection in VB.NET](/guides/dotnet/samples/recompress-pdf-vbnet.md)
- [Highlight and crop an image in VB.NET](/guides/dotnet/samples/select-image-crop-area-vbnet.md)
- [Highlight a region in a PDF or an image in C#](/guides/dotnet/samples/select-pdf-image-region-cs.md)
- [Highlight a region in PDF or an image in VB.NET](/guides/dotnet/samples/select-pdf-image-region-vbnet.md)
- [Save bitonal TIFFs with VB.NET using photometric 0](/guides/dotnet/samples/tiff-photometric-vbnet.md)
- [Choosing the appropriate OCR zone in C#](/guides/dotnet/samples/select-ocr-zone-cs.md)
- [Save bitonal TIFF images with C# and CCITT4](/guides/dotnet/samples/tiff-photometric-cs.md)
- [Choosing the appropriate OCR zone in VB.NET](/guides/dotnet/samples/select-ocr-zone-vbnet.md)
- [Convert a multipage TIFF to a multipage JBIG2 in C#](/guides/dotnet/samples/tiff-to-jbig2-cs.md)
- [Convert a multipage TIFF to a multipage JBIG2 in VB.NET](/guides/dotnet/samples/tiff-to-jbig2-vbnet.md)

