trykning i løs afladning med flex

, trykning i løs afladning med flex,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, det casestudy viser, hvordan man bruger, printadvanceddatagrid, og sædvane, itemrenderer, til at trykke flere sider af data og billeder med, swfloader, komponenten.,,,, endelige resultat forpremiere, lad os tage et kig på det endelige resultat, vi arbejder hen imod - herunder en oversigt over en 12 siders pdf trykt fra flex anvendelse af teknikker i denne artikel:,,,, der er kommet til udtryk i denne lektion:, ved hjælp af flexprintjob klasse. ved hjælp af, printadvanceddatagrid,., at skabe en sædvane, itemrenderer, med en, swfloader,., tryk ned og fod. filtrering, collectionview,., trykning, datagrid med højden, der overstiger 7500.,, nogle vanskeligheder med hensyn til flex trykning:,, deres indhold eller, datagrid, rækker, skal alle b -e synlig på scenen, eller de vil ikke trykke. at tilføje manuelle side pauser er vanskelig, og gennem fastsættelse af din, rowheight, svarer til, hvad du vil have anbragt på hver trykt side., flex trykkeri går galt, hvis deres samlede, printadvanceddatagrid, indhold højde er større end ca. 7500 pixels, necesitating en omdirigering af flere. printadvanceddatagrids,.,, trin 1: import trykning klasser begynder ved at importere det nødvendige tryk klasser, samt deres fingeraftryk renderer i din flex - projektet:, import mx.printing.flexprintjob; import mx. trykning. flexprintjobscaletype; import kom. reiman. printitemrenderer;,, trin 2: at skabe et grundlag for, printadvanceddatagrid, og itemrenderer, skabe en opfattelse, for deres store trykning.i mit tilfælde skabte jeg en stat kaldet printstate. *, du kan også skabe et tilfælde af din, printadvanceddatagrid, og itemrenderer og tilføje dem på scenen via actionscript, men for en stor trykning projekt, jeg syntes, at det var vanskeligt at arbejde med, og som jeg prøvede at trykke statsejede investeringsfonde, der er xml - og jeg havde brug for at sikre, at min statsejede investeringsfonde var med korrekt, inden trykningen.,, trin 3: tilføje, printadvanceddatagrid, < mx: printadvanceddatagrid paddingtop = "0" paddingbottom = "0" synlige = "ægte" rowheight = "200" sizetopage = "ægte" showheaders = "falske" id = "printgrid" creationcomplete = "stripquiz();" højde = "(grid_height}" bredde = "300" > < mx: kolonne > < mx: advanceddatagridcolumn width = "200" id = "printcolumn" itemrenderer = "kom. reiman. printitemrenderer" sortable = "falske" /> < /mx: kolonne > < /mx: printadvanceddatagrid >,, hvis du har brug for en samlet trykning større område end 7.500 i højden, skal du har brug for en anden, printadvanceddatagrid for hvert område, trin 4: sæt, printadvanceddatagrid, muligheder, en ting jeg fandt vigtigt, er at fastsætte den mulighed, sizetopage = "ægte", i henhold til printdatagrid kontrol side fra adobe flex - 3 livedocs, sizetopage ejendom, sikrer, at printadvanceddatagrid kontrol fjerner enhver delvis synlige eller tomme rækker og resize sig til kun at omfatte komplette række i den nuværende holdning,.,, løntrin 5: tilføje, itemrenderer, tilføje en itemrenderer til din advanceddatagridcolumn,., < mx: advanceddatagridcolumn bredde = "200" id = "printcolumn" itemrenderer = "kom. reiman. printitemrenderer" sortable = "falske" />,, trin 6: skabe, itemrenderer, komponent, i mit tilfælde, jeg ønskede at gøre flere ting med, itemrenderer,.,, tilføje, swfloader, tilføje en overskrift med side titel, tilføje en side fod med min url, lægger afstand til toppen, bunden og sider for korrekt trykning, siden min url arbejdet bedre som vertikale tekst, og jeg fandt det meget bedre at bruge omvendt for denne tekst i stedet for en tekstboks.You can be creative with your ,itemRenderer,, adding data items from your XML or datasource as well as logos, URLs, etc. Here are the display items from inside my code for the ,itemRenderer, component, which is also found in the ,src/com/reiman/PrintItemRenderer.mxml, file in the download package for this tutorial:, <mx:VBox width="100%" > <mx:Spacer height="10" width="100%"/> <mx:HBox horizontalAlign="center" width="100%"> <mx:Text textAlign="center" styleName="printHeader" text="{appy.printGrid.dataProvider.getItemAt(0).title} - {row.lessonTitle} © Insta Spanish 2011" width="92%" x="10" y="-7"/> <mx:Image right="20" source="{row.lessonIcon=='video'?video: række. lessonicon = ='worksheet?arbejdsplan: række. lessonicon = ='lesson?aktivitet: række. lessonicon = ='hover?svæv: række. lessonicon = ='drag?matching: række. lessonicon = ='song?sang: række. lessonicon = ='memory?hukommelse: række. lessonicon = ='downloads? "aktiver /images /ikoner /downloads. stg - row. lessonicon = ='hangman?"hangman": række. lessonicon = ='quiz?quiz: række. lessonicon = ='wordgame?wordgame: række. lessonicon = ='flashcards?flashcard: række. lessonicon = ='oral?oral: række. lessonicon = ='cloze?cloze:empty}" height="25" width="25"/> </mx:HBox> </mx:VBox> <mx:VBox id="print_vbox" horizontalScrollPolicy="off" verticalScrollPolicy="off" verticalAlign="middle" height="100%" width="100%"> <mx:Spacer height="5%" /> <mx:HBox horizontalScrollPolicy="off" verticalScrollPolicy="off" verticalAlign="middle" height="100%" width="100%">\t\t\t <mx:Spacer width="3%" /> <mx:SWFLoader id="swfPrintLoader" height="90%" width="90%" scaleContent="true" source="{row.fileName}" autoLoad="true" /> <mx:Spacer height="1%" /> <mx:SWFLoader height="198" width="20" scaleContent="true" source="assets/images/wwwinstaspanishcom.swf"/> </mx:HBox> </mx:VBox>, , Step 7: Add the Basic Actionscript, flexprintjob, koden til din main.mxml fil offentlige funktion print(): ugyldig (var - printjob: flexprintjob = nye flexprintjob(); printjob. printasbitmap = falske; hvis (printjob. start()) (printjob. addobject (printgrid); printjob. send();}}, trin 8:, printjob, omfanget, vælge, printjob, omfang, type, du vil bruge (læse om, flexprintjob, omfattende former, tjek flex - livedocs side), og eventuelt fastsætte, printasbitmap mulighed.jeg ville have min post til at trykke som vektor, denne fastsættelse var nøglen til min indhold trykning korrekt. printjob. printasbitmap = falske, trin 9: tilføje kode til at udføre før, printjob, tilføje enhver indberetninger eller aktioner, du vil udføre på trykning (f.eks. en indberetning til brugeren at tænde for landskab, trykning).for eksempel:, alert.show ("læg din printer indstillinger til landskab" + "), n" + "eller din prøve ikke vil trykke korrekt!")hvis du vil sætte en alarm, det skal udføre, før din trykning begynder.vær sød at kigge på den kode, der er fastsat i de downloader assocated med denne forelæsning for, printalert() i, main.mxml, fil.,, trin 10: sæt trykning, bredde og højde, variabler, sæt dine, inden trykningen bredde og højde værdier for, printadvanceddatagrid,, bredde, og rowheight,, var before_widdy = printcolumn.width, var before_hiddy = printgrid.rowheight, var widdy = printjob.pagewidth, var hiddy = printjob. pageheight;,, trin 11: de nye værdier, fastsætte nye værdier for den højde, bredde, og rowheight, lig med den, flexprintjob, værdier, printcolumn.width = widdy; printgrid.width = widdy; printgrid.rowheight = hiddy;,, trin 12: tilføje flere sider kode, flexprintjob, tilføje din kode til at omfatteat tilføje flere sider til, printjob,.i henhold til flex livedocs her, nextpage(), kontrol skal sikre, at deres indhold vil trykke korrekt, uanset deres advanceddatagrid, højde, men jeg fandt ud af, at efter en højde på ca. 7500, trykning, ikke fuldstændig korrekt, mens (korrekt) (printgrid. nextpage(); hvis (!printgrid. validnextpage) (printjob. addobject (printgrid); pauser), trin 13: frivillig tilpasning, printgrid, højde, opdagede jeg, at jeg har færre printing fejl, når jeg har tilføjet denne koden fra trin 12:, printgrid.height = printgrid.measuredheight; printgrid.verticalscrollpolicy = "væk", så nu er min samlede kode for trin 12 ser sådan ud:, mens (korrekt) (printgrid. nextpage(); hvis (!printgrid. validnextpage) (printgrid.height = printgrid.measuredheight; printgrid.verticalscrollpolicy = "væk". printjob. addobject (printgrid); pauser), synes at have at gøre med flex 3 problem eller insekt med hensyn til trykning datagrids med en stor højde, som er et reelt problem for trykning af ting, som flere statsejede investeringsfonde eller billeder, - - fordi din datagrid højde skal faktisk afspejler den samlede højde af billeder eller statsejede investeringsfonde, der er trykt.,, trin 14: tilføje kode at tilføje mere til dig, printjob,, printjob. addobject (printgrid2); printjob. addobject (swfloader, flexprintjobscaletype. ingen), gå 15: sende din, printjob, luk jeres, printjob, og foretage eventuelle yderligere funktioner, som f.eks. en alarm, og nulstilling, printgrid, og printcolumn, værdier tilbage til, hvad de var, før udskrivning.hvis du er med henblik på stat til trykning, når brugeren har måske et fingeraftryk center, type grænseflade, hvor de kan se, hvad de er i færd med at trykke, ville det være nyttigt.hvis du vælger at tilføje, printadvanceddatagrid til fase via actionscript, så ville det være unødvendige, og i dette skridt, ville de i stedet fjerne, printadvanceddatagrid fra scenen. printjob. send(); printcolumn.width = before_widdy; printgrid.width = before_widdy; printgrid.rowheight = before_hiddy; alarm. (se "print job fuldført."), trin 16: tilføje en anden, printadvanceddatagrid, hvis deres indhold overstiger 7500 højde, < mx: printadvanceddatagrid paddingtop = "0" paddingbottom = "0" synlige = "ægte" rowheight = "200" sizetopage = "ægte" showheaders = "falske" id = "printgrid2" creationcomplete = "stripquiz2()." højde = "(grid_height}" bredde = "300" > < mx: kolonne > < mx: advanceddatagridcolumn bredde = "200" id = "printcolumn2" itemrenderer = "kom. reiman. printitemrenderer" sortable = "falske" /> < /mx: kolonne > < /mx: printadvanceddatagrid >,, skridt 17: to din, dataprovider, og resulthandler, min data kalder lignede det oprindeligt:, < mx: httpservice id = "httpservice" url = "(myurl}" resultformat = "formål" resultat = "httpresult_handler (ref.) "skyld =" alarm. (se'data belastning fejl ")" />,, hvad jeg skulle gøre, var at tilføje et yderligere resultat kontaktperson, således at data for den anden, printadvanceddatagrid, ville være adskilt:, < mx: httpservice id = "httpservice" url = "(myurl}" resultformat = "formål" resultat = "httpresult_handler (tilfælde) httpresult_handler2 (ref.)" skyld = "alarm. (se'data belastning fejl") "/>, så jeg har tilføjet et nyt resultat -, privat funktion httpresult_handler2 (evt: resultevent): ugyldig (hvis (evt. resultat. lektioner. ro) (var - resultac: arraycollection = evt.result.lessons.row som arraycollection; (var - jeg: int = 0. jeg & lt; resultac. længde; jeg + +) (var - række: ro = nye row(); linje. fyld (resultac [i]); lessonsdataprovider2. additem (ro) getsel;}ecteditem()} denne nye, dataprovider, for det andet, printadvanceddatagrid, der er mit, stripquiz2() filtreres funktion.,, gå 18: tilføje, collectionview, variabler og yderligere, dataprovider, i mit tilfælde, jeg havde brug for at tilføje 3 nye, listcollectionview, s, og 1, dataprovider,,, - bindable] private var removequiz: listcollectionview = nye listcollectionview(); [bindable] private var removequiz2: listcollectionview = nye listcollectionview(); [bindable] private var itemsquiz: listcollectionview = nye listcollectionview(); [bindable] private var lessonsdataprovider2: arraycollection = nye arraycollection();,,, skridt 19: tilføje, filterfunction, funktioner, for de to datagrids jeg ønskede at trykke af, havde jeg brug for filtre, der ville udføre efterg funktioner:,, bånd visse aktivitetstyper fra min trykning liste, som ikke var nødvendige, fjern decimaler data på 12 punkter, som efter omfattende afprøvninger, jeg fandt, at det var den grænse for en vellykket trykning helsides statsejede investeringsfonde fra datagrid, fjerne de første 12 angivelser af, listcollectionview, for det andet, printadvanceddatagrid,, dette har resulteret i oprettelsen af følgende funktioner:, privat funktion stripquiz(): ugyldig (removequiz = nye listcollectionview (lessonsdataprovider); removequiz.filterfunction = quizstripped; removequiz. refresh(); quizlimit(); removequiz. refresh(); printgrid.dataprovider = removequiz;} privat funktion stripquiz2(): ugyldig (removequiz2 = nye listcollectionview (lessonsdataprovider2); removequiz2.filterfunction = quizstripped; removequiz2. refresh(); quizpage2(); removequiz2. refresh(); printgrid2.dataprovider = removequiz2;} privat funktion quizstripped (værdi: formål: boolean {tilbage string (værdi. lessonicon). touppercase()!= "prøve" & & string (værdi. lessonicon). touppercase()!= "hangman" & & string (værdi. lessonicon). touppercase()!= "huskekort" & & string (værdi. lessonicon). touppercase()!= "download" & & string (værdi. lessonicon). touppercase()!= "video" & & string (værdi. filnavn). touppercase()!= "aktiver /activities /worksheet_kids_audio. stg" & & string (værdi. filnavn). touppercase()!= "aktiver /activities /worksheet_kids_audio5. stg"} privat funktion quizlimit(): ugyldig (for (var - jeg: int = removequiz.length-1; jeg > = 0, jeg...) (hvis (removequiz.length > = 13) removequiz. removeitemat (i)) privat funktion quizpage2(): ugyldig (hvis (removequiz2.length > = 13) removequiz2. removeitemat (12); removequiz2. removeitemat (11); removequiz2. removeitemat (10); removequiz2. removeitemat (9); removequiz2. removeitemat (8); removequiz2. removeitemat (7); removequiz2. removeitemat (6); removequiz2. removeitemat (5); removequiz2. removeitemat (4); removequiz2. removeitemat (3); removequiz2. removeitemat (2); removequiz2. removeitemat (1)}, gå 20: tilføje andet, printgrid, til printjob,, før de sender than printjob, fik jeg den anden, printadvanceddatagrid, der trykkes:, printjob. addobject (printgrid2); printjob. send(); for bedre at se på den fulde kode, vær venlig at downloade kilde filer, der er forbundet med denne forelæsning, og se på, main.mxml, fil.,, konkluderes, at det ikke vil være den mest elegante løsning til bulk - trykning af statsejede investeringsfonde fra flex, men det er en løsning, som jeg fandt fungerer pålideligt, med produktionen af produkter af høj kvalitet.trykning i flex kan være en rigtig bjørn, men det betyder ikke, at du skal glemme de muligheder, der er til rådighed, navnlig gennem anvendelse af printdatagrid, og printadvanceddatagrid,.tak for at læse min forelæsning, og jeg ser frem til, at alle spørgsmål og bemærkninger, de måtte have.



Previous:
Next Page: