Here a code snippet that demonstrates how to rotate page of a multipage tiff document.
Code: Select all
private void button1_Click(object sender, EventArgs e)
{
autoRotate("d:\\multipage.tif", "d:\\output.tif");
}
private const string DICT_PATH = @"D:\GdPicture\redist\ocr";
private const string LANG = "eng";
private static GdPictureStatus autoRotate(string filePath, string destPath)
{
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)
{
int pageRotation = gdpictureImaging.OCRTesseractGetOrientation(imageID, LANG, DICT_PATH);
if (pageRotation != 0)
{
hasRotation = true;
status = gdpictureImaging.RotateAngle(imageID, 360 - pageRotation);
}
}
if (status != GdPictureStatus.OK)
{
break;
}
}
if (status == GdPictureStatus.OK)
{
if (hasRotation)
{
status = gdpictureImaging.TiffSaveMultiPageToFile(imageID, destPath, TiffCompression.TiffCompressionAUTO);
}
else
{
System.IO.File.Copy(filePath, destPath);
}
}
gdpictureImaging.ReleaseGdPictureImage(imageID);
}
}
return status;
}