public void SaveImages(Document document, string filename, List<int> pageNumbers, int compressionRate) { string directory = System.IO.Path.GetDirectoryName(filename); string extension = System.IO.Path.GetExtension(filename); System.Drawing.Imaging.ImageFormat format; switch(extension.ToUpper()) { case ".JPG": { format = System.Drawing.Imaging.ImageFormat.Jpeg; } break; case ".GIF": { format = System.Drawing.Imaging.ImageFormat.Gif; } break; case ".PNG": { format = System.Drawing.Imaging.ImageFormat.Png; } break; case ".BMP": { format = System.Drawing.Imaging.ImageFormat.Bmp; } break; default: { format = null; } break; } foreach(int num in pageNumbers) { Page page = document.GetPage(num); Image image = page.GetImage(); if (format == null) { // Since the format is not specified use the native format from the image format = image.RawFormat; } string saveName = page.Name; if(pageNumbers.Count == 1) { saveName = System.IO.Path.GetFileNameWithoutExtension(filename); } SaveImage(image, format, directory, saveName, compressionRate); } }
public void SaveDocument(Document document, string filename, List<int> pageNumbers, bool append, bool compressImage, int compressionFactor, bool importNativePages, ResolutionDpi exportResolution) { IntPtr pdfDocument = LibPdfium.CreateNewDocument(); if(append && File.Exists(filename)) { IntPtr sourceDoc = LibPdfium.LoadDocument(filename); for(int i = 0; i < LibPdfium.GetPageCount(sourceDoc); i++) { LibPdfium.CopyPage(pdfDocument, sourceDoc, i + 1); } LibPdfium.CloseDocument(sourceDoc); } foreach(int num in pageNumbers) { // Get the current page from document Page page = document.GetPage(num); Image image = null; if(page is PageFromPdf) { PageFromPdf pageFromPdf = page as PageFromPdf; if(pageFromPdf.SingleImageMode) { image = pageFromPdf.GetSingleImage(); } else if(importNativePages) { pageFromPdf.ExportToPdfDocument(pdfDocument); } else { image = pageFromPdf.Render(exportResolution); } } else { image = page.GetSourceImage(); } if(image != null) { if(compressImage) { image = CompressImage(image, compressionFactor, exportResolution); } DrawPage(pdfDocument, page, image); } } // Save the document... LibPdfium.SaveDocument(pdfDocument, filename); }