c# 4.0 - How to print multiple pages in silverlight -
how print multiple pages in silverlight. have scenario in silverlight , have button click event able print contents in single page , excess content been removed im not getting next page print
this button click event
private void btnsubmitprint_click(object sender, routedeventargs e) { _currentindex = 0; printdocument docprin = new printdocument(); docprin.printpage += new eventhandler<printpageeventargs>(docprin_printpage); string documentname = "balaji"; docprin.print(documentname); } //i combine list single string using linq void docprin_printpage(object sender, printpageeventargs e) { string delimeter = "\n"; var checkval = listofpagecomments.select(i => i.comment.insert(100, environment.newline));//this linq operation var listofpagecommentsascending = n in listofpagecomments orderby n.date descending select n; var commentslinebreaks = listofpagecommentsascending.select(conmmentss => { var retur = conmmentss; if (conmmentss.comment.length > 100) { ienumerable<string> spllitingvaluetonewline = (enumerable.range(0, conmmentss.comment.length / 100).select(j => conmmentss.comment.substring(j * 100, 100))); string rejoininglinestosingle = string.join(" \n ", spllitingvaluetonewline); conmmentss.comment = rejoininglinestosingle; return conmmentss; } return conmmentss; }); var delimitedcomments = commentslinebreaks.select(i => i.date + "\n" + i.comment).aggregate((i, j) => + delimeter + j); string printcomments = string.join(delimeter, delimitedcomments); list<string> = (enumerable.range(0, printcomments.length / 800).select(j => printcomments.substring(j * 800, 800))).tolist(); //after getting value of string split them list while (_currentindex < get.count())//looping condition print multiple pages { var pageroot = new canvas(); e.pagevisual = pageroot; _currenttop = pagemargin; _availablespace = e.printablearea.height - pagemargin * 2; // var txt = new textblock { text = printcomments }; var txt = new textblock { text = get[_currentindex].tostring() }; if (rowheight > _availablespace) { e.hasmorepages = true; break; } txt.setvalue(canvas.topproperty, _currenttop); txt.setvalue(canvas.leftproperty, pagemargin); _currenttop += rowheight; _availablespace -= rowheight; pageroot.children.add(txt); _currentindex++; } }
Comments
Post a Comment