Hi Guys,
I am able to EXPORT TO PDF USING PDF-SHARP IN WIN app in 4.0 using WPF DATAGRID Control.
private void CreateImage(DataGrid dtGrid,int j) { // Specify a "currently active folder" string activeDir = @ConfigurationManager.AppSettings["EXPORTFOLDERPATH"]; // Create the folder System.IO.Directory.CreateDirectory(activeDir);
string sFilePath = ConfigurationManager.AppSettings["IMAGEPATH"] + j + ".bmp"; RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)dtGrid.ActualWidth, (int)dtGrid.ActualHeight, 90d, 90d, PixelFormats.Pbgra32); renderBitmap.Render(dtGrid);
using (FileStream outStream = new FileStream(sFilePath, FileMode.Create)) { // Use png encoder for our data PngBitmapEncoder encoder = new PngBitmapEncoder(); // push the rendered bitmap to it encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); // save the data to the stream encoder.Save(outStream); } }
private void ExportToMultiPages_Click(object sender, RoutedEventArgs e) { int pageSize = 19; DataTable tmpTable = new DataTable(); int i = 0; int j = 1; bool hasdata = false; int totalRecords = dt.Rows.Count; tmpTable = dt.Clone(); for (i = 0; i < totalRecords; i++) { tmpTable.ImportRow(dt.Rows[i]); hasdata = true; if(i == (pageSize * j)) // (19 == (19 * 1)) { //Binding temptable data to Grid for creating Image. ExportGrid.DataContext = tmpTable.DefaultView; ExportGrid.UpdateLayout(); CreateImage(ExportGrid,j); tmpTable.Dispose(); tmpTable.Clear(); j++; } }
if (hasdata) { ExportGrid.DataContext = tmpTable.DefaultView; ExportGrid.UpdateLayout(); tmpTable.Dispose(); CreateImage(ExportGrid,j); }
string[] filepath = Directory.GetFiles(@ConfigurationManager.AppSettings["EXPORTFOLDERPATH"] + "\\" , "*.bmp"); ExportToPDFforMultiplePages(filepath); }
public void ExportToPDFforMultiplePages(string[] filepath) { PdfDocument _PdfDocument = new PdfDocument(); _PdfDocument.Info.Title = "Report";
//Looping through all the .bmp files. foreach (string path in filepath) { PdfPage _PdfPage = _PdfDocument.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(_PdfPage); BitmapImage objOPBitmapImage = new BitmapImage(new Uri(path)); BitmapSource image = BitmapImageToBitmapSource(objOPBitmapImage); XImage xIMage = XImage.FromBitmapSource(image);
_PdfPage.Width = xIMage.PointWidth; _PdfPage.Height = xIMage.PointHeight; gfx.DrawImage(xIMage, 5, 0, _PdfPage.Width, _PdfPage.Height);
gfx.Dispose(); xIMage.Dispose(); _PdfPage = null; image = null; objOPBitmapImage = null; }
SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "PDF FILE|*.pdf"; saveFileDialog1.Title = "Save a PDF File"; saveFileDialog1.ShowDialog(); if (saveFileDialog1.FileName != "") _PdfDocument.Save(saveFileDialog1.FileName);
//string ExportReport = ConfigurationManager.AppSettings["EXPORTTOPDFREPORT"]; //if (!string.IsNullOrEmpty(ExportReport)) // _PdfDocument.Save(ExportReport);
GC.GetTotalMemory(false); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.GetTotalMemory(true);
//Deleteting all created .bmp files. string imgFolder = @ConfigurationManager.AppSettings["EXPORTFOLDERPATH"] + "\\"; string[] imgList = Directory.GetFiles(imgFolder, "*.bmp"); foreach (string img in imgList) File.Delete(img); }
private static BitmapSource BitmapImageToBitmapSource(BitmapImage bitmapImage) { return (BitmapSource)bitmapImage; }
Regards,
Balaji.
|