Converting a multipage PDF to a multipage TIFF using color detection in C#
This example shows how to convert an existing PDF document to a multipage TIFF file using the color detection plugin to produce the best quality output while keeping the output file size as low as possible.
//We assume that GdPicture has been correctly installed and unlocked.const string INPUT_DOCUMENT = "input.pdf";const string OUTPUT_DOCUMENT = "output.tif";const float DPI = 200F;GdPicturePDF oGdPicturePDF = new GdPicturePDF();GdPictureImaging oGdPictureImaging = new GdPictureImaging();if (oGdPicturePDF.LoadFromFile(INPUT_DOCUMENT, false) == GdPictureStatus.OK){ int tiffID = 0; for (int i = 0; i < oGdPicturePDF.GetPageCount(); i++) { oGdPicturePDF.SelectPage(i + 1); //Rasterizing a page or extracting a page bitmap. int rasterPage = oGdPicturePDF.RenderPageToGdPictureImageEx(DPI, true, System.Drawing.Imaging.PixelFormat.Format24bppRgb); if (oGdPicturePDF.GetStat() == GdPictureStatus.OK) { //Defining the compression of the tiff page. Let's use CCITT4 for bitonal pages and JPEG for others. TiffCompression tiffCompression; //Applying color detection and color depth automatic conversion. oGdPictureImaging.ColorDetection(rasterPage, true, false, false); if (oGdPictureImaging.GetBitDepth(rasterPage) == 1) { tiffCompression = TiffCompression.TiffCompressionCCITT4; } else { tiffCompression = TiffCompression.TiffCompressionJPEG; } if (i == 0) { if (oGdPictureImaging.TiffSaveAsMultiPageFile(rasterPage, OUTPUT_DOCUMENT, tiffCompression) == GdPictureStatus.OK) { //Firstly rasterized page's GdPicture ID becomes the multipage tiff id. tiffID = rasterPage; } else { MessageBox.Show("Error occurred when saving the file. Status: " + oGdPictureImaging.GetStat().ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } else { if (oGdPictureImaging.TiffAddToMultiPageFile(tiffID, rasterPage, tiffCompression) != GdPictureStatus.OK) { MessageBox.Show("Error occurred when adding a page. Status: " + oGdPictureImaging.GetStat().ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } oGdPictureImaging.ReleaseGdPictureImage(rasterPage); } } else { MessageBox.Show("Error occurred when rendering the page. Status: " + oGdPicturePDF.GetStat().ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error); } } oGdPictureImaging.TiffCloseMultiPageFile(tiffID); oGdPictureImaging.ReleaseGdPictureImage(tiffID);}else{ MessageBox.Show("The file can't be opened. Status: " + oGdPicturePDF.GetStat().ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error);}oGdPicturePDF.Dispose();oGdPictureImaging.Dispose();
This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.