با سلام و احترام
وقتی دیتا سورس از جنس اینتیتی تعریف میکنم بحتی هیچ ستونی هم اد نمیکنم بدون اینکه خطایی دریافت کنم فایل پی دی اف، read only میمونه و حجم فایل 0kb باقی میمونه
این نمونه کدی که استفاده کردم
وقتی دیتا سورس از جنس اینتیتی تعریف میکنم بحتی هیچ ستونی هم اد نمیکنم بدون اینکه خطایی دریافت کنم فایل پی دی اف، read only میمونه و حجم فایل 0kb باقی میمونه
public static IPdfReportData CreatePdfReport(Order order, int languageId) { if (order == null) throw new ArgumentNullException("order"); Language lang = IoC.Resolve<ILanguageService>().GetLanguageById(languageId); if (lang == null) throw new NopException("Language could not be loaded"); var localizationManager = IoC.Resolve<ILocalizationManager>(); var orderProductVariants = order.OrderProductVariants; return new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.LeftToRight); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = "coponet", Application = "coponet eshop", Keywords = "Factor", Subject = "Factor", Title = "Factor" }); doc.Compression(new CompressionSettings { EnableCompression = true, EnableFullCompression = true }); doc.PrintingPreferences(new PrintingPreferences { ShowPrintDialogAutomatically = false }); }) .DefaultFonts(fonts => { fonts.Path(Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\arial.ttf", Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\verdana.ttf"); }) .PagesFooter(footer => { footer.DefaultFooter(CalenderHelper.dateTimeParseToString("yyyy/MM/dd", order.CreatedOn, CalenderEnum.PersianCalender)); }) .PagesHeader(header => { header.DefaultHeader(defaultHeader => { defaultHeader.RunDirection(PdfRunDirection.LeftToRight); //defaultHeader.ImagePath(AppPath.ApplicationPath + "\\Images\\01.png"); defaultHeader.Message("Our new rpt."); }); }) .MainTableTemplate(template => { template.BasicTemplate(BasicTemplate.ClassicTemplate); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); table.NumberOfDataRowsPerPage(1); }) .MainTableDataSource(dataSource => { //var listOfRows = new List<User>(); //for (int i = 0; i < 40; i++) //{ // listOfRows.Add(new User {Id = i}); //} //dataSource.StronglyTypedList(listOfRows); dataSource.StronglyTypedList(orderProductVariants); }) ) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "There is no data available to display."); }) ).Generate(data => data.AsPdfFile(string.Format("{0}\\documents\\Temp\\Factor-{1}.pdf", HttpRuntime.AppDomainAppPath, order.OrderId))); }
این نمونه کدی که استفاده کردم