using System.Drawing.Imaging;
using Persits.PDF;
...
PdfManager objPDF = new PdfManager();
PdfDocument objDoc = objPDF.OpenDocument(@"c:\path\test.pdf");
// Obtain TIFF encoder info object
ImageCodecInfo encoderInfo = null;
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for (int i = 0; i < encoders.Length; ++i)
{
if (encoders[i].MimeType.ToLower() == "image/tiff")
{
encoderInfo = encoders[i];
break;
}
}
// Create tiff image array, one image per document page.
Image [] objTiff = new Image[objDoc.Pages.Count];
EncoderParameters EncoderParams = new EncoderParameters(1);
System.Drawing.Imaging.Encoder SaveFlag = System.Drawing.Imaging.Encoder.SaveFlag;
foreach (PdfPage objPage in objDoc.Pages)
{
// Convert PDF page to TIFF. Resolution parameters are 72dpi by default.
PdfPreview objPreview = objPage.ToImage("ResolutionX=300; ResolutionY=300");
byte[] ImageBytes = objPreview.SaveToMemory(ImageFormat.Tiff);
MemoryStream objStream = new MemoryStream(ImageBytes);
objTiff[objPage.Index - 1] = Image.FromStream(objStream);
EncoderParams.Param[0] = new EncoderParameter(SaveFlag, (long)EncoderValue.MultiFrame);
if (objPage.Index == 1)
{
// Save first page as a TIFF
objTiff[0].Save(@"c:\path\out.tif", encoderInfo, EncoderParams);
}
else
{
// Append additional pages
EncoderParams.Param[0] = new EncoderParameter(SaveFlag, (long)EncoderValue.FrameDimensionPage);
objTiff[0].SaveAdd(objTiff[objPage.Index - 1], EncoderParams);
}
}
// Finish appending
EncoderParams.Param[0] = new EncoderParameter(SaveFlag, (long)EncoderValue.Flush);
objTiff[0].SaveAdd(EncoderParams);