WITH _SCREEN.System.Drawing LOCAL multif AS xfcBitmap LOCAL page2 AS xfcBitmap LOCAL page3 AS xfcBitmap LOCAL myImageCodecInfo AS xfcImageCodecInfo LOCAL myEncoder AS xfcEncoder LOCAL myEncoderParameter AS xfcEncoderParameter LOCAL myEncoderParameters AS xfcEncoderParameters && Create three Bitmap objects. multif = .Bitmap.New(fax_path + '1.tif') page2 = .Bitmap.New(fax_path + '2.tif') && Get an ImageCodecInfo object that represents the TIFF codec. myImageCodecInfo = .Imaging.ImageFormat.Tiff && Create an Encoder object based on the GUID for the SaveFlag parameter category. myEncoder = .Imaging.Encoder.SaveFlag && Create an EncoderParameters object An EncoderParameters object has an array of EncoderParameter && objects. In this case, there is only one EncoderParameter object in the array. myEncoderParameters = .Imaging.EncoderParameters.New(1); myEncoderParameter = .Imaging.EncoderParameter.New(myEncoder, .Imaging.EncoderValue.MultiFrame) myEncoderParameters.Param[1] = myEncoderParameter multif.Save(fax_path + file_copy + '.tif', myImageCodecInfo, myEncoderParameters) *!* Save the second page (frame). myEncoderParameter = .Imaging.EncoderParameter.New(myEncoder, .Imaging.EncoderValue.FrameDimensionPage) myEncoderParameters.Param[1] = myEncoderParameter multif.SaveAdd(page2, myEncoderParameters) *!* Close the multiple-frame file. myEncoderParameter = .Imaging.EncoderParameter.New(myEncoder, .Imaging.EncoderValue.Flush) myEncoderParameters.Param[1] = myEncoderParameter multif.SaveAdd(myEncoderParameters) ENDWITH