Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/Bin/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/Bin/PrintingDemo.exe

MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PEL�E�Q��F�� �@ `@�8�S��B@�  H.text�� � `.rsrc�B�D�@@.reloc@@Bp�H�nj�X>�00E�=
, �{ � �(
s
* � � � �(
s
*s
z(
*0H�=
, � � � �(
s
* � � � �(
s
*s
z(
*(
*2{@o	*0s�
s}@��s
*r(
-rps
z}*0S{o
o
-*{o
o
(+
o
uH,o
-o
�++*0�(
o
,r(
o
�s!
("
uE
(#
o$
(#
o
o%
o&
�O('
rp(
o
o&
o(
()
o*
*�(+
((,
�s-
(.
**uE�*
*(/
*F(
o
t*F(
o
t
*�(0
�s-
(.
�s-
(.
*2({(*�(o5oKtTo1
o2
o3
�=*2({(*�(o5oKtTo1
o2
o3
�=*2({'*�(o5oKtTo1
o2
o4
�X*2({)*�(o5oKtTo1
o2
o5
�=*0��('
(6
�s7
�=�s8
((�s7
�=�s8
((�s7
�X�s8
((�s7
�=�s8
((*(
*(
*(
*�{B({
{A� o9
{B(:
*�{C{B({{D�o9
{C{B(:
*�{F{B({{G�o9
{F{B(:
*v({s;
o<
(:
*v({s;
o<
(:
*r({r�p(=
(:
*0�({
o>
to?
8?o@
� 
s�}B}A��s-
(.
(({o>
to?
8�o@
�s�}C}D��s-
(.
(({o>
to?
+Bo@
�s�
	}E	}F	}G	��s-
(.
(oA
-��u_		,	oB
�oA
:6����u_

,
oB
�oA
:�����u_,oB
�� s-
(.
(�!s-
(.
(�"s-
(.
(*AL�O(z�KRn��
('
(6
�s-
(.
*(
*�{IoC
(D
{H(:
{H(#
{J{KoE
oF
*05s�
}I}J}K}H��s-
(.
*:((,
*(G
*n(+
�&s-
(.
*
*
*0�(
o
-*(
o
�'s!
("
uE
oH
oI
r�poJ
tco
oK
oL
+boM
,Wuf
	,3	oN
(:
(#
	oO
�go
oP
�goF
uh,oN
(:
oA
-��,oB
�*]o�*uE�*(/
*(
*{*"}*{*"}*{*"}*{*"}*{*"}*�(
}S
}T
}U
}V
*{S
*{T
*{U
*{V
*0�sW

r�poX
&{S
�
oY
&r�poX
&{T
�oY
&r�poX
&{U
�oY
&r&poX
&{V
�
oY
&rDpoX
&oZ
*0k	u	
,_([
{S
{S
o\
,G(]
{T
{T
o^
,/(_
{U
{U
o`
,(a
{V
{V
ob
**0l
 }Ҳ
 )UU�Z([
{S
oc
X
 )UU�Z(]
{T
od
X
 )UU�Z(_
{U
oe
X
 )UU�Z(a
{V
of
X
*(
*(
*zrJp(+{RrJp(+�*�{RrJp(+r`p(+rxp(+r�p(+sh
*0�s�}Q}Rs)
{Rr�p(+o+{RrJp(+o-{Rr�p(+o/{Rr�p(+o1{P��si
(+��sk
(+o3*0O~-Bs�(m
on
(o
}P(p
on
(o

��sq
(+�~*2(r
t*
*j(s
(5,(5oO*j(t
(5,(5oR*
*(u
*6(:(<*0$
{,*}r�psx

(y
*&(z
*0z

YE)6C+Nt}*t}*t}
*t}*t}*t}*}*{*"}*{*"}*{*"}*{*"}*{*"}*{*v{3*}r^p(N*{*0){
(|
t|(	+
3�*0){
(~
t|(	+
3�*n{,{s
o�
*0f{-EoT}{o�
�Ss�
o�
{s�
(J(IoP{oQ{o�
***�{,{o�
{o�
}*0a{{o�
o�
o�
o�
{{o�
o�
o�
o�
{{o�
o�
o�
o�
*(
*{ *"} *{*�{� � o�
,*}(l([(Orxp(N*{*�{(�
,*}(Or�p(N*{*�{3*}(Or�p(N*{*�{3*}(Or�p(N*{*�{3*}(Orp(N*B�('
(�
*B� ('
(�
*~*�}}(U(l}*0Xs�

"FCo�
(Ao�
(Co�
(�
o�
o�
r6po�
�hs�
o�
*0\t�(io�
(k(V
(\E*o�
(jo�
*o�
(jo�
*^(�
o�
o�
o�
*2(`-**b(X(Z(^s�*�(Ko�
(Ko�
(Ko�
(Ko�
*0?(X
YE+rPp*rbp*r�p*r�p*~�
*0�
��s�
�*6(:(o*0$
{!,*}!r�psx

(y
*&(z
*"}!*{#*"}#*6(U({*0Bs�

(Co�
rpo�
(ro�
o�
�ws�
o�
*��xs�
o�
�zs�
o�
*05(r(ro�
(
+
(�
o~o,o�
o�
*0o
o�
-*o�
(�

(ro�
(ro�
o|�o}(Io�
}"(K�ys�
o�
(Ko�
*0I(K�ys�
o�
(I{"(Io
2
(Io
+{"o�
*jo�
-*o�
(�
o�
*0Ls�
(s(4o�
+o�

(ro,s�o�
oA
-��
,oB
�*+A
{$*"}$*{%*"}%*V(
(}(*6(:(�*0$
{&,*}&r&psx

(y
*&(z
*"}&*0�s�

(Ao�
(Co�
(Eo�
(Go�
(�
o�
o�
r�po�
r�p(�
��()
o�
o�
r�p(�
(�
(�
(�
o�
��s�
o�
*^(�
o�
o�
o�
*(U*6(:(�*0$
{*,*}*r�psx

(y
*&(z
*0G

YE+'t}'*t}(*t})*}**{+*�{+3*}+r\p(N(O*{.*v{.3*}.rvp(N*{,*�{,3*},r�p(N(O*{/*v{/3*}/r�p(N*{-*�{-3*}-rp(N(O*{0*v{03*}0r*p(N*{1*"}1*0^s�

o1
(�s�
o�
(Ao�
(Co�
(Go�
(�o�
o�
rZpo�
*0�(�-(��+(�(��(�(��(�tT
o1
o2
(�-+o�
o1
o2
(�o�
o1
o2
(�o�
*0/s�
(�
o�

o�
o�
r�ps�
o�
*r}.}/}0(U*{2*"}2*{3*"}3*v(
(�
(�r�p(�*btR(�(�o�
*s
z{4*{5*{6*r(
}4}5}6*"(+&*(
*VЛ('
o�
(�
*
*
*(�
*(
*03~7(�
, r�p�('
o�
s�

�7~7*~8*�8*0)(�
(�
,(�

(��
,oB
�*	
:(�
(�*0Ys�

+=��|�o�

	�i3 	�	�	�	�X%s�(�
o�
%-�o�
*{:*"}:*{;*"};*{<*"}<*{=*"}=*{9*"}9*0Xr�p}:r�p};r�p}<r�p}=(
}:};}<}=}9*6(:(�*0$
{>,*}>r�psx

(y
*&(z
*"}>*06{?-'�('
o�
rRp(�

s�}?{?*0Zs�

(?o�
(Co�
(Go�
(�o�
o�
��s�
o�
rtpo�
*b(�o�
o�
o�
*(U*/����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet#PADPADPu��y���
Ӆ_k�BO���C�,7H������ܳW���dn��	ť�;Ғ�Y�\������]����(�o���
������`6/0*
�
��������<�bPI�ٿ`%pef��qf��>h}5�kJ�ZZ����K����!�*	�cMh���_0��x!Zconverters/booltosolidcolorbrush1converter.csZconverters/booltosolidcolorbrush2converter.cs@Hconverters/replacestringconverter.cs� data/biolife.txtv	demoicon.ico�9jdemotesting/documentbuildcompletedconditionfactory.cs�tVdemotesting/printingcheckalldemosfixture.cs$z\demotesting/printingcheckdemooptionsfixture.cs�^demotesting/printingcheckzoomcomboboxfixture.cs��<helpers/northwinddatahelper.cs��*images/dxprinting.png��>modules/columnreportmodule.baml�>modules/columnreportmodule.xaml��Dmodules/columnreportmodule.xaml.csw�Dmodules/drilldownreportmodule.bamlDmodules/drilldownreportmodule.xamliJmodules/drilldownreportmodule.xaml.csM:Jmodules/employeelistreportmodule.baml�EJmodules/employeelistreportmodule.xamlBZPmodules/employeelistreportmodule.xaml.csv"modules/fishes.csv�@modules/groupedreportmodule.bamlō@modules/groupedreportmodule.xamlg�Fmodules/groupedreportmodule.xaml.cs�*modules/modulebase.cs��<modules/moduleviewmodelbase.cs��@modules/pagenumberdatacontext.cs�<modules/tablereportmodule.baml�<modules/tablereportmodule.xaml��Bmodules/tablereportmodule.xaml.cs�program.cs�4properties/assemblyinfo.cs
@properties/resources.designer.cs�&themes/generic.baml&themes/generic.xamlJ"!;using System;
using System.Windows.Data;
using System.Windows.Media;

namespace PrintingDemo {
    public class BoolToSolidColorBrush1Converter : IValueConverter {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            bool boolValue = (bool)value;
            if(boolValue)
                return new SolidColorBrush(Color.FromArgb(0xFF, 0x7B, 0x99, 0xC9));
            else
                return new SolidColorBrush(Color.FromArgb(0xFF, 0xBB, 0x8A, 0x92));
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }

        #endregion
    }
}!;using System;
using System.Windows.Data;
using System.Windows.Media;

namespace PrintingDemo {
    public class BoolToSolidColorBrush2Converter : IValueConverter {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            bool boolValue = (bool)value;
            if(boolValue)
                return new SolidColorBrush(Color.FromArgb(0xFF, 0xE0, 0xEA, 0xFB));
            else
                return new SolidColorBrush(Color.FromArgb(0xFF, 0xF1, 0xE2, 0xE4));
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }

        #endregion
    }
}!�using System;
using System.Windows.Data;

namespace PrintingDemo {
    public class ReplaceStringConverter : IValueConverter {
        public string OldValue { get; set; }
        public string NewValue { get; set; }

        public ReplaceStringConverter() {
            OldValue = Environment.NewLine;
            NewValue = " ";
        }

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((string)value).Replace(OldValue, NewValue);
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
}!x0Triggerfish|Clown Triggerfish|Ballistoides conspicillum|Also known as the big spotted triggerfish.  Inhabits outer reef areas and feeds upon crustaceans and mollusks by crushing them with powerful teeth.  They are voracious eaters, and divers report seeing the clown triggerfish devour beds of pearl oysters. Do not eat this fish.  According to an 1878 account, "the poisonous flesh acts primarily upon the nervous tissue of the stomach, occasioning violent spasms of that organ, and shortly afterwards all the muscles of the body.
Snapper|Red Emperor|Lutjanus sebae|Called seaperch in Australia.  Inhabits the areas around lagoon coral reefs and sandy bottoms. The red emperor is a valuable food fish and considered a great sporting fish that fights with fury when hooked.  The flesh of an old fish is just as tender to eat as that of the very young.

Range is from the Indo-Pacific to East Africa.
Wrasse|Giant Maori Wrasse|Cheilinus undulatus|This is the largest of all the wrasse.  It is found in dense reef areas, feeding on a wide variety of mollusks, fishes, sea urchins, crustaceans, and other invertebrates. In spite of its immense size, divers find it a very wary fish.

Edibility is considered poor.

Range is the Indo-Pacific and the Red Sea.
Angelfish|Blue Angelfish|Pomacanthus nauarchus|Habitat is around boulders, caves, coral ledges and crevices in shallow waters.  Swims alone or in groups.

Its color changes dramatically from juvenile to adult.  The mature adult fish can startle divers by producing a powerful drumming or thumping sound intended to warn off predators.

Edibility is good.

Range is the entire Indo-Pacific region.
Cod|Lunartail Rockcod|Variola louti|Also known as the coronation trout.  It is found around coral reefs from shallow to very deep waters.  Feeds primarily on small fishes.

Although this rockcod is considered a good game and food fish, the large ones may contain a toxin and should not be eaten.  There is no way to discern whether the fish contains toxin.

Range is the Indo-Pacific and the Red Sea.
Scorpionfish|Firefish|Pterois volitans|Also known as the turkeyfish.  Inhabits reef caves and crevices.  The firefish is usually stationary during the day, but feeds actively at night.  Favorite foods are crustaceans.

The dorsal spines of the firefish are needle-like and contain venom.  They can inflict an extremely painful wound.

Edibility is poor.

Range is from Western Australia to Malaysia.
Butterflyfish|Ornate Butterflyfish|Chaetodon Ornatissimus|Normally seen in pairs around dense coral areas from very shallow to moderate depths.  The butterflyfish feeds mainly on coral polyps and anemones.

Edibility is poor.

Range is Indo-Pacific from Sri Lanka to Polynesia.
Shark|Swell Shark|Cephaloscyllium ventriosum|Inhabits shallow reef caves and crevices and kelp beds along the coast and offshore islands.  This shark feeds at night on fishes and crustaceans and is totally harmless to divers.

For defense, the swell shark inflates its stomach with water to tightly lodge itself in a reef crevice.  

Edibility is poor.

Range is from Monterey Bay to Acapulco.  Also found in Chile.
Ray|Bat Ray|Myliobatis californica|Also know as the grinder ray because of its flat grinding teeth used to crush its meal of crustaceans or invertebrates.  Inhabits bays, sloughs, and kelp beds with sandy bottoms.

The bat ray digs up food with its wings and snout, and will even bite off overhanging ledges to get at prey.  It hunts singly or in groups.  When resting, it buries itself in sand with just the eyes protruding.

Edibility is poor.

Range is from Oregon to the Gulf of California.
Eel|California Moray|Gymnothorax mordax|This fish hides in a shallow-water lair with just its head protruding during the day.  At night it feeds on octopuses, crustaceans, and small fish close by.

If caught, it will bite anything nearby with its large fang-like teeth.  Divers can be bitten by a moray eel when sticking their hands into crevices or holes in search of lobster or abalone.

Edibility is good.

Range is from Southern California to Southern Baja.
Cod|Lingcod|Ophiodon elongatus|Widely found from near the shore to very deep waters.  Young fish stay on sand or mud bottoms of bays and inshore areas.  The lingcod is a voracious predator, eating many different fishes and octopuses.

This fish changes color when stressed.  The flesh color also changes, from a greenish hue when caught to white when cooked.

Edibility is good; Lingcod is a popular sport and commercial fish.

Range is Alaska to Northern Baja California.
Sculpin|Cabezon|Scorpaenichthys marmoratus|Often called the great marbled sculpin.  Found over rocky or shell-encrusted bottoms from shallow to moderately deep waters.  It feeds primarily on crustaceans and mollusks.

The male cabezon will not budge while guarding its nest and can even be touched by divers.

Edibility is good; the flesh is bluish-green but turns white when cooked.  The eggs of the cabezon are poisonous.

Range is from Alaska to Central Baja.
Spadefish|Atlantic Spadefish|Chaetodiperus faber|Found in mid-water areas around reefs, wrecks and bridges.  The tiny, all-black juveniles drift motionless in the shallows, looking like leaves and pods of mangrove.

Edibility is good.

Range is Bermuda, New England to Brazil, and the Gulf of Mexico.
Shark|Nurse Shark|Ginglymostoma cirratum|Frequently found under rock or reef ledges.  Carnivorous with well-developed organs for scent and vibration detection.

Like all sharks, the nurse shark has a skeleton of cartilage rather than bone.  Instead of scales, its body is covered with tiny razor-sharp denticles.  The teeth are specialized forms of denticles.  Sharks must continually swim or will slowly sink because they have no air bladder.

Edibility is poor.

Range is from Rhode Island to Brazil, including the Gulf of Mexico.
Ray|Spotted Eagle Ray|Aetobatus narinari|Found in reef areas and sandy bottoms.  The spotted eagle ray has a poisonous spine on its tail and incredibly powerful jaws to crush oysters, clams, and numerous crustaceans.  Divers report large schools during breeding season.

This ray is an active swimmer and often leaps into the air.  The slapping sound it makes on the water is thought to mark a territory.

Edibility is poor.

Range is throughout the tropics.
Snapper|Yellowtail Snapper|Ocyurus chrysurus|Prefers to congregate in loose groups in the open water above reef areas.  Has well-developed teeth and usually feeds at night on small fishes, crustaceans, and plankton.

The yellowtail snapper repeatedly snaps its jaws after it has been caught.  Divers have been injured by these fish.

This is an excellent game fish with tenacious fighting ability and tasty flesh.

Range is Bermuda, New England to Brazil, and the Gulf of Mexico.
Parrotfish|Redband Parrotfish|Sparisoma Aurofrenatum|Inhabits reef areas.  The parrotfish's teeth are fused together, enabling them to scrape away hard coral outer skeletons to get at polyps inside.  These fish are thought to be a major factor in reef recycling.

Occasionally a female will change sex, increase in size, and take on a distinct appearance  as a terminal-phase male.  This is usually done to replace a missing male.

Edibility is poor. 

Range is Bermuda and Florida to Brazil.
Barracuda|Great Barracuda|Sphyraena barracuda|Young barracuda live in inshore seagrass beds, while adults range from inshore channels to the open ocean.  The barracuda feeds on a wide variety of fishes.

It frequently drifts just below the surface and is known to approach divers at very close range.  The long underslung jaw with its very sharp teeth can be disconcerting.  Attacks on humans have reportedly been in cloudy water when the victim is wearing bright diving gear or attempting to spear the fish.
Grunt|French Grunt|Haemulon flavolineatum|The French grunt drifts in large groups in sheltered reef areas during the day.  It forages nearby for other fish at night.

The fish produces a grunt-like sound by grinding teeth located in the throat.  The sound is amplified by the adjacent swim bladder.  During territorial skirmishes, male grunts will face and push each other with open mouths.

Edibility is excellent.

Range is Bermuda, South Carolina to Brazil, and the Gulf of Mexico.
Snapper|Dog Snapper|Lutjanus jocu|This fish is named for its elongated canine teeth at the front of the upper jaw.  It is solitary and wary and stays in the deep reef or submerged wreck areas.  Not very common anywhere.

Edibility is good if the fish is small.  However, a large dog snapper may contain a fatal toxin.  These fish repeatedly snap their jaws shut after removal from a hook or net.

Range is New England to Brazil and the Gulf of Mexico.
Grouper|Nassau Grouper|Epinephelus striatus|Found around shallow coral reefs and seagrass beds, feeding mainly on fishes.

This is the most friendly of all groupers.  If offered food, it will return again and again, looking for more. 

As a defense, the Nassau grouper can change colors to blend perfectly into any background, from white to solid black.

Range is Bermuda, North Carolina to Brazil, and the Gulf of Mexico.
Wrasse|Bluehead Wrasse|Thalassoma bifasciatum|Found in coral reefs, rocky flats, reef sand, and seagrass habitats.  This is one of the most successful "cleaner fish" in the tropical West Atlantic.  It feeds on the parasites of other fish, who come to the wrasse to be cleaned.

Most bluehead wrasses are yellow.  The head of the terminal-phase male (about 4% of the population) is blue.

Edibility is poor.

Range is large, including both sides of the Atlantic, Bermuda, Bahamas, and Florida to Curacao, plus the Gulf of Mexico.
Jack|Yellow Jack|Gnathanodon speciousus|Inhabits reef and mid-water areas, feeding on invertebrates and small fishes.  The adult is one of the few jacks without teeth.

The young fish seek out larger predators, such as sharks, for protection.  Divers have reported young jacks wanting to join up with them!

Edibility is excellent.

Range is Indo-Pacific and Southern California to Panama.
Surfperch|Redtail Surfperch|Amphistichus rhodoterus|Inhabits exposed sandy shorelines to shallow depths.  Feeds on sand-dwelling crustaceans and mollusks.

While almost all other marine fishes fertilize and scatter large numbers of eggs outside the body, the surfperch nourishes offspring inside the ovary and spawns them live and sexually active into the surf.

A favorite sport fish for surf anglers.  Edibility is very good.

Range is from Vancouver Island to Central California.
Croaker|White Sea Bass|Atractoscion nobilis|Schools are found over rocky bottoms and around kelp forest canopies.  Not a true bass, this is the largest of the croakers on the Pacific Coast.  It feeds in mid-water on squid, anchovies, and sardines.  

Croakers make a remarkable "boop-boop-boop" sound, and submarine commanders discovered they could hide the sound of their engines behind the racket.
Greenling|Rock Greenling|Hexagrammos lagocephalus|Inhabits rocky areas along shallow exposed coast line.

Greenlings can change their color to blend with the surrounding sunlit rock and seaweed.  Their scales are very rough and give the body a sandpaper-like texture.

An 1886 description of a greenling comes from naturalist J.K. Lord.
Wrasse|Senorita|Oxyjulis californica|Found almost everywhere by divers, this fish lives either in schools or alone.  It is a voracious eater that feeds constantly.  It is also a very successful "cleaner fish", and a single Senorita may be surrounded by dozens of fishes waiting to be cleaned of parasites.  Divers report them teaming up to clean a large sea bass or Mola.

This fish does not reverse sex as most wrasses do.  When disturbed, it burrows in the bottom sediment.
Smelt|Surf Smelt|Hypomesus pretiosus|Also called the day smelt because of the timing of its spawning runs.  Inhabits the surf line, feeding on small fishes and invertebrates.  

Surf smelt ride a wave onto the beach, lay and fertilize their eggs, and catch a return wave to the sea.  The fry hatch approximately two weeks later during high tide. 

This fish is a favorite among surf anglers.  Edibility is good.

Range is from Alaska to Southern California.!�:00 �%6   ��% h�6(0` ��������������������������	�

��
������������ �!! �##"�$$#*��������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&*��������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('���������������������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)��������������������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�������������������������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,���������������������������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�����565���������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.����������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221���������������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�����������������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543���������������������ddd��������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�������������������������ddd������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�����������������������������ddd����������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987���������������������������������ddd��������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9����������������������������������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�������������������������������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;���������������������������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=����������������������������������������������������676�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�~�����������������������������������������������������fgf�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543�765�887�::9�<;:�>=<�??>�A@?�0N�}���������������������������������������������������������������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�876�:98�;;:�==<�?>=�A@?�BBA�/N�/O�c|�����������������������������������������������������>?>��������� �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�998�;:9�=<;�>>=�@@?�BA@�DCB�/N�/P�/Q�Us������������������������������������������������������������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987�::9�<<;�>=<�@?>�BA@�CCB�EED�/O�/P�/Q�.R�;^���������������������������������������������������������RSR����� ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9�<;:�>=<�??>�AA@�CBA�EDC�GFE�/O�/P�.Q�.R�.S�-U���������������������������������������������������������������++*��  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�==<�??>�A@?�CBA�EDC�FFE�HGF�/P�/Q�.R�.S�.T�-U�-V�b�������������������������������������������������������������//.�##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;�?>=�A@?�BBA�DCB�FED�HGF�JIH�/P�/Q�.R�.S�.T�-U�-V�-W�9c��������������������������������������������������������������vvv�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=�@@?�BA@�DCB�FED�GFE�IHG�KJI�/P�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�`���������������������������������������������������������������zzy�887�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�BA@�CCB�EDC�GFE�IHG�JJI�LKJ�/Q�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\������������������������������������������������������������������<<;�110�332�543�765�887�::9�<;:�>=<�??>�A@?�CBA�EDC�FFE�HGF�JIH�LKJ�NML�/Q�.R�.S�.T�-U�-V�-W�,Y�,Z�,[�+\�+]�+^�Es����������������������������������������������������������������������ggf�665�876�:98�;;:�==<�?>=�A@?�BBA�DCB�FED�HGF�JIH�KKJ�MLK�ONM�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�Du��������������������������������������������������������������������������TSR�=<;�>>=�@@?�BA@�DCB�FED�GGF�IIH�KJI�MLK�ONM�QPO�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�_�����������������������������������������������������������������������������ZYX�CCB�EED�GFE�IHG�KJI�MLK�NML�PON�RQP�.R�.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�Cy����������������������������������������������������������������������������������UUT�LKJ�NML�PON�RQP�SRQ�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�5r��������������������������������������������������������������������������������������������ihg�UTS�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�\����������������������������������������������������������������������������������������.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�i�����������������������������������������������������������������������������.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�i������������������������������������������������������������������.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�?��v��������������������������������������������������.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�/��Y������������������������������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"z�"{�!|�!}�!~� � � ��<���X��������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� ��-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� ��-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"{�!|�!}�!~� � � �� �� �� �� �� �� ��-V��-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� �� ���-VЫ-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� �� ��-W�',X��,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�(h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!|�!}�!~� � � �� �� �� �� �� �� ��� ��*,X�,YӨ,Z��+[�+\�+]�*^�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%p�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� ��� �� ����( @ H�����������������	�

�
���������!! �##"�&&%H������������������	
	��

�������� ! �##"�%%$�(('������������������	
	��

��������  �""!�%%$�''&�**)�����������������	�

�
���������""!�$$#�''&�))(�,,+�TUT���������������	�

�
���������!! �$$#�&&%�))(�++*�..-����565��������������	
	��
��������!! �##"�&&%�(('�++*�--,�00/��������������������	
	��

��������  �"#"�%%$�''&�**)�--,�//.�221�������������������	�

�
��������  �""!�$%$�''&�**)�,,+�/.-�110�443����������������������	�

�
���������!"!�$$#�&&%�))(�,,+�..-�10/�332�665������������������������	�

�
���������!! �##"�&&%�(('�++*�.-,�00/�321�554�887���������������������������	
	��

�������� ! �##"�%%$�(('�**)�--,�0/.�221�554�776�::9����������������������������	
	��

��������  �""!�%%$�''&�**)�,,+�//.�210�443�765�998�<<;�����������������������������%&%�	�

�
���������""!�$$#�''&�))(�,,+�..-�110�432�665�987�;;:�>>=����������������������������������WXW�
���������!! �$$#�&&%�))(�++*�..-�00/�332�654�887�;:9�>=<�@@?�/N����������������������������������������������!! �##"�&&%�(('�++*�--,�00/�221�554�876�::9�=<;�@?>�BBA�/O�/P��������������������������������������@@?�����  �"#"�%%$�''&�**)�--,�//.�221�543�776�:98�<<;�??>�BA@�EDC�/O�/Q�.R�p���������������������������������������))(�� �""!�$%$�''&�**)�,,+�/.-�110�443�765�998�<;:�?>=�AA@�DCB�GFE�/P�.Q�.S�-U�Gk�������������������������������������sss�!"!�$$#�&&%�))(�,,+�..-�10/�332�665�987�;;:�>=<�A@?�CCB�FED�IHG�/P�.R�.S�-U�-W�,X����������������������������������������\\\�(('�++*�.-,�00/�321�554�887�;:9�==<�@?>�CBA�EED�HGF�KJI�/Q�.R�.T�-V�-W�,Y�,Z�Fp�����������������������������������������||{�0/.�221�554�776�::9�=<;�??>�BA@�EDC�GGF�JIH�MLK�.Q�.S�-U�-V�,X�,Y�+[�+]�*^�_�����������������������������������������������PON�998�<<;�?>=�BA@�DCB�GFE�JIH�LKJ�ONM�.R�.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�z���������������������������������������������������YXW�DCB�FED�IHG�LKJ�NML�QPO�.R�.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�^�������������������������������������������������������xww�NML�QPO�SRQ�.S�-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�B~������������������������������������������������������������.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�N���������������������������������������������������.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�?��v����������������������������������-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�/��Y������������������-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� ��-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��-V�,X�,Y�+[�+]�*^�*`�)a�)c�)e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�!|�!}� � �� �� �� �� ��-W��,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� �� ���-W�;,Y��,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&m�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��� ��;(  ���������	
	�

����!! �%&%���������	�
���� �$$#�))(�CCC�������	�
�����##"�(('�--,�����565�����������""!�''&�,,+�110������������

�����!! �&&%�++*�00/�654����������565��	
	�

����  �%%$�**)�//.�443�:98��������������FGF�
�����$$#�))(�..-�332�887�>=<�;Y�����������������������##"�(('�--,�221�776�=<;�BA@�/P�;^������������������VVU�""!�''&�,,+�110�665�;;:�A@?�FED�.Q�-T�,X�a��������������������RRQ�0/.�554�::9�@?>�EDC�JJI�.R�-U�,Y�+\�*_�������������������������JJI�DCB�IHG�ONM�.S�-W�,Z�+]�*`�)c�(g�x����������������������������{zy�-T�,X�,[�+^�*a�)d�(h�'k�&n�@�������������������-U�,Y�+\�*_�)b�(e�'i�&l�%o�$r�#u�"x�!{�:��T���y���-V�,Z�+]�*`�)c�(f�'j�&m�%p�$s�#v�"y�!|� � �� ��-Xѽ,[�+^�*a�)d�(h�'k�&n�%q�$t�#w�"z�!}� �� �� ���A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A!9using System;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.Printing;

namespace PrintingDemo.Tests {
    static class DocumentBuildCompletedConditionFactory {
        class ConditionAdapter {
            BaseDemoTestingFixture fixture;

            public ConditionAdapter(BaseDemoTestingFixture fixture) {
                if(fixture == null)
                    throw new ArgumentNullException("fixture");

                this.fixture = fixture;
            }

            public bool EvaluateCondition() {
                if(fixture.DemoBaseTesting.CurrentDemoModule == null)
                    return true;
                DocumentPreview preview = BaseTestingFixture.HelperActions.FindElementByType<DocumentPreview>(fixture.DemoBaseTesting.CurrentDemoModule);
                PrintingSystemPreviewModel model = preview.Model as PrintingSystemPreviewModel;

                bool documentBuilt = model == null ? false : (model.IsCreating == false && model.PageCount > 0);

                return documentBuilt;
            }
        }
        public static Condition Create(BaseDemoTestingFixture fixture) {
            ConditionAdapter conditionAdapter = new ConditionAdapter(fixture);
            return new Condition(() => conditionAdapter.EvaluateCondition());
        }
    }
}!�using System.Windows;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.Printing;
using DevExpress.Xpf.Printing.Native;

namespace PrintingDemo.Tests {
    public class PrintingCheckAllDemosFixture : CheckAllDemosFixture {
        protected override void CreateSetCurrentDemoActions(object moduleID, bool checkMemoryLeaks) {
            base.CreateSetCurrentDemoActions(moduleID, checkMemoryLeaks);
            AddConditionAction(DocumentBuildCompletedConditionFactory.Create(this), null);
            AddSimpleAction(delegate() {
                if(DemoBaseTesting.CurrentDemoModule != null) {
                    DocumentPreview activePreview = LayoutHelper.FindElement(DemoBaseTesting.CurrentDemoModule, IsDocumentPreview) as DocumentPreview;
                    Assert.IsNotNull(activePreview);
                    Assert.AreNotEqual(activePreview.Model.PageContent.GetType(), typeof(PageWithRedCross), string.Format("Exception is raised with displaying a red cross on {0} demo module", DemoBaseTesting.CurrentDemoModule.GetType().Name));
                }
            });
        }

        bool IsDocumentPreview(FrameworkElement element) {
            return element is DocumentPreview;
        }

        protected override bool CheckMemoryLeaks(System.Type moduleTyle) {
            return true;
        }
    }
}!�using System;
using System.Windows;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Printing;
using DevExpress.XtraPrinting.DataNodes;

namespace PrintingDemo.Tests {
    public class CheckDemoOptionsFixture : BaseDemoTestingFixture {
        GroupedReportModule GroupedReportModule { get { return (GroupedReportModule)DemoBaseTesting.CurrentDemoModule; } }
        ColumnReportModule ColumnReportModule { get { return (ColumnReportModule)DemoBaseTesting.CurrentDemoModule; } }

        protected override void CreateActions() {
            base.CreateActions();
            AddSimpleAction(CreateCheckGroupedReportModuleActions);
            AddSimpleAction(CreateCheckMultiColumnReportModuleActions);
        }
        void CreateCheckGroupedReportModuleActions() {
            AddLoadModuleActions(typeof(GroupedReportModule));

            AddAction_ToggleCheckEdit(() => GroupedReportModule.repeatHeaderEveryPage, true, () => ((CollectionViewLink)GroupedReportModule.ViewModel.Link).GroupInfos[0].RepeatHeaderEveryPage);
            AddAction_WaitDocumentBuildCompleted();

            AddAction_ToggleCheckEdit(() => GroupedReportModule.repeatHeaderEveryPage, false, () => ((CollectionViewLink)GroupedReportModule.ViewModel.Link).GroupInfos[0].RepeatHeaderEveryPage);
            AddAction_WaitDocumentBuildCompleted();

            AddAction_ToggleCheckEdit(() => GroupedReportModule.keepTogether, GroupUnion.WholePage, () => ((CollectionViewLink)GroupedReportModule.ViewModel.Link).GroupInfos[0].Union);
            AddAction_WaitDocumentBuildCompleted();

            AddAction_ToggleCheckEdit(() => GroupedReportModule.pageBreakAfter, true, () => ((CollectionViewLink)GroupedReportModule.ViewModel.Link).GroupInfos[0].PageBreakAfter);
            AddAction_WaitDocumentBuildCompleted();
        }

        void CreateCheckMultiColumnReportModuleActions() {
            AddLoadModuleActions(typeof(ColumnReportModule));

            AddSimpleAction(() => {
                foreach(PageNumberKind pageNumberKind in (System.Collections.IEnumerable)ColumnReportModule.pageNumberKindEdit.ItemsSource) {
                    PageNumberKind temp_pageNumberKind = pageNumberKind;
                    AddSimpleAction(() => {
                        ColumnReportModule.pageNumberKindEdit.EditValue = temp_pageNumberKind;
                        UpdateLayoutAndDoEvents();
                    });
                    AddAction_WaitDocumentBuildCompleted();

                    foreach(HorizontalAlignment pageNumberAlignment in (System.Collections.IEnumerable)ColumnReportModule.pageNumberAlignmentEdit.ItemsSource) {
                        HorizontalAlignment temp_pageNumberAlignment = pageNumberAlignment;
                        AddSimpleAction(() => {
                            ColumnReportModule.pageNumberAlignmentEdit.EditValue = temp_pageNumberAlignment;
                            UpdateLayoutAndDoEvents();
                        });
                        AddAction_WaitDocumentBuildCompleted();

                        foreach(PageNumberLocation pageNumberLocation in (System.Collections.IEnumerable)ColumnReportModule.pageNumberLocationEdit.ItemsSource) {
                            PageNumberLocation temp_pageNumberLocation = pageNumberLocation;
                            AddSimpleAction(() => {
                                ColumnReportModule.pageNumberLocationEdit.EditValue = temp_pageNumberLocation;
                                UpdateLayoutAndDoEvents();
                            });
                            AddAction_WaitDocumentBuildCompleted();
                        }
                    }
                }

                AddSimpleAction(() => {
                    ColumnReportModule.downThenAcross.IsChecked = true;
                    UpdateLayoutAndDoEvents();
                });
                AddAction_WaitDocumentBuildCompleted();

                AddSimpleAction(() => {
                    ColumnReportModule.acrossThenDown.IsChecked = true;
                    UpdateLayoutAndDoEvents();
                });
                AddAction_WaitDocumentBuildCompleted();
                AddSimpleAction(() => {
                    EditorsActions.SetEditValue(ColumnReportModule.pageNumberFormatEdit, "Page {test}");
                    UpdateLayoutAndDoEvents();
                });
                AddAction_WaitDocumentBuildCompleted();
            });

        }

        void AddAction_ToggleCheckEdit(Func<CheckEdit> getCheckEdit, object expectedValue, Func<object> getActualValue) {
            AddSimpleAction(() => {
                EditorsActions.ToggleCheckEdit(getCheckEdit());
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(expectedValue, getActualValue());
            });
        }

        void AddAction_WaitDocumentBuildCompleted() {
            AddConditionAction(DocumentBuildCompletedConditionFactory.Create(this), null);
        }
    }
}!Nusing System;
using System.Windows;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.DemoBase.Helpers.TextColorizer;
using DevExpress.Xpf.Printing;

namespace PrintingDemo.Tests {
    public class PrintingCheckZoomComboBoxFixture : CheckAllDemosFixture {
        protected override void CreateSetCurrentDemoActions(object moduleID, bool checkMemoryLeaks) {
            base.CreateSetCurrentDemoActions(moduleID, checkMemoryLeaks);
            AddSimpleAction(CheckZoomComboBoxAction);
        }

        protected override bool AllowSwitchToTheTheme(Type moduleType, Theme theme) {
            return false;
        }

        protected override bool AllowSwitchToTheTab(Type moduleType, CodeLanguage tabLanguage) {
            return false;
        }

        void CheckZoomComboBoxAction() {
            if(DemoBaseTesting.CurrentDemoModule == null)
                return;
            DocumentPreview activePreview = LayoutHelper.FindElement(DemoBaseTesting.CurrentDemoModule, IsDocumentPreview) as DocumentPreview;
            BarEditItem zoomEditItem = (BarEditItem)activePreview.BarManager.Items["zoom"];

            foreach(var item in activePreview.Model.ZoomModes) {
                if(zoomEditItem == null)
                    continue;

                ZoomValueItem zoomValueItem = item as ZoomValueItem;
                if(zoomValueItem != null) {
                    zoomEditItem.EditValue = zoomValueItem;
                    UpdateLayoutAndDoEvents();
                    Assert.AreEqual(zoomValueItem.ZoomValue, activePreview.Model.Zoom);
                }
                ZoomFitModeItem zoomFitModeItem = item as ZoomFitModeItem;
                if(zoomFitModeItem != null) {
                    zoomEditItem.EditValue = zoomFitModeItem;
                    UpdateLayoutAndDoEvents();
                }
            }
        }

        bool IsDocumentPreview(FrameworkElement element) {
            return element is DocumentPreview;
        }
    }
}!�using System.Collections;
using System.Collections.Generic;
using DevExpress.Xpf.DemoBase;

using System.Data;

namespace PrintingDemo {
    public class Category {
        public Category() {
        }
        public string CategoryName { get; set; }
        public int CategoryID { get; set; }
        public string Description { get; set; }
        public byte[] Picture { get; set; }
        public IEnumerable Products { get; set; }
    }

    public static class NorthwindDataHelper {
        static IEnumerable<Category> categories;

        public static IEnumerable<Category> Categories {
            get {
                if(categories == null) {
                    var productsQuery = NWindData.Products.Table.AsEnumerable();
                    var categoriesQuery = NWindData.Categories.Table.AsEnumerable();
                    categories = from category in categoriesQuery
                                 select new Category {
                                     CategoryName = category.Field<string>("CategoryName"),
                                     CategoryID = category.Field<int>("CategoryID"),
                                     Description = category.Field<string>("Description"),
                                     Picture = category.Field<byte[]>("Picture"),
                                     Products = (from product in productsQuery
                                                 where product.Field<int>("CategoryID") == category.Field<int>("CategoryID")
                                                 select new {
                                                     CategoryID = category.Field<int>("CategoryID"),
                                                     ProductName = product.Field<string>("ProductName"),
                                                     QuantityPerUnit = product.Field<string>("QuantityPerUnit"),
                                                     UnitPrice = product.Field<decimal>("UnitPrice")
                                                 })
                                 };
                }
                return categories;
            }
        }
    }
}!z�PNG


IHDR�$e�EAIDATx^�o�$EƟ><�9#9�t�'rq.� �e���ɬG�@ dOM0FwE������N"B@�.	�(7`0�Fn�	ߘ(�	Q�ḽcw��}]��tu��ޝޝ��<I��k����7O�oU�yͯ�
@���NU\��{��D<FX%PAxT6Qh� ���U�O�;P����`;k��**�Q���|���}�n�p�0 ��ʊA�7Pj	����p�K�N��<��W���ĄB?�lc�5VED�x�/6.Ù��x�Eh�sU@B�Y���3o��bX/�d%����v�`|�����:l�5�<��D�$�f��
�&�VET'�:��O��O� .��>��<�
2����O�ٿ/��	�����B��v,��������r��/���:�S�d�<�Ze�ZR;�oy�h��n�k���{���1�||����Ա�-h:BwRhP�A�œ>���sUĆs!QV�]q!]q�>�Xc�bw#_Mҟ�Fb�#-�g���4=�Z ���mB84L��@��h�߷�,�N�:�W���l�Y��r��z�D0bu�o�JT/�.vbq1��qZ�>��0�b����?Kg�̾I	���,7�FLl�+��*�W�n8QH����F(��m��9]��Z�b��
�,���#O�{�e\�qíυqBe����Y;D^�K4�&UW�����nDJ�:�9E��	�'0��xp��F����e���m;������z����ҧ�(,��S��8G������Z��sú��|c�c+��%-�Sg}�����Sn��B3X�Zt�c1��ogH�ڄ��)C4���6J�z����B'�8�0�+tB�}�,�������1Q�qsG�APW��Aޤ�����7�&�(Å�,�U��éQ�{t�v�Nm��g��T���X���GB04J8��=���7�|���o(��4�Z�\���V�CF��C�2Ơl�c�a�L��C�*���p�#Vi�yki,/1�����
��>�.a�
��1�sD��'߻`�C�c0�҉�K9O�]j�q�K��a�tʍ�.�*)��-�~g����v�=����,�e�q�s�ٌ��f�|�}+���:K�L�8��u�,7�#!�БT\L�6߼�k'�|@�y	~}��B茁��l�
�P9P9���!���F�j��hT'Ւ�njI X����!4���C�d����błA��CE�”5	�Q?�A=7e|�`P��AD��	E0��؈��L�ϻ(G��/��r �A��:��#�_Z���~2���щ�>!R@���($�������J�����<����]�D\�
��ˆ�X@���
f��\�i��+y��Ytx���`C=���Wu�w�Z<n�$������ϩ���8v!�R�B���x��'T	��o�i)`��D� �L��(�+ȋ�ҮŤD9�&��J�D�0�܍�KU 5Na��i�L;��Vi!D�ƘDP���8��
n��i�D��5������懝�TA֖'�JH�V	��p��}����b.�F�5�񸑚�{{�J�H����{��7�j缫¹��%S������뉵�((�����:W,LŷAT�
&dj(�Q�o�X�M���X��\g�{�AK�,@>H�Z6�5~�`�k2���NT[��8�2�Bm��V<QQDc�Rm�*���a\�]�`��䱤Dp�<��
��Wϭ�N<Dٺ
T=+x/�J{&���e6��R��\V���kQo3!r)gƄ�׮�p:�L~�$Xᰲ���Rش�w�S	a���x��h=�7.HE��S��C� AN �A�4��񓭜�dfͷ��S��w~YRɩ�[�X.r�m�ƹQs
q@#�~.w%�V�X����&@dØ\gl�sCI*�'WsP�����S*]�4u��`�y�V�J�i�m=��I�6ē�r����9�7�$��!
��Q�鶄N�8��@6�z�tYj��ӫ�n��X[}�x3�Z�+Ć�4
0�:��ȗ�nWv�u6�l��5f�+(�
����n�x�@[G�Dߚ9 ͖C@��]q0�r�����K�H`�My̷u�~7Ċ[�'��e�3Œ����/A����<7b��6�bqǼ[�8dt��?4��h��F*�R!RQXZ<�J��7�8��wFN�oD�T��T���!bc1Ѻ�9�X	P�I1�,�}�h��߉j�o��Xk�������,K\=�Z9i��E�n�?z��|�
��
�',�n��&"��pAD�ukS����q�b;��

t#�v��r�nTÈE��9C��̖�H�0#w��K��1X���|��K�Dl�Ե�B�b�7}�XO����:���m����l�t#p3����ذ��xr��
��ݜ��t1���]����;��
�
�_5�R-�D��v����}��[k��W�/����߃��Xc�H'�X�A�\\|����|��[x`2���>;�C��܏Ə�9O��A=��k��j,:C�Dz��ҩϋ�{�{��U���
�D��LuLA=��3�[cN�\��ʙE�
�4�ݏvN�rU���6���j۹��2ګm'0��g��Ue�bYϩ�k��9o1�ݛYm��i�tY�u�y��E��/@q���w�~��倾� �h/�A5NG܉4��q��N_�4���k��P�7q��o��s:�V��W�6W�.�0�� ����Wهo�ր�p��e��F�pj�D/�+�`��5o�Uf���m�+�mF
n�[(xnϝ���N�WЧ�pT���»��4�4��x��*|m�S����&�t�B��I�PLG��w���]i����é���0V�S��a
��
���
�F�����@DxZ����%�:��r)n�N���T�F���d� x:(��%O�& K���\�An���󴖿�F�����Q��@IEND�B`�!}MSBAML```����HDPrintingDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null+clr-namespace:PrintingDemoPrintingDemo%PrintingDemo.ColumnReportModule\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamleaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobasea]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreeaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors&localclr-namespace:PrintingDemo:d2http://schemas.microsoft.com/expression/blend/2008Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006�	Resources
2,PrintingDemo.BoolToSolidColorBrush1Converter #boolToSolidColorBrush1Converter2,PrintingDemo.BoolToSolidColorBrush2Converter #boolToSolidColorBrush2Converter 
pageInfoStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit,&DevExpress.Xpf.Printing.ExportSettings�Property�Value%DevExpress.Xpf.Editors.BaseEdit detailTextStyle1�Path�Mode�	Converter detailTextStyle2)#DevExpress.Xpf.Editors.TextEditBase headerTextStyle reportHeaderTemplateText detailTemplate��Orientation	
TargetType)#PrintingDemo.ReplaceStringConverter Key 	replaceStringConverter
	EditValue 
pageNumberTemplate60DevExpress.Xpf.Printing.PageNumberExportSettingsKind
Format�%X&	&	&	
&	�7&	�77&	%&	�7&	+77777	777&	
 7��".���@
TargetType$
PageNumber=����$Tahoma)����$11(����
����@IsPrintingMode.���$0,0,0,10q���".����$Center=����$Center=����$2q����$Tahoma)����$12(����$
Bold"����
���������$IsEven�$OneWay=�8��@IsPrintingMode.��".����$
Left=����$Center=����$2q����$Tahoma)����$11(����
����@TextWrapping$NoWrap=�����$IsEven�$OneWay=�8����$IsEven�$OneWay=�8��@IsPrintingMode.��".����$Center=����$Center=����$4q����
�����$Tahoma)����$27(���@IsPrintingMode.��.R�$
Customer List��8���$UsablePageWidth���.R���$Vertical=�$	�188��$�	10,10,0,0q�$	Panel=�
�replaceStringConverter.+�8��$Content.ContactName�]��..+�8�$
�1,0,0,0q�$�64��$
�Left=��$Content.Country�8�$
�0,0,1,0q��$Content.City�8�$
�1,0,1,0q��$Content.Address�88�$�16��$
�1,0,1,0q�8�$
�1,0,1,0q�
�$Content.PostalCode�8�$
�1,0,1,1q�
�$
Content.Phone���.R�8��$Content.Kind��$Content.Format���$("Content.HorizontalContentAlignment���$UsablePageWidth�$OneWay=�
�DataContext
.	(PrintingDemo.ColumnReportModuleViewModel	&
 PrintingDemo.ModuleViewModelBase
ReportHeaderTemplate#[
DetailTemplate#[	PageNumberTemplate#[
.�/)DevExpress.Xpf.DemoBase.DemoModuleControlContent.-'DevExpress.Xpf.Printing.DocumentPreviewModel�$PreviewModel�OptionsContent��.+�$
DevExpress.Xpf.Core.GroupFrame
$
��Options��$�0,0,0,12q�.���$Vertical=�.+�	�-$�acrossThenDown��$�Across then down��	�	GroupName$
ColumnOptions��$
�0,0,0,4q�d�	IsChecked�$'!ViewModel.IsAcrossThenDownChecked�$TwoWay=��RelativeSource����AncestorType$local:ModuleBaseL�	�-$�downThenAcross��$�Down then across��$
ColumnOptions��
$��Page number��.���ColumnDefinitions����$	�130��RowDefinitions����.+���$
�0,0,6,4q�$�0�$��0�$�Page number kind:��$�Center=�)#DevExpress.Xpf.Editors.ComboBoxEdit-$�pageNumberKindEdit��$�1�$��0�'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.$
�0,0,0,4q�+%DevExpress.Xpf.Editors.LookUpEditBaseItemsSource�$$ViewModel.PageNumberKindValues���$local:ModuleBaseL�SelectedItem�$ViewModel.PageNumberKind�$TwoWay=���$local:ModuleBaseL���$
�0,0,6,4q�$�Format string:��$�0�$��1�$�Center=�-$�pageNumberFormatEdit��$�1�$��1�$
�0,0,0,4q�ValidateOnTextInput. ValidateOnEnterKeyPressed.
�$ ViewModel.PageNumberFormat�$TwoWay=��UpdateSourceTrigger$PropertyChanged=���$local:ModuleBaseL���$
�0,0,6,4q�$�
Alignment:��$�0�$��2�$�Center=�-$�pageNumberAlignmentEdit��$�1�$��2�.$
�0,0,0,4q��$)#ViewModel.PageNumberAlignmentValues���$local:ModuleBaseL��$#ViewModel.PageNumberAlignment�$TwoWay=���$local:ModuleBaseL���$
�0,0,6,0q�$�	Location:��$�0�$��3�$�Center=�-$�pageNumberLocationEdit��$�1�$��3�.�$("ViewModel.PageNumberLocationValues���$local:ModuleBaseL��$"ViewModel.PageNumberLocation�$TwoWay=���$local:ModuleBaseL�!�*<local:ModuleBase x:Class="PrintingDemo.ColumnReportModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:PrintingDemo"
    mc:Ignorable="d"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    d:DesignWidth="800" d:DesignHeight="400">

    <local:ModuleBase.Resources>
        <ResourceDictionary>
            <local:BoolToSolidColorBrush1Converter x:Key="boolToSolidColorBrush1Converter"/>
            <local:BoolToSolidColorBrush2Converter x:Key="boolToSolidColorBrush2Converter"/>

            <Style x:Key="pageInfoStyle" TargetType="dxe:TextEdit">
                <Setter Property="dxp:ExportSettings.TargetType" Value="PageNumber"/>
                <Setter Property="FontFamily" Value="Tahoma"/>
                <Setter Property="FontSize" Value="11"/>
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="IsPrintingMode" Value="True"/>
                <Setter Property="Margin" Value="0,0,0,10"/>
            </Style>

            <Style x:Key="detailTextStyle1" TargetType="dxe:TextEdit">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="Padding" Value="2"/>
                <Setter Property="FontFamily" Value="Tahoma"/>
                <Setter Property="FontSize" Value="12"/>
                <Setter Property="FontWeight" Value="Bold"/>
                <Setter Property="Foreground" Value="White"/>
                <Setter Property="Background" Value="{Binding Path=IsEven, Mode=OneWay, Converter={StaticResource boolToSolidColorBrush1Converter}}"/>
                <Setter Property="IsPrintingMode" Value="True"/>
            </Style>

            <Style x:Key="detailTextStyle2" TargetType="dxe:TextEdit">
                <Setter Property="HorizontalContentAlignment" Value="Left"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="Padding" Value="2"/>
                <Setter Property="FontFamily" Value="Tahoma"/>
                <Setter Property="FontSize" Value="11"/>
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="TextWrapping" Value="NoWrap"/>
                <Setter Property="Background" Value="{Binding Path=IsEven, Mode=OneWay, Converter={StaticResource boolToSolidColorBrush2Converter}}"/>
                <Setter Property="BorderBrush" Value="{Binding Path=IsEven, Mode=OneWay, Converter={StaticResource boolToSolidColorBrush1Converter}}"/>
                <Setter Property="IsPrintingMode" Value="True"/>
            </Style>

            <Style x:Key="headerTextStyle" TargetType="dxe:TextEdit">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="Padding" Value="4"/>
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="FontFamily" Value="Tahoma"/>
                <Setter Property="FontSize" Value="27"/>
                <Setter Property="IsPrintingMode" Value="True"/>
            </Style>

            <DataTemplate x:Key="reportHeaderTemplate">
                <dxe:TextEdit Width="{Binding Path=UsablePageWidth}" Text="Customer List" Style="{StaticResource headerTextStyle}" />
            </DataTemplate>

            <DataTemplate x:Key="detailTemplate">
                <StackPanel Orientation="Vertical" Width="188" Margin="10,10,0,0" dxp:ExportSettings.TargetType="Panel">
                    <StackPanel.Resources>
                        <local:ReplaceStringConverter x:Key="replaceStringConverter"/>
                    </StackPanel.Resources>

                    <dxe:TextEdit Text="{Binding Path=Content.ContactName}" Style="{StaticResource detailTextStyle1}" />
                    <DockPanel LastChildFill="True">
                        <dxe:TextEdit Style="{StaticResource detailTextStyle2}" Text="{Binding Path=Content.Country}" BorderThickness="1,0,0,0" Width="64" DockPanel.Dock="Left" />
                        <dxe:TextEdit Style="{StaticResource detailTextStyle2}" Text="{Binding Path=Content.City}" BorderThickness="0,0,1,0" />
                    </DockPanel>
                    <dxe:TextEdit Style="{StaticResource detailTextStyle2}" BorderThickness="1,0,1,0" Text="{Binding Path=Content.Address, Converter={StaticResource replaceStringConverter}}"/>
                    <dxe:TextEdit Style="{StaticResource detailTextStyle2}" Height="16" BorderThickness="1,0,1,0" />
                    <dxe:TextEdit Style="{StaticResource detailTextStyle2}" EditValue="{Binding Path=Content.PostalCode}" BorderThickness="1,0,1,0" />
                    <dxe:TextEdit Style="{StaticResource detailTextStyle2}" EditValue="{Binding Path=Content.Phone}" BorderThickness="1,0,1,1" />
                </StackPanel>
            </DataTemplate>

            <DataTemplate x:Key="pageNumberTemplate">
                <dxe:TextEdit Style="{StaticResource pageInfoStyle}"
                              dxp:PageNumberExportSettings.Kind="{Binding Path=Content.Kind}"
                              dxp:PageNumberExportSettings.Format="{Binding Path=Content.Format}"
                              HorizontalContentAlignment="{Binding Path=Content.HorizontalContentAlignment}"
                              Width="{Binding Path=UsablePageWidth, Mode=OneWay}" />
            </DataTemplate>
        </ResourceDictionary>
    </local:ModuleBase.Resources>

    <local:ModuleBase.DataContext>
        <local:ColumnReportModuleViewModel ReportHeaderTemplate="{StaticResource reportHeaderTemplate}"
                                           DetailTemplate="{StaticResource detailTemplate}"
                                           PageNumberTemplate="{StaticResource pageNumberTemplate}" />
    </local:ModuleBase.DataContext>

    <dxdb:DemoModuleControl>
        <dxp:DocumentPreview Model="{Binding Path=PreviewModel}" />

        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Options" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <RadioButton Name="acrossThenDown"
                                     Content="Across then down"
                                     GroupName="ColumnOptions"
                                     Margin="0,0,0,4"
                                     IsChecked="{Binding Path=ViewModel.IsAcrossThenDownChecked, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"/>
                        <RadioButton Name="downThenAcross" Content="Down then across" GroupName="ColumnOptions"/>
                    </StackPanel>
                </dx:GroupFrame>

                <dx:GroupFrame Header="Page number">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition Width="130" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition />
                            <RowDefinition />
                            <RowDefinition />
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <Label Margin="0,0,6,4" Grid.Column="0" Grid.Row="0" Content="Page number kind:" VerticalAlignment="Center" />
                        <dxe:ComboBoxEdit Name="pageNumberKindEdit"
                                          ItemsSource="{Binding Path=ViewModel.PageNumberKindValues, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                                          Grid.Column="1" Grid.Row="0"
                                          IsTextEditable="False"
                                          Margin="0,0,0,4"
                                          SelectedItem="{Binding Path=ViewModel.PageNumberKind, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"/>
                        <Label Margin="0,0,6,4" Content="Format string:" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" />
                        <dxe:TextEdit Name="pageNumberFormatEdit" Grid.Column="1" Grid.Row="1" Margin="0,0,0,4"
                                      ValidateOnTextInput="False"
                                      ValidateOnEnterKeyPressed="True"
                                      EditValue="{Binding Path=ViewModel.PageNumberFormat, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}" />
                        <Label Margin="0,0,6,4" Content="Alignment:" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" />
                        <dxe:ComboBoxEdit Name="pageNumberAlignmentEdit"
                                          ItemsSource="{Binding Path=ViewModel.PageNumberAlignmentValues, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                                          Grid.Column="1" Grid.Row="2"
                                          IsTextEditable="False"
                                          SelectedItem="{Binding Path=ViewModel.PageNumberAlignment, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                                          Margin="0,0,0,4" />
                        <Label Margin="0,0,6,0" Content="Location:" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" />
                        <dxe:ComboBoxEdit Name="pageNumberLocationEdit"
                                          ItemsSource="{Binding Path=ViewModel.PageNumberLocationValues, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                                          Grid.Column="1" Grid.Row="3"
                                          IsTextEditable="False"
                                          SelectedItem="{Binding Path=ViewModel.PageNumberLocation, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}" />
                    </Grid>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
    </dxdb:DemoModuleControl>
</local:ModuleBase>!�using System;
using System.Collections.ObjectModel;
using System.Windows;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Printing;
using ColumnLayout = DevExpress.XtraPrinting.ColumnLayout;

namespace PrintingDemo {
    public enum PageNumberLocation { TopMargin, BottomMargin }

    public partial class ColumnReportModule : ModuleBase {
        public ColumnReportModule() {
            InitializeComponent();
        }
    }

    public class ColumnReportModuleViewModel : ModuleViewModelBase {
        static readonly ReadOnlyCollection<HorizontalAlignment> pageNumberAlignmentValues = new ReadOnlyCollection<HorizontalAlignment>(
            new HorizontalAlignment[] { HorizontalAlignment.Left, HorizontalAlignment.Center, HorizontalAlignment.Right }
        );

        PageNumberKind pageNumberKind = PageNumberKind.NumberOfTotal;
        string pageNumberFormat;
        PageNumberLocation pageNumberLocation;
        HorizontalAlignment pageNumberAlignment;
        bool isAcrossThenDownChecked = true;

        public DataTemplate PageNumberTemplate { get; set; }
        public PageNumberKind PageNumberKind {
            get { return pageNumberKind; }
            set {
                if(pageNumberKind.Equals(value))
                    return;
                pageNumberKind = value;
                PageNumberFormat = GetDefaultFormatString();
                CreateDocument();
                RaisePropertyChanged("PageNumberKind");
            }
        }
        public string PageNumberFormat {
            get { return pageNumberFormat; }
            set {
                if(pageNumberFormat == value)
                    return;
                pageNumberFormat = value;
                CreateDocument();
                RaisePropertyChanged("PageNumberFormat");
            }
        }
        public PageNumberLocation PageNumberLocation {
            get { return pageNumberLocation; }
            set {
                if(pageNumberLocation == value)
                    return;
                pageNumberLocation = value;
                CreateDocument();
                RaisePropertyChanged("PageNumberLocation");
            }
        }
        public HorizontalAlignment PageNumberAlignment {
            get { return pageNumberAlignment; }
            set {
                if(pageNumberAlignment == value)
                    return;
                pageNumberAlignment = value;
                CreateDocument();
                RaisePropertyChanged("PageNumberAlignment");
            }
        }
        public bool IsAcrossThenDownChecked {
            get { return isAcrossThenDownChecked; }
            set {
                if(isAcrossThenDownChecked == value)
                    return;
                isAcrossThenDownChecked = value;
                CreateDocument();
                RaisePropertyChanged("IsAcrossThenDownChecked");
            }
        }
        public static Array PageNumberLocationValues {
            get { return Enum.GetValues(typeof(PageNumberLocation)); }
        }
        public static Array PageNumberKindValues {
            get { return Enum.GetValues(typeof(PageNumberKind)); }
        }
        public static ReadOnlyCollection<HorizontalAlignment> PageNumberAlignmentValues { get { return pageNumberAlignmentValues; } }

        public ColumnReportModuleViewModel() {
            pageNumberFormat = GetDefaultFormatString();
        }

        protected override TemplatedLink CreateLink() {
            SimpleLink link = new SimpleLink();
            link.ColumnWidth = 198;
            link.ReportHeaderTemplate = ReportHeaderTemplate;
            link.DetailTemplate = DetailTemplate;
            link.DetailCount = NWindData.Customers.Count;
            link.DocumentName = "Multi-Column";
            link.CreateDetail += link_CreateDetail;
            return link;
        }
        protected override void ProcessLink(TemplatedLink link) {
            ((SimpleLink)link).ColumnLayout = GetColumnLayout();
            ClearPageHeaderFooter();
            DataTemplate template = PageNumberTemplate;
            switch(PageNumberLocation) {
                case PageNumberLocation.TopMargin:
                    link.TopMarginTemplate = template;
                    link.TopMarginData = GetPageNumberDataContext();
                    break;
                case PageNumberLocation.BottomMargin:
                    link.BottomMarginTemplate = template;
                    link.BottomMarginData = GetPageNumberDataContext();
                    break;
            }
        }
        void link_CreateDetail(object sender, CreateAreaEventArgs e) {
            e.Data = NWindData.Customers[e.DetailIndex];
        }
        ColumnLayout GetColumnLayout() {
            return IsAcrossThenDownChecked ? ColumnLayout.AcrossThenDown : ColumnLayout.DownThenAcross;
        }
        object GetPageNumberDataContext() {
            return new PageNumberDataContext(PageNumberKind, PageNumberFormat, PageNumberAlignment);
        }
        void ClearPageHeaderFooter() {
            Link.TopMarginTemplate = null;
            Link.BottomMarginTemplate = null;
            Link.TopMarginData = null;
            Link.BottomMarginData = null;
        }
        string GetDefaultFormatString() {
            switch(PageNumberKind) {
                case PageNumberKind.Number: return "Page {0}";
                case PageNumberKind.NumberOfTotal: return "Page {0} of {1}";
                case PageNumberKind.RomanHiNumber: return "- {0} -";
                case PageNumberKind.RomanLowNumber: return "{0}";
            }
            return string.Empty;
        }
    }
}!FMSBAML```����HDPrintingDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null+clr-namespace:PrintingDemoPrintingDemo("PrintingDemo.DrillDownReportModule\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorseaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing(localclr-namespace:PrintingDemoeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase�	Resources
/)DevExpress.Xpf.Core.BoolToObjectConverter
FalseValue	TrueValue detailConverter 
evenConverter gridHeaderStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit�Property�Value%DevExpress.Xpf.Editors.BaseEdit gridRowStyle�RelativeSource��Mode�Path	�Mode
�	Converter gridFooterStyle detailTemplate,&DevExpress.Xpf.Printing.ExportSettings
TargetType?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension Key82DevExpress.Xpf.Editors.BytesToImageSourceConverter�ColumnDefinitions
�RowDefinitionsIsPrintingMode)#DevExpress.Xpf.Editors.TextEditBaseTextTextDecorations
ElementTag& DevExpress.Xpf.Editors.ImageEdit
Source bytesToImageSourceConverter  booleanToVisibilityConverter��AlternationCountMaskUseAsDisplayFormatMaskTypeMask�%>&	&	)&	N&	�7&	�&	77777777777$Show Detail��$Hide Detail��$	#FFFFFFFF��$	#FFF5F5F5����".�����	#FFA9A9A9���$
Bold"����
������@IsPrintingMode.���$
5,3,5,3q����$14(���".�����	#FFA9A9A9��@IsPrintingMode.���$
5,3,5,3q����$14(�������$TemplatedParent=�$%(ItemsControl.AlternationIndex)�$	OneWay=�8
��".�����	#FFA9A9A9��@IsPrintingMode.��.R��$
�0,20q�$Panel=���*UsablePageWidth+
 booleanToVisibilityConverterbytesToImageSourceConverter��$�*���$
�Auto�
�$
��Auto��$
��Auto�.+���$Panel=�$��0�$�0�.+�.��	#FF0080C0$�18(�$
�Bold"��*Content.Category.CategoryName+$	OneWay=�$	�0,5q�.$�14(�$�Italic$��*Content.Category.Description+$	OneWay=�$	�0,5q�.$�14(���	#FF0080C0$	Underline{��*Content.Category.CategoryID+$	OneWay=��*Content.IsExpanded+8
$�0,0,0,10q�$��0�$�1�.�*Content.Category.Picture+$	OneWay=�8
��$�0q�$Panel=�$��1���*UsablePageWidth+y��*Content.IsExpanded+8
.+����$	�40*���$	�35*���$	�25*�.+�$
�1,1,0,0q�$�0�8�$Product Name��$
�1,1,0,0q�$�1�8�$Quantity Per Unit��$
�1,1,1,0q�$�2�8�$
Unit Price����$�2����*Content.Category.Products+$2�����.R����$	�40*���$	�35*���$	�25*�.+�$
�1,1,0,0q�$�0�8��*
ProductName+$	OneWay=�$
�1,1,0,0q�$�1�8��*QuantityPerUnit+$	OneWay=�$
�1,1,1,0q�$�2�8�$�Right=�.$
Numeric=�$c2���*	UnitPrice+$	OneWay=�$
�0,1,0,0q�8�	$���DataContext1	+PrintingDemo.DrillDownReportModuleViewModel	&
 PrintingDemo.ModuleViewModelBase
DetailTemplate#[.�/)DevExpress.Xpf.DemoBase.DemoModuleControlContent.-'DevExpress.Xpf.Printing.DocumentPreviewModel�$PreviewModel�!�<local:ModuleBase x:Class="PrintingDemo.DrillDownReportModule"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                  xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
                  xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
                  xmlns:local="clr-namespace:PrintingDemo"
                  xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase">

    <local:ModuleBase.Resources>
        <dx:BoolToObjectConverter FalseValue="Show Detail" TrueValue="Hide Detail" x:Key="detailConverter"/>
        <dx:BoolToObjectConverter FalseValue="#FFFFFFFF" TrueValue="#FFF5F5F5" x:Key="evenConverter"/>

        <Style x:Key="gridHeaderStyle" TargetType="{x:Type dxe:TextEdit}">
            <Setter Property="BorderBrush" Value="#FFA9A9A9"/>
            <Setter Property="FontWeight" Value="Bold"/>
            <Setter Property="Background" Value="LightGray"/>
            <Setter Property="IsPrintingMode" Value="True"/>
            <Setter Property="Padding" Value="5,3,5,3"/>
            <Setter Property="FontSize" Value="14"/>
        </Style>

        <Style x:Key="gridRowStyle" TargetType="{x:Type dxe:TextEdit}">
            <Setter Property="BorderBrush" Value="#FFA9A9A9"/>
            <Setter Property="IsPrintingMode" Value="True"/>
            <Setter Property="Padding" Value="5,3,5,3"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="Background" Value="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(ItemsControl.AlternationIndex), Mode=OneWay, Converter={StaticResource evenConverter}}"/>
        </Style>

        <Style x:Key="gridFooterStyle" TargetType="{x:Type dxe:TextEdit}">
            <Setter Property="BorderBrush" Value="#FFA9A9A9"/>
            <Setter Property="IsPrintingMode" Value="True"/>
        </Style>

        <DataTemplate x:Key="detailTemplate">
            <Grid Margin="0,20" dxp:ExportSettings.TargetType="Panel" Width="{Binding UsablePageWidth}">
                <Grid.Resources>
                    <dx:BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/>
                    <dxe:BytesToImageSourceConverter x:Key="bytesToImageSourceConverter"/>
                </Grid.Resources>

                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <StackPanel dxp:ExportSettings.TargetType="Panel" Grid.Row="0" Grid.Column="0">
                    <dxe:TextEdit IsPrintingMode="True" Foreground="#FF0080C0" FontSize="18" FontWeight="Bold" Text="{Binding Content.Category.CategoryName, Mode=OneWay}"/>

                    <dxe:TextEdit Margin="0,5" IsPrintingMode="True" FontSize="14" FontStyle="Italic" Text="{Binding Content.Category.Description, Mode=OneWay}"/>

                    <dxe:TextEdit Margin="0,5" IsPrintingMode="True" FontSize="14" Foreground="#FF0080C0" TextDecorations="Underline"
                                  dxp:ExportSettings.ElementTag="{Binding Content.Category.CategoryID, Mode=OneWay}"
                                  Text="{Binding Content.IsExpanded, Converter={StaticResource detailConverter}}"/>
                </StackPanel>

                <dxe:ImageEdit Margin="0,0,0,10" Grid.Row="0" Grid.Column="1" IsPrintingMode="True"
                               Source="{Binding Content.Category.Picture, Mode=OneWay, Converter={StaticResource bytesToImageSourceConverter}}"/>

                <StackPanel Margin="0" dxp:ExportSettings.TargetType="Panel" Grid.Row="1" Width="{Binding UsablePageWidth}"
                            Visibility="{Binding Content.IsExpanded,Converter={StaticResource booleanToVisibilityConverter}}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="40*"/>
                            <ColumnDefinition Width="35*"/>
                            <ColumnDefinition Width="25*"/>
                        </Grid.ColumnDefinitions>

                        <dxe:TextEdit BorderThickness="1,1,0,0" Grid.Column="0" Style="{StaticResource gridHeaderStyle}" Text="Product Name"/>
                        <dxe:TextEdit BorderThickness="1,1,0,0" Grid.Column="1" Style="{StaticResource gridHeaderStyle}" Text="Quantity Per Unit"/>
                        <dxe:TextEdit BorderThickness="1,1,1,0" Grid.Column="2" Style="{StaticResource gridHeaderStyle}" Text="Unit Price"/>
                    </Grid>

                    <ItemsControl Grid.ColumnSpan="2" ItemsSource="{Binding Content.Category.Products}">
                        <ItemsControl.AlternationCount>
                            2
                        </ItemsControl.AlternationCount>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="40*"/>
                                        <ColumnDefinition Width="35*"/>
                                        <ColumnDefinition Width="25*"/>
                                    </Grid.ColumnDefinitions>
                                    <dxe:TextEdit BorderThickness="1,1,0,0" Grid.Column="0" Style="{StaticResource gridRowStyle}" Text="{Binding ProductName, Mode=OneWay}"/>
                                    <dxe:TextEdit BorderThickness="1,1,0,0" Grid.Column="1" Style="{StaticResource gridRowStyle}" Text="{Binding QuantityPerUnit, Mode=OneWay}"/>
                                    <dxe:TextEdit BorderThickness="1,1,1,0" Grid.Column="2" Style="{StaticResource gridRowStyle}" Text="{Binding UnitPrice, Mode=OneWay}"
                                                  HorizontalContentAlignment ="Right" MaskUseAsDisplayFormat="True" MaskType="Numeric" Mask="c2"/>
                                </Grid>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>

                    <dxe:TextEdit BorderThickness="0,1,0,0" Style="{StaticResource gridFooterStyle}" Text=""/>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </local:ModuleBase.Resources>

    <local:ModuleBase.DataContext>
        <local:DrillDownReportModuleViewModel DetailTemplate="{StaticResource detailTemplate}" />
    </local:ModuleBase.DataContext>

    <dxdb:DemoModuleControl>
        <dxp:DocumentPreview Model="{Binding Path=PreviewModel}" />
    </dxdb:DemoModuleControl>
</local:ModuleBase>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Input;
using DevExpress.Xpf.Printing;

namespace PrintingDemo {
    public partial class DrillDownReportModule : ModuleBase {
        public DrillDownReportModule() {
            InitializeComponent();
        }
    }

    public class DrillDownReportModuleViewModel : ModuleViewModelBase {
        int pageNumber;

        public class CategoryWrapper {
            public bool IsExpanded { get; set; }
            public Category Category { get; private set; }

            public CategoryWrapper(bool isExpanded, Category category) {
                this.IsExpanded = isExpanded;
                this.Category = category;
            }
        }
        Dictionary<int, CategoryWrapper> CategoryWrappers { get; set; }

        public DrillDownReportModuleViewModel() {
            FillCategoryWrappers();
        }

        protected override TemplatedLink CreateLink() {
            SimpleLink link = new SimpleLink();
            link.DetailTemplate = DetailTemplate;
            link.DocumentName = "Drill-Down";
            link.DetailCount = CategoryWrappers.Count;
            link.CreateDetail += link_CreateDetail;
            return link;
        }
        protected override void ProcessPreviewModel(LinkPreviewModel previewModel) {
            previewModel.PreviewClick += OnPreviewClick;
            previewModel.PreviewMouseMove += OnPreviewMouseMove;
        }
        void link_CreateDetail(object sender, CreateAreaEventArgs e) {
            e.Data = CategoryWrappers[CategoryWrappers.ElementAt(e.DetailIndex).Value.Category.CategoryID];
        }
        void OnPreviewClick(object sender, PreviewClickEventArgs e) {
            if(e.ElementTag == null)
                return;
            int categoryID = Int32.Parse(e.ElementTag);
            CategoryWrappers[categoryID].IsExpanded = !CategoryWrappers[categoryID].IsExpanded;
            pageNumber = PreviewModel.CurrentPageNumber;
            Link.CreateDocumentFinished += link_CreateDocumentFinished;
            Link.CreateDocument(true);
        }
        void link_CreateDocumentFinished(object sender, EventArgs e) {
            Link.CreateDocumentFinished -= link_CreateDocumentFinished;
            PreviewModel.CurrentPageNumber = pageNumber < PreviewModel.PageCount ? pageNumber : PreviewModel.PageCount;
        }
        void OnPreviewMouseMove(object sender, PreviewClickEventArgs e) {
            if(e.ElementTag == null)
                return;
            e.Element.Cursor = Cursors.Hand;
        }
        void FillCategoryWrappers() {
            CategoryWrappers = new Dictionary<int, CategoryWrapper>();
            foreach(var category in NorthwindDataHelper.Categories) {
                CategoryWrappers.Add(category.CategoryID, new CategoryWrapper(false, category));
            }
        }
    }
}!^MSBAML```����a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49atPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1DevExpress.Xpf.Editors.ControlsHDPrintingDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null+clr-namespace:PrintingDemoPrintingDemo+%PrintingDemo.EmployeeListReportModule\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase<dxb2http://schemas.devexpress.com/winfx/2008/xaml/barseaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors[dxecPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1&localclr-namespace:PrintingDemo:d2http://schemas.microsoft.com/expression/blend/2008Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006�	Resources
 
pageInfoStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit,&DevExpress.Xpf.Printing.ExportSettings�Property�Value%DevExpress.Xpf.Editors.BaseEdit commonTextStyle 
detailText��BasedOn 
headerText 
	valueText reportHeaderTemplate)#DevExpress.Xpf.Editors.TextEditBaseText�Path�Mode detailTemplate
TargetType	Bookmark
�StringFormat,&DevExpress.Xpf.Core.ImageDataConverter Key�ColumnDefinitions�RowDefinitions& DevExpress.Xpf.Editors.ImageEdit

Source imageDataConverter�	ConverterTextWrapping 	reportFooterTemplate1+DevExpress.Xpf.Editors.Controls.DXSeparator 
pageFooterTemplate60DevExpress.Xpf.Printing.PageNumberExportSettingsKind
Format�%�&	&	�&	7&	a7&	�7&	;&	�77777777777&		Y&	
�7��".���@
TargetType$
PageNumber=����$Tahoma)����$11(����
����@IsPrintingMode.��".����
��������$Tahoma)����$11(���@IsPrintingMode.��"8.����$
0 0 0 5q����$
8 4 4 4q���"8.����$
0 0 5 5q�����#6D8C59���
��������$
Bold"����$
8 4 8 4q���"8.�����#F0EDDA���
����.R�$
Employee List��$�48��$�0 0 0 35q�$�Center=�$�Center=�$�Tahoma)�$�27(�
��������#6D8C59��$UsablePageWidth�$OneWay=���.R��$Panel=�$�0,0,0,20q���$UsablePageWidth�$OneWay=�	`�$
{0} {1}��.1��$Content.FirstName��$Content.LastName�
imageDataConverter��$
�Auto���$�24���$�*��$
��Auto�.+�$�0�$��0�$�7q���#F0EDDA$	�Top=�
�$
Content.Photo�8�$�2�$��0���$
�Auto���$�*��$
��Auto��$
��Auto��$
��Auto��$
��Auto��$
��Auto�.+�$��0�$�0�$Name:��8�$��0�$�1�8�`�$
{0} {1}��.1��$Content.FirstName��$Content.LastName�$��1�$�0�$	Position:��8�$��1�$�1�8��*
Content.Title+$��2�$�0�$Birth Date:��8�$��2�$�1�8��$Content.BirthDate�$
{0:d}��$��3�$�0�$About:��8�$��3�$�1�$
Wrap=�8��*
Content.Notes+$��4�$�0�$Address:��8�	$��4�$�1�8�
`�$

{0}, {1}, {2}��.1��$Content.Country��$Content.City��$Content.Address���.R���.+�$Image=���$UsablePageWidth�$OneWay=��$
Content�$OneWay=���.R�8�$
NumberOfTotal=�$	{0} / {1}��$�Right=���$UsablePageWidth�$OneWay=��DataContext4	.PrintingDemo.EmployeeListReportModuleViewModel	&
 PrintingDemo.ModuleViewModelBase
ReportHeaderTemplate#[
DetailTemplate#[
ReportFooterTemplate#[	
PageFooterTemplate#[
.�/)DevExpress.Xpf.DemoBase.DemoModuleControlContent.-'DevExpress.Xpf.Printing.DocumentPreviewModel�$PreviewModel�!/%<local:ModuleBase x:Class="PrintingDemo.EmployeeListReportModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxec="clr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1"
    xmlns:local="clr-namespace:PrintingDemo"
    mc:Ignorable="d"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    d:DesignWidth="800" d:DesignHeight="400">

    <local:ModuleBase.Resources>
        <ResourceDictionary>
            <Style x:Key="pageInfoStyle" TargetType="dxe:TextEdit">
                <Setter Property="dxp:ExportSettings.TargetType" Value="PageNumber" />
                <Setter Property="FontFamily" Value="Tahoma"></Setter>
                <Setter Property="FontSize" Value="11"></Setter>
                <Setter Property="Foreground" Value="Black"></Setter>
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>

            <Style x:Key="commonTextStyle" TargetType="dxe:TextEdit">
                <Setter Property="BorderBrush" Value="White" />
                <Setter Property="FontFamily" Value="Tahoma" />
                <Setter Property="FontSize" Value="11" />
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>

            <Style x:Key="detailText" TargetType="dxe:TextEdit" BasedOn="{StaticResource commonTextStyle}">
                <Setter Property="BorderThickness" Value="0 0 0 5" />
                <Setter Property="Padding" Value="8 4 4 4" />
            </Style>

            <Style x:Key="headerText" TargetType="dxe:TextEdit" BasedOn="{StaticResource commonTextStyle}">
                <Setter Property="BorderThickness" Value="0 0 5 5" />
                <Setter Property="Background" Value="#6D8C59" />
                <Setter Property="Foreground" Value="White" />
                <Setter Property="FontWeight" Value="Bold" />
                <Setter Property="Padding" Value="8 4 8 4" />
            </Style>

            <Style x:Key="valueText" TargetType="dxe:TextEdit" BasedOn="{StaticResource detailText}">
                <Setter Property="Background" Value="#F0EDDA" />
                <Setter Property="Foreground" Value="Black" />

            </Style>

            <DataTemplate x:Key="reportHeaderTemplate">
                <dxe:TextEdit Text="Employee List"
                                         Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                                         Height="48" Margin="0 0 0 35"
                                         HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
                                         FontFamily="Tahoma" FontSize="27" Foreground="White" Background="#6D8C59" />
            </DataTemplate>

            <DataTemplate x:Key="detailTemplate">
                <Grid Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                      dxp:ExportSettings.TargetType="Panel"
                      Margin="0,0,0,20">

                    <dxp:ExportSettings.Bookmark>
                        <MultiBinding StringFormat="{}{0} {1}">
                            <Binding Path="Content.FirstName" />
                            <Binding Path="Content.LastName" />
                        </MultiBinding>
                    </dxp:ExportSettings.Bookmark>

                    <Grid.Resources>
                        <dx:ImageDataConverter x:Key="imageDataConverter" />
                    </Grid.Resources>

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="24" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                    </Grid.RowDefinitions>

                    <dxe:ImageEdit Grid.Column="0" Grid.Row="0" BorderThickness="7" BorderBrush="#F0EDDA" VerticalAlignment="Top">
                        <dxe:ImageEdit.Source>
                            <Binding Path="Content.Photo" Converter="{StaticResource imageDataConverter}" />
                        </dxe:ImageEdit.Source>
                    </dxe:ImageEdit>

                    <Grid Grid.Column="2" Grid.Row="0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>

                        <dxe:TextEdit Grid.Row="0" Grid.Column="0" Text="Name:" Style="{StaticResource headerText}" />
                        <dxe:TextEdit Grid.Row="0" Grid.Column="1" Style="{StaticResource valueText}">
                            <dxe:TextEdit.Text>
                                <MultiBinding StringFormat="{}{0} {1}">
                                    <Binding Path="Content.FirstName" />
                                    <Binding Path="Content.LastName" />
                                </MultiBinding>
                            </dxe:TextEdit.Text>
                        </dxe:TextEdit>

                        <dxe:TextEdit Grid.Row="1" Grid.Column="0" Text="Position:" Style="{StaticResource headerText}" />
                        <dxe:TextEdit Grid.Row="1" Grid.Column="1" Text="{Binding Content.Title}" Style="{StaticResource valueText}" />

                        <dxe:TextEdit Grid.Row="2" Grid.Column="0" Text="Birth Date:" Style="{StaticResource headerText}" />
                        <dxe:TextEdit Grid.Row="2" Grid.Column="1" Style="{StaticResource valueText}">
                            <dxe:TextEdit.Text>
                                <Binding Path="Content.BirthDate" StringFormat="{}{0:d}" />
                            </dxe:TextEdit.Text>
                        </dxe:TextEdit>

                        <dxe:TextEdit Grid.Row="3" Grid.Column="0" Text="About:" Style="{StaticResource headerText}" />
                        <dxe:TextEdit Grid.Row="3" Grid.Column="1" Text="{Binding Content.Notes}" TextWrapping="Wrap" Style="{StaticResource valueText}" />

                        <dxe:TextEdit Grid.Row="4" Grid.Column="0" Text="Address:" Style="{StaticResource headerText}" />
                        <dxe:TextEdit Grid.Row="4" Grid.Column="1" Style="{StaticResource valueText}">
                            <dxe:TextEdit.Text>
                                <MultiBinding StringFormat="{}{0}, {1}, {2}">
                                    <Binding Path="Content.Country" />
                                    <Binding Path="Content.City" />
                                    <Binding Path="Content.Address" />
                                </MultiBinding>
                            </dxe:TextEdit.Text>
                        </dxe:TextEdit>
                    </Grid>
                </Grid>
            </DataTemplate>

            <DataTemplate x:Key="reportFooterTemplate">
                <StackPanel>
                    <dxec:DXSeparator Width="{Binding Path=UsablePageWidth, Mode=OneWay}" dxp:ExportSettings.TargetType="Image" />
                    <dxe:TextEdit Text="{Binding Path=Content, Mode=OneWay}" />
                </StackPanel>
            </DataTemplate>

            <DataTemplate x:Key="pageFooterTemplate">
                <dxe:TextEdit Style="{StaticResource pageInfoStyle}"
                              dxp:PageNumberExportSettings.Kind="NumberOfTotal"
                              dxp:PageNumberExportSettings.Format="{}{0} / {1}"
                              Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                                         HorizontalContentAlignment="Right" />
            </DataTemplate>
        </ResourceDictionary>
    </local:ModuleBase.Resources>

    <local:ModuleBase.DataContext>
        <local:EmployeeListReportModuleViewModel ReportHeaderTemplate="{StaticResource reportHeaderTemplate}"
                                                 DetailTemplate="{StaticResource detailTemplate}"
                                                 ReportFooterTemplate="{StaticResource reportFooterTemplate}"
                                                 PageFooterTemplate="{StaticResource pageFooterTemplate}" />
    </local:ModuleBase.DataContext>

    <dxdb:DemoModuleControl>
        <dxp:DocumentPreview Model="{Binding Path=PreviewModel}" />
    </dxdb:DemoModuleControl>
</local:ModuleBase>!�using System;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Printing;

namespace PrintingDemo {
    public partial class EmployeeListReportModule : ModuleBase {
        public EmployeeListReportModule() {
            InitializeComponent();
        }
    }

    public class EmployeeListReportModuleViewModel : ModuleViewModelBase {
        protected override TemplatedLink CreateLink() {
            SimpleLink link = new SimpleLink();
            link.ReportHeaderTemplate = ReportHeaderTemplate;
            link.DetailTemplate = DetailTemplate;
            link.ReportFooterTemplate = ReportFooterTemplate;
            link.PageFooterTemplate = PageFooterTemplate;
            link.DetailCount = NWindData.Employees.Count;
            link.DocumentName = "Badges";
            link.ReportFooterData = String.Format("Generated on {0}", DateTime.Now);
            link.ReportFooterData = String.Concat(link.ReportFooterData, String.Format(" by {0}\\{1}", Environment.UserDomainName, Environment.UserName));
            link.CreateDetail += link_CreateDetail;
            return link;
        }
        void link_CreateDetail(object sender, CreateAreaEventArgs e) {
            e.Data = NWindData.Employees[e.DetailIndex];
        }
    }
}!J	using System.Collections.Generic;
using System.ComponentModel;
using System.IO;

namespace DevExpress.Demos.DataSources {
    [DisplayName("Fishes")]
    public class Fishes : List<Fish> {
        public Fishes(string filePath) {
            if(File.Exists(filePath)) {
                using(Stream stream = File.OpenRead(filePath)) {
                    this.LoadFrom(stream);
                }
            }
        }
        public Fishes(Stream stream) {
            this.LoadFrom(stream);
        }
        void LoadFrom(Stream stream) {
            TextReader input = new StreamReader(stream);
            string line;
            int id = 0;
            while((line = input.ReadLine()) != null) {
                string[] items = line.Split('|');
                if(items.Length == 4) {
                    Fish fishItem = new Fish(items[0], items[1], items[2], items[3], ++id);
                    this.Add(fishItem);
                }
            }
            input.Close();
        }
    }
    public class Fish {
        private int id;
        private string category = "Undefined";
        private string commonName = "Undefined";
        private string speciesName = "Undefined";
        private string notes = "Undefined";

        [DisplayName("Fish Category")]
        public string Category {
            get { return category; }
            set { category = value; }
        }
        [DisplayName("Fish Common Name")]
        public string CommonName {
            get { return commonName; }
            set { commonName = value; }
        }
        [DisplayName("Fish Species Name")]
        public string SpeciesName {
            get { return speciesName; }
            set { speciesName = value; }
        }
        [DisplayName("Fish Notes")]
        public string Notes {
            get { return notes; }
            set { notes = value; }
        }
        [DisplayName("Fish ID")]
        public int ID {
            get { return id; }
            set { id = value; }
        }
        public Fish(string category, string commonName, string speciesName, string notes, int id) {
            this.category = category;
            this.commonName = commonName;
            this.speciesName = speciesName;
            this.notes = notes;
            this.id = id;
        }
    }
}!�MSBAML```����HDPrintingDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null+clr-namespace:PrintingDemoPrintingDemo& PrintingDemo.GroupedReportModule\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorseaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing(localclr-namespace:PrintingDemo<d2http://schemas.microsoft.com/expression/blend/2008Fmc;http://schemas.openxmlformats.org/markup-compatibility/2006�	Resources
 
pageInfoStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit,&DevExpress.Xpf.Printing.ExportSettings�Property�Value%DevExpress.Xpf.Editors.BaseEdit detailTextStyle��Triggers��Binding�Path�Mode��Value groupHeaderTemplate	Name
IsPrintingMode)#DevExpress.Xpf.Editors.TextEditBaseTextBookmark reportHeaderTemplate detailTemplate

TargetTypeBookmarkParentName�ColumnDefinitions�StringFormat pageFooterTemplate60DevExpress.Xpf.Printing.PageNumberExportSettingsKind
Format�%�&	&	�&	�&	�&	�777&	-7��".���@
TargetType$
PageNumber=����$Tahoma)����$8.25pt(����
����@IsPrintingMode.��".����$
1,0,0,1q�����#C7D1E4���$
4,0,4,0q����$Tahoma)����$8.25pt(����
��������$22�����$Center=���@IsPrintingMode.���$IsEven�$OneWay=�true.a�����#EFF3FA��.R�$	groupHeader��$�35����#C9D6ED��#AFBED8$�1q�$�Tahoma)�$
�14.25pt(�$
�Bold"�$�Center=�$�Center=�
.�*Content.Name+$OneWay=��*Content.Name+��$UsablePageWidth�$OneWay=���.R�$�65����#EBE3D6$�Tahoma)�$
�21.75pt(�
.$�Center=�$�Center=�$Product List by Category����$UsablePageWidth�$OneWay=���.R��$�0q�$
�Stretch=�$
Panel=�$groupHeader����$UsablePageWidth�$OneWay=��*Content.ProductName+��$�2*���$�3*���$�*�.+�8�$�10,0,0,0q��*Content.ProductName+$�1�8��*Content.QuantityPerUnit+$�2�8�$
�1,0,1,1q�$�Right=��$Content.UnitPrice�${0:C}����.R�8�$
NumberOfTotal=�$	{0} / {1}��$�Right=���$UsablePageWidth�$OneWay=��DataContext/)PrintingDemo.GroupedReportModuleViewModelGroupHeaderTemplate#[& PrintingDemo.ModuleViewModelBaseReportHeaderTemplate#[DetailTemplate#[PageFooterTemplate#[.�/)DevExpress.Xpf.DemoBase.DemoModuleControlContent.-	'DevExpress.Xpf.Printing.DocumentPreview		Model�$PreviewModel�OptionsContent$
DevExpress.Xpf.Core.GroupFrame
$��
Group Options��.���$�0,0,12,0q�.+�& DevExpress.Xpf.Editors.CheckEdit-$�keepTogether��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$
Keep Together	IsChecked�$ViewModel.KeepTogether�$TwoWay=��RelativeSource����AncestorType$local:ModuleBaseL�{��$%ViewModel.IsKeepTogetherEnabled�$OneWay=���$local:ModuleBaseL�-$�repeatHeaderEveryPage��$
�0,0,0,4q�$Repeat Header Every Page�$%ViewModel.RepeatHeaderEveryPage�$TwoWay=���$local:ModuleBaseL�{��$.(ViewModel.IsRepeatHeaderEveryPageEnabled�$OneWay=���$local:ModuleBaseL�-$�pageBreakAfter��$�0q�$Page Break After�$ViewModel.PageBreakAfter�$TwoWay=���$local:ModuleBaseL�{��$'!ViewModel.IsPageBreakAfterEnabled�$OneWay=���$local:ModuleBaseL�!� <local:ModuleBase x:Class="PrintingDemo.GroupedReportModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:local="clr-namespace:PrintingDemo"
    mc:Ignorable="d"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    d:DesignWidth="800" d:DesignHeight="400">

    <local:ModuleBase.Resources>
        <ResourceDictionary>
            <Style x:Key="pageInfoStyle" TargetType="dxe:TextEdit">
                <Setter Property="dxp:ExportSettings.TargetType" Value="PageNumber" />
                <Setter Property="FontFamily" Value="Tahoma"></Setter>
                <Setter Property="FontSize" Value="8.25pt"></Setter>
                <Setter Property="Foreground" Value="Black"></Setter>
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>
            <Style x:Key="detailTextStyle" TargetType="dxe:TextEdit">
                <Setter Property="BorderThickness" Value="1,0,0,1" />
                <Setter Property="BorderBrush" Value="#C7D1E4" />
                <Setter Property="Padding" Value="4,0,4,0" />
                <Setter Property="FontFamily" Value="Tahoma" />
                <Setter Property="FontSize" Value="8.25pt" />
                <Setter Property="Background" Value="White" />
                <Setter Property="Height" Value="22" />
                <Setter Property="VerticalContentAlignment" Value="Center" />
                <Setter Property="IsPrintingMode" Value="True"></Setter>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=IsEven, Mode=OneWay}" Value="true">
                        <Setter Property="Background" Value="#EFF3FA" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>

            <DataTemplate x:Key="groupHeaderTemplate">
                <dxe:TextEdit x:Name="groupHeader"
                              Text="{Binding Content.Name, Mode=OneWay}"
                              dxp:ExportSettings.Bookmark="{Binding Content.Name}"
                              Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                              Height="35"
                              Background="#C9D6ED"
                              BorderBrush="#AFBED8"
                              BorderThickness="1"
                              FontFamily="Tahoma"
                              FontSize="14.25pt"
                              FontWeight="Bold"
                              HorizontalContentAlignment="Center"
                              VerticalContentAlignment="Center"
                              IsPrintingMode="True"/>
            </DataTemplate>

            <DataTemplate x:Key="reportHeaderTemplate">
                <dxe:TextEdit Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                              Height="65"
                              Background="#EBE3D6"
                              FontFamily="Tahoma"
                              FontSize="21.75pt"
                              IsPrintingMode="True"
                              HorizontalContentAlignment="Center"
                              VerticalContentAlignment="Center"
                              Text="Product List by Category" />
            </DataTemplate>

            <DataTemplate x:Key="detailTemplate">
                <Grid Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                      Margin="0"
                      HorizontalAlignment="Stretch"
                      dxp:ExportSettings.TargetType="Panel"
                      dxp:ExportSettings.Bookmark="{Binding Content.ProductName}"
                      dxp:ExportSettings.BookmarkParentName="groupHeader">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="2*"/>
                        <ColumnDefinition Width="3*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <dxe:TextEdit Style="{StaticResource detailTextStyle}"
                                  Margin="10,0,0,0"
                                  Text="{Binding Content.ProductName}"/>
                    <dxe:TextEdit Grid.Column="1"
                                  Style="{StaticResource detailTextStyle}"
                                  Text="{Binding Content.QuantityPerUnit}" />
                    <dxe:TextEdit Grid.Column="2"
                                  Style="{StaticResource detailTextStyle}"
                                  BorderThickness="1,0,1,1"
                                  HorizontalContentAlignment="Right">
                        <dxe:TextEdit.Text>
                            <Binding Path="Content.UnitPrice" StringFormat="{}{0:C}" />
                        </dxe:TextEdit.Text>
                    </dxe:TextEdit>
                </Grid>
            </DataTemplate>

            <DataTemplate x:Key="pageFooterTemplate">
                <dxe:TextEdit Style="{StaticResource pageInfoStyle}"
                                      dxp:PageNumberExportSettings.Kind="NumberOfTotal"
                                      dxp:PageNumberExportSettings.Format="{}{0} / {1}"
                                      Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                                      HorizontalContentAlignment="Right" />
            </DataTemplate>
        </ResourceDictionary>
    </local:ModuleBase.Resources>

    <local:ModuleBase.DataContext>
        <local:GroupedReportModuleViewModel GroupHeaderTemplate="{StaticResource groupHeaderTemplate}"
                                            ReportHeaderTemplate="{StaticResource reportHeaderTemplate}"
                                            DetailTemplate="{StaticResource detailTemplate}"
                                            PageFooterTemplate="{StaticResource pageFooterTemplate}"/>
    </local:ModuleBase.DataContext>

    <dxdb:DemoModuleControl>
        <dxp:DocumentPreview Model="{Binding Path=PreviewModel}"/>
        <dxdb:DemoModuleControl.OptionsContent>
            <dx:GroupFrame Header="Group Options">
                <StackPanel Margin="0,0,12,0">
                    <dxe:CheckEdit Name="keepTogether"
                               Margin="0,0,0,4"
                               Content="Keep Together"
                               IsChecked="{Binding Path=ViewModel.KeepTogether, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                               IsEnabled="{Binding Path=ViewModel.IsKeepTogetherEnabled, Mode=OneWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"/>
                    <dxe:CheckEdit Name="repeatHeaderEveryPage"
                               Margin="0,0,0,4"
                               Content="Repeat Header Every Page"
                               IsChecked="{Binding Path=ViewModel.RepeatHeaderEveryPage, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                               IsEnabled="{Binding Path=ViewModel.IsRepeatHeaderEveryPageEnabled, Mode=OneWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"/>
                    <dxe:CheckEdit Name="pageBreakAfter"
                               Margin="0"
                               Content="Page Break After"
                               IsChecked="{Binding Path=ViewModel.PageBreakAfter, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"
                               IsEnabled="{Binding Path=ViewModel.IsPageBreakAfterEnabled, Mode=OneWay, RelativeSource={RelativeSource AncestorType=local:ModuleBase}}"/>
                </StackPanel>
            </dx:GroupFrame>
        </dxdb:DemoModuleControl.OptionsContent>
    </dxdb:DemoModuleControl>
</local:ModuleBase>!vusing System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Printing;
using DevExpress.XtraPrinting.DataNodes;

namespace PrintingDemo {
    public partial class GroupedReportModule : ModuleBase {
        public GroupedReportModule() {
            InitializeComponent();
        }
    }

    public class GroupedReportModuleViewModel : ModuleViewModelBase {
        bool keepTogether;
        bool repeatHeaderEveryPage;
        bool pageBreakAfter;
        bool isKeepTogetherEnabled = true;
        bool isRepeatHeaderEveryPageEnabled = true;
        bool isPageBreakAfterEnabled = true;

        public bool KeepTogether {
            get {
                return keepTogether;
            }
            set {
                if(keepTogether == value)
                    return;
                keepTogether = value;
                RaisePropertyChanged("KeepTogether");
                CreateDocument();
            }
        }
        public bool IsKeepTogetherEnabled {
            get {
                return isKeepTogetherEnabled;
            }
            set {
                if(isKeepTogetherEnabled == value)
                    return;
                isKeepTogetherEnabled = value;
                RaisePropertyChanged("IsKeepTogetherEnabled");
            }
        }
        public bool RepeatHeaderEveryPage {
            get {
                return repeatHeaderEveryPage;
            }
            set {
                if(repeatHeaderEveryPage == value)
                    return;
                repeatHeaderEveryPage = value;
                RaisePropertyChanged("RepeatHeaderEveryPage");
                CreateDocument();
            }
        }
        public bool IsRepeatHeaderEveryPageEnabled {
            get {
                return isRepeatHeaderEveryPageEnabled;
            }
            set {
                if(isRepeatHeaderEveryPageEnabled == value)
                    return;
                isRepeatHeaderEveryPageEnabled = value;
                RaisePropertyChanged("IsRepeatHeaderEveryPageEnabled");
            }
        }
        public bool PageBreakAfter {
            get {
                return pageBreakAfter;
            }
            set {
                if(pageBreakAfter == value)
                    return;
                pageBreakAfter = value;
                RaisePropertyChanged("PageBreakAfter");
                CreateDocument();
            }
        }
        public bool IsPageBreakAfterEnabled {
            get {
                return isPageBreakAfterEnabled;
            }
            set {
                if(isPageBreakAfterEnabled == value)
                    return;
                isPageBreakAfterEnabled = value;
                RaisePropertyChanged("IsPageBreakAfterEnabled");
            }
        }
        public DataTemplate GroupHeaderTemplate { get; set; }

        protected override TemplatedLink CreateLink() {
            CollectionViewLink link = new CollectionViewLink();
            link.GroupInfos.Add(new GroupInfo(GroupHeaderTemplate));
            link.ReportHeaderTemplate = ReportHeaderTemplate;
            link.DetailTemplate = DetailTemplate;
            link.PageFooterTemplate = PageFooterTemplate;
            link.CollectionView = CreateCollectionViewSource().View;
            link.DocumentName = "Products by Categories";
            return link;
        }
        protected override void ProcessLink(TemplatedLink link) {
            IsRepeatHeaderEveryPageEnabled = !(PageBreakAfter || KeepTogether);
            IsPageBreakAfterEnabled = !RepeatHeaderEveryPage;
            IsKeepTogetherEnabled = !RepeatHeaderEveryPage;
            CollectionViewLink collectionViewLink = (CollectionViewLink)link;
            collectionViewLink.GroupInfos[0].Union = KeepTogether ? GroupUnion.WholePage : GroupUnion.None;
            collectionViewLink.GroupInfos[0].RepeatHeaderEveryPage = RepeatHeaderEveryPage;
            collectionViewLink.GroupInfos[0].PageBreakAfter = PageBreakAfter;
        }
        CollectionViewSource CreateCollectionViewSource() {
            CollectionViewSource source = new CollectionViewSource { Source = NWindData.ProductsForPrinting };
            source.View.GroupDescriptions.Add(new PropertyGroupDescription("CategoryName"));
            return source;
        }
    }
}!using DevExpress.Xpf.DemoBase;

namespace PrintingDemo {
    public class ModuleBase : DemoModule {
        public ModuleViewModelBase ViewModel {
            get {
                return (ModuleViewModelBase)DataContext;
            }
        }

        public override bool AllowRtl { get { return false; } }

        protected override void RaiseActualLoaded() {
            base.RaiseActualLoaded();
            if(ViewModel != null) {
                ViewModel.CreateDocument();
            }
        }

        protected override void Clear() {
            base.Clear();
            if(ViewModel != null) {
                ViewModel.ClearDocument();
            }
        }

        protected virtual bool NeedChangeEditorsTheme { get { return false; } }
    }
}!a	using System;
using System.ComponentModel;
using System.Windows;
using DevExpress.Xpf.Printing;

namespace PrintingDemo {
    public abstract class ModuleViewModelBase : INotifyPropertyChanged {
        TemplatedLink link;
        LinkPreviewModel previewModel;

        public DataTemplate PageHeaderTemplate { get; set; }
        public DataTemplate ReportHeaderTemplate { get; set; }
        public DataTemplate DetailTemplate { get; set; }
        public DataTemplate ReportFooterTemplate { get; set; }
        public DataTemplate PageFooterTemplate { get; set; }
        public LinkPreviewModel PreviewModel {
            get { return previewModel; }
            set {
                if(previewModel == value)
                    return;
                previewModel = value;
                RaisePropertyChanged("PreviewModel");
            }
        }

        public TemplatedLink Link {
            get { return link; }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName) {
            if(PropertyChanged != null) {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        public void CreateDocument() {
            if(link == null) {
                link = CreateLink();
                link.PrintingSystem.PageSettingsChanged += OnPageSettingsChanged;
                PreviewModel = new LinkPreviewModel(link);
                ProcessPreviewModel(PreviewModel);
            }
            ProcessLink(link);
            link.CreateDocument(true);
        }

        protected virtual void ProcessPreviewModel(LinkPreviewModel previewModel) { }

        protected virtual void ProcessLink(TemplatedLink link) { }

        public void ClearDocument() {
            if(link != null) {
                link.StopPageBuilding();
                link.Dispose();
                link = null;
            }
        }

        protected void OnPageSettingsChanged(object sender, EventArgs e) {
            link.PaperKind = link.PrintingSystem.PageSettings.PaperKind;
            link.Margins = link.PrintingSystem.PageSettings.Margins;
            link.Landscape = link.PrintingSystem.PageSettings.Landscape;
        }

        protected abstract TemplatedLink CreateLink();
    }
}!�using System.Windows;
using DevExpress.Xpf.Printing;

namespace PrintingDemo {
    public class PageNumberDataContext {
        PageNumberKind kind;
        string format;
        HorizontalAlignment horizontalContentAlignment;

        public PageNumberKind Kind { get { return kind; } }
        public string Format { get { return format; } }
        public HorizontalAlignment HorizontalContentAlignment { get { return horizontalContentAlignment; } }

        public PageNumberDataContext(PageNumberKind kind, string format, HorizontalAlignment horizontalContentAlignment) {
            this.kind = kind;
            this.format = format;
            this.horizontalContentAlignment = horizontalContentAlignment;
        }
    }
}!�MSBAML```����HDPrintingDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null+clr-namespace:PrintingDemoPrintingDemo$PrintingDemo.TableReportModule\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamleaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobasea]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorseaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing(localclr-namespace:PrintingDemo<d2http://schemas.microsoft.com/expression/blend/2008Fmc;http://schemas.openxmlformats.org/markup-compatibility/2006�	Resources
 
pageInfoStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit,&DevExpress.Xpf.Printing.ExportSettings�Property�Value%DevExpress.Xpf.Editors.BaseEdit detailTextStyle)#DevExpress.Xpf.Editors.TextEditBase headerTextStyle pageHeaderTemplate�Path�Mode�ColumnDefinitionsText detailTemplate
TargetType	Bookmark
	EditValue pageFooterTemplate60DevExpress.Xpf.Printing.PageNumberExportSettingsKind
Format�%�&	&	�&	�&	�77777&	)77777&	
7��".���@
TargetType$
PageNumber=����$Tahoma)����$11(����
����@IsPrintingMode.��".���@TextWrapping$
Wrap=����$Center=����$Center=����$4q����$Tahoma)����$11(����$
1,0,0,1q�����#B4D2FF��@IsPrintingMode.��".���@TextWrapping$
Wrap=����$Center=����$Center=����$4q�����#4186E6���
��������$Tahoma)����$11(����$
Bold"����$
1,1,0,1q����
�������@IsPrintingMode.��.R����$UsablePageWidth�$OneWay=���$�30���$�90���$�90���$�90���$�*�.+�$�0�$NN��8�$�1�$Category��8�$�2�$Common Name��8�$�3�$Species Name��8�$�4�$Notes��8�$
�1,1,1,1q���.R��$Panel=���$UsablePageWidth�$OneWay=�	�$Content.Category���$�30���$�90���$�90���$�90���$�*�.+�$�0�8���#EDF9FF
�$
Content.ID�$�1�8��$Content.Category�$�2�8��$Content.CommonName�$�3�8��$Content.SpeciesName�$�4�8���#EDF9FF$
�1,0,1,1q�$
�Stretch=��$
Content.Notes���.R�8�$
NumberOfTotal=�$Page {0} of {1}��$�1q���$UsablePageWidth�$OneWay=�
�DataContext
-'PrintingDemo.TableReportModuleViewModel& PrintingDemo.ModuleViewModelBasePageHeaderTemplate#[DetailTemplate#[PageFooterTemplate#[.�/)DevExpress.Xpf.DemoBase.DemoModuleControlContent.-	'DevExpress.Xpf.Printing.DocumentPreview		Model�$PreviewModel�!�<local:ModuleBase x:Class="PrintingDemo.TableReportModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:local="clr-namespace:PrintingDemo"
    mc:Ignorable="d"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    d:DesignWidth="800" d:DesignHeight="400">

    <local:ModuleBase.Resources>
        <ResourceDictionary>
            <Style x:Key="pageInfoStyle" TargetType="dxe:TextEdit">
                <Setter Property="dxp:ExportSettings.TargetType" Value="PageNumber" />
                <Setter Property="FontFamily" Value="Tahoma"></Setter>
                <Setter Property="FontSize" Value="11"></Setter>
                <Setter Property="Foreground" Value="Black"></Setter>
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>

            <Style x:Key="detailTextStyle" TargetType="dxe:TextEdit">
                <Setter Property="TextWrapping" Value="Wrap"></Setter>
                <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
                <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
                <Setter Property="Padding" Value="4"></Setter>
                <Setter Property="FontFamily" Value="Tahoma"></Setter>
                <Setter Property="FontSize" Value="11"></Setter>
                <Setter Property="BorderThickness" Value="1,0,0,1"></Setter>
                <Setter Property="BorderBrush" Value="#B4D2FF"></Setter>
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>

            <Style x:Key="headerTextStyle" TargetType="dxe:TextEdit">
                <Setter Property="TextWrapping" Value="Wrap"></Setter>
                <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
                <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
                <Setter Property="Padding" Value="4"></Setter>
                <Setter Property="Background" Value="#4186E6"></Setter>
                <Setter Property="Foreground" Value="White"></Setter>
                <Setter Property="FontFamily" Value="Tahoma"></Setter>
                <Setter Property="FontSize" Value="11"></Setter>
                <Setter Property="FontWeight" Value="Bold"></Setter>
                <Setter Property="BorderThickness" Value="1,1,0,1"></Setter>
                <Setter Property="BorderBrush" Value="White"></Setter>
                <Setter Property="IsPrintingMode" Value="True"></Setter>
            </Style>

            <DataTemplate x:Key="pageHeaderTemplate">
                <Grid Width="{Binding Path=UsablePageWidth, Mode=OneWay}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>

                    <dxe:TextEdit Grid.Column="0" Text="NN" Style="{StaticResource headerTextStyle}" />
                    <dxe:TextEdit Grid.Column="1" Text="Category" Style="{StaticResource headerTextStyle}" />
                    <dxe:TextEdit Grid.Column="2" Text="Common Name" Style="{StaticResource headerTextStyle}" />
                    <dxe:TextEdit Grid.Column="3" Text="Species Name" Style="{StaticResource headerTextStyle}" />
                    <dxe:TextEdit Grid.Column="4" Text="Notes" Style="{StaticResource headerTextStyle}" BorderThickness="1,1,1,1" />
                </Grid>
            </DataTemplate>

            <DataTemplate x:Key="detailTemplate">
                <Grid Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                      dxp:ExportSettings.TargetType="Panel"
                      dxp:ExportSettings.Bookmark="{Binding Path=Content.Category}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="90" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>

                    <dxe:TextEdit Grid.Column="0" EditValue="{Binding Path=Content.ID}" Style="{StaticResource detailTextStyle}" Background="#EDF9FF" />
                    <dxe:TextEdit Grid.Column="1" Text="{Binding Path=Content.Category}" Style="{StaticResource detailTextStyle}" />
                    <dxe:TextEdit Grid.Column="2" Text="{Binding Path=Content.CommonName}" Style="{StaticResource detailTextStyle}" />
                    <dxe:TextEdit Grid.Column="3" Text="{Binding Path=Content.SpeciesName}" Style="{StaticResource detailTextStyle}" />
                    <dxe:TextEdit Grid.Column="4" Text="{Binding Path=Content.Notes}" Style="{StaticResource detailTextStyle}" Background="#EDF9FF" BorderThickness="1,0,1,1" HorizontalContentAlignment="Stretch" />
                </Grid>
            </DataTemplate>

            <DataTemplate x:Key="pageFooterTemplate">
                <dxe:TextEdit Style="{StaticResource pageInfoStyle}"
                              Width="{Binding Path=UsablePageWidth, Mode=OneWay}"
                              dxp:PageNumberExportSettings.Kind="NumberOfTotal"
                              dxp:PageNumberExportSettings.Format="Page {0} of {1}"
                              Padding="1"/>
            </DataTemplate>
        </ResourceDictionary>
    </local:ModuleBase.Resources>

    <local:ModuleBase.DataContext>
        <local:TableReportModuleViewModel  PageHeaderTemplate="{StaticResource pageHeaderTemplate}"
                                           DetailTemplate="{StaticResource detailTemplate}"
                                           PageFooterTemplate="{StaticResource pageFooterTemplate}" />
    </local:ModuleBase.DataContext>

    <dxdb:DemoModuleControl>
        <dxp:DocumentPreview Model="{Binding Path=PreviewModel}"/>
    </dxdb:DemoModuleControl>
</local:ModuleBase>!5using System.IO;
using DevExpress.Demos.DataSources;
using DevExpress.Utils;
using DevExpress.Xpf.Printing;

namespace PrintingDemo {
    public partial class TableReportModule : ModuleBase {
        public TableReportModule() {
            InitializeComponent();
        }
    }

    public class TableReportModuleViewModel : ModuleViewModelBase {
        Fishes fishes;

        Fishes Fishes {
            get {
                if(fishes == null) {
                    Stream stream = AssemblyHelper.GetResourceStream(typeof(TableReportModuleViewModel).Assembly, "Data/biolife.txt", true);
                    fishes = new Fishes(stream);
                }
                return fishes;
            }
        }

        protected override TemplatedLink CreateLink() {
            SimpleLink link = new SimpleLink();
            link.PageHeaderTemplate = PageHeaderTemplate;
            link.DetailTemplate = DetailTemplate;
            link.PageFooterTemplate = PageFooterTemplate;
            link.DetailCount = Fishes.Count;
            link.CreateDetail += link_CreateDetail;
            link.DocumentName = "Fishes";
            return link;

        }
        void link_CreateDetail(object sender, CreateAreaEventArgs e) {
            e.Data = Fishes[e.DetailIndex];
        }
    }
}!using System;
using System.Windows;
using DevExpress.DemoData;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.DemoData.Helpers;

namespace PrintingDemo {
    public class Program {
        [STAThread]
        static void Main(string[] args) {
            StartupBase.Run<Startup>(null);
        }
    }
    public class Startup : DemoStartup {
        public static void InitDemo() {
            Loader.DemoDataAssembly = typeof(DevExpress.DemoData.AssemblyMarker).Assembly;
        }
        protected override bool GetDebug() {
#if DEBUG
            return true;
#else
            return false;
#endif
        }
        protected override Type GetFixtureTypeForXBAPOrSLTesting() {
            return null;
        }
    }
}!vusing System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
using DevExpress.Xpf.DemoBase;

[assembly: AssemblyTitle("DevExpress DXPrinting for WPF Main Demo")]
[assembly: AssemblyDescription("DevExpress DXPrinting for WPF Main Demo")]
[assembly: AssemblyProduct("DevExpress DXPrinting for WPF")]
[assembly: AssemblyTrademark("DevExpress DXPrinting for WPF")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany(AssemblyInfo.AssemblyCompany)]
[assembly: AssemblyCopyright(AssemblyInfo.AssemblyCopyright)]
[assembly: AssemblyCulture("")]

[assembly: ProductID("DXPrinting")]

[assembly: ComVisible(false)]

[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

[assembly: AssemblyVersion(AssemblyInfo.Version)]
[assembly: AssemblyFileVersion(AssemblyInfo.FileVersion)]!�

namespace PrintingDemo.Properties {
    using System;
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {

        private static global::System.Resources.ResourceManager resourceMan;

        private static global::System.Globalization.CultureInfo resourceCulture;

        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrintingDemo.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
    }
}!-MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source3-DevExpress.Xpf.Core.DemoBaseResourceExtension�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core�*Themes/Generic.xaml+%!�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core">
 <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="{dx:DemoBaseResource Themes/Generic.xaml}" />
 </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>�����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSetPADPADP��DevExpress.Printing.v{DXVersion}.Core
DevExpress.Xpf.Layout.v{DXVersion}.Core
DevExpress.Xpf.Docking.v{DXVersion}
DevExpress.Xpf.Printing.v{DXVersion}.Core
DevExpress.Xpf.Printing.v{DXVersion}BSJBv4.0.30319l('#~�'0#Strings�W�#US_#GUID,_�
#BlobW�	�%3�'R��	��6[	
��
.�\�\������ 
7�^Ce�j�\
������Q=�m_LDC
&		P	�p	��	�i
Q
|
Q

�
��
a��
�
�
�Q
���Q
"L4vC�Q

���5+�&S:�z�z�z�z�zz,zGz`��s
��
���z�z
�1`@�@��&��&����#�9\L���Q
�Q
�Q
�Q
Q
4@q��}�\�Q
�#�Gz[�n��Q
 Q
. �
; Q
*� d �"��"�
	#�"$#@#�_#L�#�$�#%$�#A$�#I$�#U$Q
p$C~$Q
�$��$Q
�%

&
$&
H&<&]&C.�&�&2�&�&6'�.['�&s'�.z'�&�'�2�'�&2�'�&.�'�&6<( (Q(
�(n(�(��(�
�(��(
�(
))<)
U)Q
^)Q
�)�"�)4"�)4:*�):<*�)�*Q
�*�2y+�&�+C�+Q
>�+�+,C7,�&�,�,&�,�,�,�9-�Bx-
�-�
B�-

.<.�6O. (F�.y.�.z6�.y.�.
�.+�.+/+ /�+/+*V/E/;H;�h����

����
#	;)�;4&;59;5D;0;�W;?k;8V�;0!n�;8"r�$|�;0&��;8'�;0'�;8+�8;2�O;4�e;7�m;%7�u7���9���9��;0>��;8?��@�� A�!C�!E��#H��$L�|&P��&Q��8����������R�w�V��V���2	
A	
]	y	�	�	�	w
'�
+�J�a�a�a�a
a1�
t"|1�B�U�i�a�	k���3�	�<�<�<�	����
)�a����|�
��_�dE�H�Q�\�h��	���� |� �%!�6!��!�%!��!�� �P�]�k�!%%c!:%g!`%p!�%y�&%'7H<P ��#� ��#� ��-	� ��#	!��#
!��-(!��1S!��<p!��B\"��F�"�L�"�R�"��-�!�O-�"�/X�"�G]�"�^-�#�l-�'��-4(��bu(�-�(��-�"��M�"���$#��M1#��]#�HMj#�t��#��M�#����%��!-H%�"-f%�L"-�%�|"-�(��F�(�W|�(����(��- �)�L �)��-!�)��-!�)���!�)���!�)���"�)��"�)��#�)�$�#�)�4�$�)�@�$*�k�%*�x�%-�]�&c-���&p-��B&s-��-&�-��-&�-�	�B&�-��-&�-��-&�-��	-&�-��	&.��	!(�.��
/*�.��
4*�.��
/+�.��
4+�.�/,�.�4,�.�-/-�.�F4-�.�_/.�.�v4.�.��:/�.��?//��E0/�	�N0D/�	�N1y/��2�/�$-3
0�3?30�GT40�S-580�kZ5��E7�0��-7�0��/7�0��47�0���8�0���81���9
1���961���:>1��:b1�-�;j1�E�;�1�]B<�1�y�<�1���=�1���=�1���=�1��-=2��E=l2�GT=�2��>�2�Y�@�2�i�@3��-@D3���@�3��+V@�3��-@�3��	-@�3��	@4��	!B4���D4���D4��-E,4��EEz4�3?E�4��F�4��H`5��ZJ�5��L�5�-N86�IBN@6�X�NI6�g!OQ6�t&OZ6��,Pp6��-R�6��	-R�6��	R�6��	!T�6��EVt7��V�7��-X�7��-X�7��	-X�7��	X�7��	!Z38�AB\;8�R�\_8�cB]g8�}�]�8��B^�8���^�8��B_�8���_�8�B`�8�$�`9�7Ba9�S�a)9�o/b19��4b<9��Ec�9�GTc@:��@d{:��-d�:���d�:���d�:���e�:���e�:��-f�:��#f�:��#j�:�(�n;�1�n;�<�n;��Fn-;��Pq6;��-r>;��VrT;��BrW;��ZrZ;��-rb;��-rl;��hr�;�nr�;�sr�;���s<���t<�<�uy<�g�v�<�t�v�<�n�w�<�}�w�<���x�<���x�<���y�<���y�<���z�<���z�<���{4=��-�D=��	-�t=��	�~=��	!��=�����=��E�2>���K>��-�!��-�!�B��$��-��$�� -��$��-��$�O!-��$��-�%��!-��'��-��'��#-�*��W�=*����E*�P%k�M*�z%t�U*��%}�`*��%��+��%��x+��%���+��-�X,��&/��+��-�,�!'A�,�>'H���#,=EP]k#,z�z�=������
w
��w
�������
���������H����������w

����HQ\hE�������%�%�%HS'S'		
!	9+
!I��Q��Y��a��i��q��y����������������������������������-�������-	�-i��	��]�q�!��1��IBI&�Q�-��a�	�i�q��	�ZY5"�R��`*ib0!�Fu=����F�-^-� RE a��B�� g�B!� m$��,����"�"-4���#��3#��O#��k#��y#���#B��#-$�#���#�,�#�i�#�!�-)$7$	E 
qb$<k#&Dy#��"1�$9q�$9I��Y�-L%%cL:%gL`%pL�%ya�-aV&�aV&�	�%�tp&�t�%�|p&�|�%��p&���%��p&���%�t�%|�%��%��%�m'Y��W�����'������'��k���'���'�]����q�'���-1�-1�-��-��/��Y��(a��(o��x�)�%)��5)�	����#�m)�!��)�)����$��)-�#-)�)�1 *�.*�1D*�P*�1\*Bj*�	�%��x*�)�*�I�-��*���
4I4��*���*�I�*��*����I�*
�+�+4�)+�;+4�T+i+��E -�+��+���A��*����i�+di�+dq,p�,k�E �)(,��=,�iC,����Y,�t,�i�,�)�,���,�q�,���-�k#&�y#���,��F4�v4��,��-��-�$-��E-��X-��`��e-���-��4�,��41�-��-��-����$�1�-��-�1�-��-�����,��(.��4.9��-�[.?Y�.M��.SI�-	�.�9������-��.��
/�	���%/��,�6/�?/-!e/H	��
4�*�E a$�(�.��
.��
.s�
.�	.#�	.k>
.��.��
.S	.;
.+�	.3
.KD
.c�
.C>
.S`
A�a������������������� �!�@�`�c�Zc��c��������������� �#�@�C�a�c�����������@�`�i���������������������	�	�+	 �!�)�;	@�A�`�a������5��5����������5��� �@�`���������	��	���	���	���	���
��
��
���
�5���5 � �� �5@�`���������@��@�5`�5`���������5 �� �5@��@�5`�`��`�5� ������ � ��@�5@��`��`�5����5���`���� ��@�����7��=�!�!i�&4L��0����q	
	&(+-2%3rDw��'�3�;�l����@
eS
eh
ew
e�
e�
j�
o�e���&���#�<�Q�8�	7�-L[se����[�`�g��y#	�������������%��%��%�LM*+-	,	./1
0
324569?@ABDCEFG!H!J#I#K%V'W'Y)X)[+Z+\-]-^/_/a1`1b3c5d7r9s9|;};~==�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�S�U�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�g�i�k�m
|��Xsz�0��������q��:R[����'�
;�

>��
�
3


)
N �&�&
(��)�+
l-
_.w//�/�/�/�0�/ !"#$&
'&J�$J�$J�$J%9��c�g�k�}�������U}�H<Module>PrintingDemo.exeBoolToSolidColorBrush1ConverterPrintingDemoBoolToSolidColorBrush2ConverterDocumentBuildCompletedConditionFactoryPrintingDemo.TestsConditionAdapterPrintingCheckAllDemosFixtureCheckDemoOptionsFixturePrintingCheckZoomComboBoxFixtureCategoryNorthwindDataHelperPageNumberLocationModuleBaseColumnReportModuleModuleViewModelBaseColumnReportModuleViewModelDrillDownReportModuleDrillDownReportModuleViewModelCategoryWrapperEmployeeListReportModuleEmployeeListReportModuleViewModelGroupedReportModuleGroupedReportModuleViewModelReplaceStringConverterPageNumberDataContextProgramStartupResourcesPrintingDemo.PropertiesFishesDevExpress.Demos.DataSourcesFishTableReportModuleTableReportModuleViewModelmscorlibSystemObjectPresentationFrameworkSystem.Windows.DataIValueConverterDevExpress.Xpf.DemoBase.v13.1DevExpress.Xpf.DemoBase.DemoTestingCheckAllDemosFixtureBaseDemoTestingFixtureEnumDevExpress.Xpf.DemoBaseDemoModuleSystem.XamlSystem.Windows.MarkupIComponentConnectorSystem.ComponentModelINotifyPropertyChangedDemoStartupSystem.Collections.GenericList`1TypeSystem.GlobalizationCultureInfoConvertConvertBack.ctorConditionCreatefixtureEvaluateConditionCreateSetCurrentDemoActionsSystem.WindowsFrameworkElementIsDocumentPreviewCheckMemoryLeaksget_GroupedReportModuleget_ColumnReportModuleCreateActionsCreateCheckGroupedReportModuleActionsCreateCheckMultiColumnReportModuleActionsFunc`1DevExpress.Xpf.Core.v13.1DevExpress.Xpf.EditorsCheckEditAddAction_ToggleCheckEditAddAction_WaitDocumentBuildCompletedDevExpress.Xpf.CoreThemeAllowSwitchToTheThemeDevExpress.Xpf.DemoBase.Helpers.TextColorizerCodeLanguageAllowSwitchToTheTabCheckZoomComboBoxActionget_CategoryNameset_CategoryNameget_CategoryIDset_CategoryIDget_Descriptionset_Descriptionget_Pictureset_PictureSystem.CollectionsIEnumerableget_Productsset_Products<CategoryName>k__BackingField<CategoryID>k__BackingField<Description>k__BackingField<Picture>k__BackingField<Products>k__BackingFieldCategoryNameCategoryIDDescriptionPictureProductsIEnumerable`1categoriesget_CategoriesCategoriesvalue__TopMarginBottomMarginget_ViewModelget_AllowRtlRaiseActualLoadedClearget_NeedChangeEditorsThemeViewModelAllowRtlNeedChangeEditorsThemeSystem.Windows.ControlsRadioButtonacrossThenDowndownThenAcrossComboBoxEditpageNumberKindEditTextEditpageNumberFormatEditpageNumberAlignmentEditpageNumberLocationEdit_contentLoadedInitializeComponentDelegate_CreateDelegateSystem.Windows.Markup.IComponentConnector.ConnectConnectDevExpress.Xpf.Printing.v13.1DevExpress.Xpf.PrintingTemplatedLinklinkLinkPreviewModelpreviewModelDataTemplateget_PageHeaderTemplateset_PageHeaderTemplateget_ReportHeaderTemplateset_ReportHeaderTemplateget_DetailTemplateset_DetailTemplateget_ReportFooterTemplateset_ReportFooterTemplateget_PageFooterTemplateset_PageFooterTemplateget_PreviewModelset_PreviewModelget_LinkPropertyChangedEventHandlerPropertyChangedadd_PropertyChangedremove_PropertyChangedRaisePropertyChangedCreateDocumentProcessPreviewModelProcessLinkClearDocumentEventArgsOnPageSettingsChangedCreateLink<PageHeaderTemplate>k__BackingField<ReportHeaderTemplate>k__BackingField<DetailTemplate>k__BackingField<ReportFooterTemplate>k__BackingField<PageFooterTemplate>k__BackingFieldPageHeaderTemplateReportHeaderTemplateDetailTemplateReportFooterTemplatePageFooterTemplatePreviewModelLinkSystem.Collections.ObjectModelReadOnlyCollection`1HorizontalAlignmentpageNumberAlignmentValuesPageNumberKindpageNumberKindpageNumberFormatpageNumberLocationpageNumberAlignmentisAcrossThenDownCheckedget_PageNumberTemplateset_PageNumberTemplateget_PageNumberKindset_PageNumberKindget_PageNumberFormatset_PageNumberFormatget_PageNumberLocationset_PageNumberLocationget_PageNumberAlignmentset_PageNumberAlignmentget_IsAcrossThenDownCheckedset_IsAcrossThenDownCheckedArrayget_PageNumberLocationValuesget_PageNumberKindValuesget_PageNumberAlignmentValuesCreateAreaEventArgslink_CreateDetailDevExpress.Printing.v13.1.CoreDevExpress.XtraPrintingColumnLayoutGetColumnLayoutGetPageNumberDataContextClearPageHeaderFooterGetDefaultFormatString<PageNumberTemplate>k__BackingFieldPageNumberTemplatePageNumberFormatPageNumberAlignmentIsAcrossThenDownCheckedPageNumberLocationValuesPageNumberKindValuesPageNumberAlignmentValuespageNumberDictionary`2get_CategoryWrappersset_CategoryWrappersPreviewClickEventArgsOnPreviewClicklink_CreateDocumentFinishedOnPreviewMouseMoveFillCategoryWrappers<CategoryWrappers>k__BackingFieldCategoryWrappersget_IsExpandedset_IsExpandedget_Categoryset_Category<IsExpanded>k__BackingField<Category>k__BackingFieldIsExpandedkeepTogetherrepeatHeaderEveryPagepageBreakAfterisKeepTogetherEnabledisRepeatHeaderEveryPageEnabledisPageBreakAfterEnabledget_KeepTogetherset_KeepTogetherget_IsKeepTogetherEnabledset_IsKeepTogetherEnabledget_RepeatHeaderEveryPageset_RepeatHeaderEveryPageget_IsRepeatHeaderEveryPageEnabledset_IsRepeatHeaderEveryPageEnabledget_PageBreakAfterset_PageBreakAfterget_IsPageBreakAfterEnabledset_IsPageBreakAfterEnabledget_GroupHeaderTemplateset_GroupHeaderTemplateCollectionViewSourceCreateCollectionViewSource<GroupHeaderTemplate>k__BackingFieldKeepTogetherIsKeepTogetherEnabledRepeatHeaderEveryPageIsRepeatHeaderEveryPageEnabledPageBreakAfterIsPageBreakAfterEnabledGroupHeaderTemplateget_OldValueset_OldValueget_NewValueset_NewValue<OldValue>k__BackingField<NewValue>k__BackingFieldOldValueNewValuekindformathorizontalContentAlignmentget_Kindget_Formatget_HorizontalContentAlignmentKindFormatHorizontalContentAlignmentMainInitDemoGetDebugGetFixtureTypeForXBAPOrSLTestingSystem.ResourcesResourceManagerresourceManresourceCultureget_ResourceManagerget_Cultureset_CultureCultureSystem.IOStreamLoadFromidcategorycommonNamespeciesNamenotesget_CommonNameset_CommonNameget_SpeciesNameset_SpeciesNameget_Notesset_Notesget_IDset_IDCommonNameSpeciesNameNotesIDfishesget_FishesvaluetargetTypeparameterculturemoduleIDcheckMemoryLeakselementmoduleTylegetCheckEditexpectedValuegetActualValuemoduleTypethemetabLanguagedelegateTypehandlerconnectionIdtargetpropertyNamesendereisExpandedargsfilePathstreamSystem.Runtime.VersioningTargetFrameworkAttributePresentationCoreSystem.Windows.ResourcesAssemblyAssociatedContentFileAttributeSystem.ReflectionAssemblyTitleAttributeAssemblyDescriptionAttributeAssemblyProductAttributeAssemblyTrademarkAttributeAssemblyConfigurationAttributeAssemblyCompanyAttributeAssemblyCopyrightAttributeAssemblyCultureAttributeProductIDAttributeSystem.Runtime.InteropServicesComVisibleAttributeThemeInfoAttributeResourceDictionaryLocationAssemblyVersionAttributeAssemblyFileVersionAttributeSystem.DiagnosticsDebuggableAttributeDebuggingModesSystem.Runtime.CompilerServicesCompilationRelaxationsAttributeRuntimeCompatibilityAttributeBooleanSystem.Windows.MediaColorFromArgbSolidColorBrushNotImplementedException<>c__DisplayClass1conditionAdapter<Create>b__0ArgumentNullExceptionBaseTestingFixtureIDemoBaseTestingget_DemoBaseTestingget_CurrentDemoModuleHelperActionsFindElementByTypeDocumentPreviewDocumentPreviewBaseIDocumentPreviewModelget_ModelPrintingSystemPreviewModelPreviewModelBaseget_IsCreatingget_PageCountCompilerGeneratedAttribute<CreateSetCurrentDemoActions>b__0Predicate`1DevExpress.Xpf.Core.NativeLayoutHelperFindElementAssertget_AssertIsNotNullIPreviewModelget_PageContentGetTypeDevExpress.Xpf.Printing.NativePageWithRedCrossRuntimeTypeHandleGetTypeFromHandleMemberInfoget_NameStringAreNotEqualActionAddConditionActionAddSimpleAction<CreateCheckGroupedReportModuleActions>b__0<CreateCheckGroupedReportModuleActions>b__1<CreateCheckGroupedReportModuleActions>b__2<CreateCheckGroupedReportModuleActions>b__3<CreateCheckGroupedReportModuleActions>b__4<CreateCheckGroupedReportModuleActions>b__5<CreateCheckGroupedReportModuleActions>b__6<CreateCheckGroupedReportModuleActions>b__7CollectionViewLinkGroupInfoCollectionget_GroupInfosCollection`1GroupInfoget_ItemDevExpress.Data.v13.1DevExpress.XtraPrinting.DataNodesGroupUnionget_UnionAddLoadModuleActions<>c__DisplayClassftemp_pageNumberKind<>4__this<CreateCheckMultiColumnReportModuleActions>b__9<>c__DisplayClass11CS$<>8__locals10temp_pageNumberAlignment<CreateCheckMultiColumnReportModuleActions>b__a<>c__DisplayClass13CS$<>8__locals12temp_pageNumberLocation<CreateCheckMultiColumnReportModuleActions>b__b<CreateCheckMultiColumnReportModuleActions>b__8<CreateCheckMultiColumnReportModuleActions>b__c<CreateCheckMultiColumnReportModuleActions>b__d<CreateCheckMultiColumnReportModuleActions>b__eBaseEditset_EditValueUpdateLayoutAndDoEventsNullable`1System.Windows.Controls.PrimitivesToggleButtonset_IsCheckedEditorsActionsSetEditValueLookUpEditBaseget_ItemsSourceIEnumeratorGetEnumeratorget_CurrentMoveNextIDisposableDispose<>c__DisplayClass16<AddAction_ToggleCheckEdit>b__15InvokeToggleCheckEditAreEqualDevExpress.Xpf.BarsBarManagerget_BarManagerBarItemCollectionget_ItemsBarItemBarEditItemZoomItemBaseget_ZoomModesIEnumerator`1ZoomValueItemget_ZoomValueDoubleget_ZoomZoomFitModeItem<>f__AnonymousType0`4<CategoryID>j__TPar<ProductName>j__TPar<QuantityPerUnit>j__TPar<UnitPrice>j__TPar<CategoryID>i__Field<ProductName>i__Fieldget_ProductName<QuantityPerUnit>i__Fieldget_QuantityPerUnit<UnitPrice>i__Fieldget_UnitPriceToStringEqualsGetHashCodeProductNameQuantityPerUnitUnitPriceDebuggerBrowsableAttributeDebuggerBrowsableStateDebuggerHiddenAttributeSystem.TextStringBuilderAppendEqualityComparer`1get_Default<>c__DisplayClass4<>c__DisplayClass6System.Data.DataSetExtensionsSystem.DataEnumerableRowCollection`1DataRowproductsQuery<get_Categories>b__1CS$<>8__locals5<get_Categories>b__2Decimal<get_Categories>b__3productDataRowExtensionsFieldFunc`2EnumerableRowCollectionExtensionsWhereSelectNWindDataDataViewDataTableget_TableDataTableExtensionsAsEnumerableget_DataContextDevExpress.DemoData.v13.1.CoreDevExpress.DemoData.HelpersUniversalUserControlDebuggerNonUserCodeAttributeSystem.CodeDom.CompilerGeneratedCodeAttributeUriUriKindApplicationLoadComponentCreateDelegateEditorBrowsableAttributeEditorBrowsableStateCombineSystem.ThreadingInterlockedCompareExchangeRemovePropertyChangedEventArgsLinkBasePrintingSystemget_PrintingSystemEventHandlerPrintingSystemBaseadd_PageSettingsChangedStopPageBuildingXtraPageSettingsBaseget_PageSettingsSystem.DrawingSystem.Drawing.PrintingPaperKindget_PaperKindset_PaperKindMarginsget_Marginsset_Marginsget_Landscapeset_Landscapeop_EqualityGetValuesSimpleLinkset_ColumnWidthget_Customersget_Countset_DetailCountset_DocumentNameEventHandler`1add_CreateDetailset_ColumnLayoutset_TopMarginTemplateset_TopMarginDataset_BottomMarginTemplateset_BottomMarginDataget_DetailIndexDataRowViewset_DataEmpty.cctorIList`1DocumentPreviewModelBaseadd_PreviewClickadd_PreviewMouseMoveSystem.CoreSystem.LinqEnumerableElementAtKeyValuePair`2get_Valueget_ElementTagInt32Parseget_CurrentPageNumberadd_CreateDocumentFinishedremove_CreateDocumentFinishedset_CurrentPageNumberget_ElementSystem.Windows.InputCursorsCursorget_Handset_CursorAddget_EmployeesDateTimeget_Nowset_ReportFooterDataget_ReportFooterDataEnvironmentget_UserDomainNameget_UserNameConcatWindowsBaseICollectionViewget_Viewset_CollectionViewset_Unionget_ProductsForPrintingset_SourceObservableCollection`1GroupDescriptionget_GroupDescriptionsPropertyGroupDescriptionget_NewLineReplaceSTAThreadAttributeStartupBaseRunDevExpress.DemoData.v13.1DevExpress.DemoDataAssemblyMarkerAssemblyget_AssemblyLoaderset_DemoDataAssemblyReferenceEqualsDisplayNameAttributeFileExistsFileStreamOpenReadStreamReaderCharSplitTextReaderReadLineCloseDevExpress.UtilsAssemblyHelperGetResourceStreamPrintingDemo.g.resourcesPrintingDemo.Properties.Resources.resourcesPrintingDemo.printingdemo.manifestPrintingDemo.Data.EmbeddedData.txtfixture��Exception is raised with displaying a red cross on {0} demo modulePage {test}	zoom{ CategoryID = !, ProductName = ), QuantityPerUnit = , UnitPrice =  }CategoryIDProductNameQuantityPerUnitUnitPriceCategoryNameDescriptionPictureo/PrintingDemo;component/modules/columnreportmodule.xamlPreviewModelPageNumberKind!PageNumberFormat%PageNumberLocation'PageNumberAlignment/IsAcrossThenDownCheckedMulti-ColumnPage {0}Page {0} of {1}- {0} -{0}u/PrintingDemo;component/modules/drilldownreportmodule.xamlDrill-Down{/PrintingDemo;component/modules/employeelistreportmodule.xaml
Badges!Generated on {0} by {0}\{1}q/PrintingDemo;component/modules/groupedreportmodule.xamlKeepTogether+IsKeepTogetherEnabled+RepeatHeaderEveryPage=IsRepeatHeaderEveryPageEnabledPageBreakAfter/IsPageBreakAfterEnabled-Products by Categories CPrintingDemo.Properties.ResourcesUndefinedm/PrintingDemo;component/modules/tablereportmodule.xaml!Data/biolife.txt
Fishes���T��dH�&����z\V4�1�8V�6N5��T��)t	 -1 5    9 - T 4 =A=(T(4 -E -I       M MM((((MQ$Q$Q$, 8(8(UY] a- ei m m i i eq q e um(m(i(ey}��} �� �� , , } } ��y} �� �� (��(,(}��y}
 ��H ��H ��	��H
(��H $ $ $$($A ��	 ��} -��1��11��1 �� p p(p	 ���� ��	�� �� �� �
 99
� �	��!�-9
99�-9 �5 -�A � 5�M �M A �U�Y�]  �a -=A=�����i 	 �i�e �y$��},�������y�y�y�}�}�}=A= A �� �� �� ��	 Q��Q��	 ������ 
�������������     (((( ��
�� �� ������	�� �������� 	���� $������ �� ������	��


������
	����������
����������������
������$���� ��
������
����$
��$
������ #PresentationBuildTasks4.0.0.0 ������a- ��aaa
qqqq � �
 � �	 ��?_�
: � � �! �!��- �)�� �)���% ��m, �-��y}
 �1}��H�)�� �)��Q

�=H�=H 
�=H�)u
 �)u�I �IQ$��$ $��$�M �U �U�Q �a
 �Y�]�Y�]���� ��
h �q�q@3System.Resources.Tools.StronglyTypedResourceBuilder4.0.0.0 �q��Fishes���� 
��t
Fish CategoryFish Common NameFish Species Name
Fish NotesFish ID
���qe).NETFramework,Version=v4.0,Profile=ClientTFrameworkDisplayName.NET Framework 4 Client Profile4/devexpress.build.xamlresourceprocessing.targets,'DevExpress DXPrinting for WPF Main Demo"DevExpress DXPrinting for WPFDeveloper Express Inc.3.Copyright (c) 2000-2013 Developer Express Inc.
DXPrinting
13.1.4.0TWrapNonExceptionThrows�E�Q��RSDS��vTA*�L�:�A6/8+c:\Projects\13.1\BuildLabel\Temp\NetStudio.v13.1.2005\WpfPrintingDemo\PrintingDemo\obj\Release\PrintingDemo.pdb`�~� p�_CorExeMainmscoree.dll�% @0�X�p�������������0@P`p���%��hh� 0���!��4VS_VERSION_INFO��

?DVarFileInfo$Translation��StringFileInfo�000004b0h(CommentsDevExpress DXPrinting for WPF Main DemoPCompanyNameDeveloper Express Inc.x(FileDescriptionDevExpress DXPrinting for WPF Main Demo4	FileVersion13.1.4.0DInternalNamePrintingDemo.exe�/LegalCopyrightCopyright (c) 2000-2013 Developer Express Inc.dLegalTrademarksDevExpress DXPrinting for WPFLOriginalFilenamePrintingDemo.exe\ProductNameDevExpress DXPrinting for WPF8	ProductVersion13.1.4.0<	Assembly Version13.1.4.0(0` ��������������������������	�

��
������������ �!! �##"�$$#*��������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&*��������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('���������������������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)��������������������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�������������������������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,���������������������������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�����565���������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.����������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221���������������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�����������������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543���������������������ddd��������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�������������������������ddd������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�����������������������������ddd����������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987���������������������������������ddd��������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9����������������������������������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�������������������������������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;���������������������������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=����������������������������������������������������676�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�~�����������������������������������������������������fgf�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543�765�887�::9�<;:�>=<�??>�A@?�0N�}���������������������������������������������������������������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�876�:98�;;:�==<�?>=�A@?�BBA�/N�/O�c|�����������������������������������������������������>?>��������� �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�998�;:9�=<;�>>=�@@?�BA@�DCB�/N�/P�/Q�Us������������������������������������������������������������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987�::9�<<;�>=<�@?>�BA@�CCB�EED�/O�/P�/Q�.R�;^���������������������������������������������������������RSR����� ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9�<;:�>=<�??>�AA@�CBA�EDC�GFE�/O�/P�.Q�.R�.S�-U���������������������������������������������������������������++*��  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�==<�??>�A@?�CBA�EDC�FFE�HGF�/P�/Q�.R�.S�.T�-U�-V�b�������������������������������������������������������������//.�##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;�?>=�A@?�BBA�DCB�FED�HGF�JIH�/P�/Q�.R�.S�.T�-U�-V�-W�9c��������������������������������������������������������������vvv�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=�@@?�BA@�DCB�FED�GFE�IHG�KJI�/P�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�`���������������������������������������������������������������zzy�887�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�BA@�CCB�EDC�GFE�IHG�JJI�LKJ�/Q�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\������������������������������������������������������������������<<;�110�332�543�765�887�::9�<;:�>=<�??>�A@?�CBA�EDC�FFE�HGF�JIH�LKJ�NML�/Q�.R�.S�.T�-U�-V�-W�,Y�,Z�,[�+\�+]�+^�Es����������������������������������������������������������������������ggf�665�876�:98�;;:�==<�?>=�A@?�BBA�DCB�FED�HGF�JIH�KKJ�MLK�ONM�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�Du��������������������������������������������������������������������������TSR�=<;�>>=�@@?�BA@�DCB�FED�GGF�IIH�KJI�MLK�ONM�QPO�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�_�����������������������������������������������������������������������������ZYX�CCB�EED�GFE�IHG�KJI�MLK�NML�PON�RQP�.R�.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�Cy����������������������������������������������������������������������������������UUT�LKJ�NML�PON�RQP�SRQ�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�5r��������������������������������������������������������������������������������������������ihg�UTS�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�\����������������������������������������������������������������������������������������.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�i�����������������������������������������������������������������������������.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�i������������������������������������������������������������������.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�?��v��������������������������������������������������.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�/��Y������������������������������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"z�"{�!|�!}�!~� � � ��<���X��������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� ��-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� ��-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"{�!|�!}�!~� � � �� �� �� �� �� �� ��-V��-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� �� ���-VЫ-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� �� ��-W�',X��,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�(h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!|�!}�!~� � � �� �� �� �� �� �� ��� ��*,X�,YӨ,Z��+[�+\�+]�*^�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%p�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� ��� �� ����( @ H�����������������	�

�
���������!! �##"�&&%H������������������	
	��

�������� ! �##"�%%$�(('������������������	
	��

��������  �""!�%%$�''&�**)�����������������	�

�
���������""!�$$#�''&�))(�,,+�TUT���������������	�

�
���������!! �$$#�&&%�))(�++*�..-����565��������������	
	��
��������!! �##"�&&%�(('�++*�--,�00/��������������������	
	��

��������  �"#"�%%$�''&�**)�--,�//.�221�������������������	�

�
��������  �""!�$%$�''&�**)�,,+�/.-�110�443����������������������	�

�
���������!"!�$$#�&&%�))(�,,+�..-�10/�332�665������������������������	�

�
���������!! �##"�&&%�(('�++*�.-,�00/�321�554�887���������������������������	
	��

�������� ! �##"�%%$�(('�**)�--,�0/.�221�554�776�::9����������������������������	
	��

��������  �""!�%%$�''&�**)�,,+�//.�210�443�765�998�<<;�����������������������������%&%�	�

�
���������""!�$$#�''&�))(�,,+�..-�110�432�665�987�;;:�>>=����������������������������������WXW�
���������!! �$$#�&&%�))(�++*�..-�00/�332�654�887�;:9�>=<�@@?�/N����������������������������������������������!! �##"�&&%�(('�++*�--,�00/�221�554�876�::9�=<;�@?>�BBA�/O�/P��������������������������������������@@?�����  �"#"�%%$�''&�**)�--,�//.�221�543�776�:98�<<;�??>�BA@�EDC�/O�/Q�.R�p���������������������������������������))(�� �""!�$%$�''&�**)�,,+�/.-�110�443�765�998�<;:�?>=�AA@�DCB�GFE�/P�.Q�.S�-U�Gk�������������������������������������sss�!"!�$$#�&&%�))(�,,+�..-�10/�332�665�987�;;:�>=<�A@?�CCB�FED�IHG�/P�.R�.S�-U�-W�,X����������������������������������������\\\�(('�++*�.-,�00/�321�554�887�;:9�==<�@?>�CBA�EED�HGF�KJI�/Q�.R�.T�-V�-W�,Y�,Z�Fp�����������������������������������������||{�0/.�221�554�776�::9�=<;�??>�BA@�EDC�GGF�JIH�MLK�.Q�.S�-U�-V�,X�,Y�+[�+]�*^�_�����������������������������������������������PON�998�<<;�?>=�BA@�DCB�GFE�JIH�LKJ�ONM�.R�.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�z���������������������������������������������������YXW�DCB�FED�IHG�LKJ�NML�QPO�.R�.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�^�������������������������������������������������������xww�NML�QPO�SRQ�.S�-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�B~������������������������������������������������������������.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�N���������������������������������������������������.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�?��v����������������������������������-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�/��Y������������������-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� ��-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��-V�,X�,Y�+[�+]�*^�*`�)a�)c�)e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�!|�!}� � �� �� �� �� ��-W��,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� �� ���-W�;,Y��,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&m�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��� ��;(  ���������	
	�

����!! �%&%���������	�
���� �$$#�))(�CCC�������	�
�����##"�(('�--,�����565�����������""!�''&�,,+�110������������

�����!! �&&%�++*�00/�654����������565��	
	�

����  �%%$�**)�//.�443�:98��������������FGF�
�����$$#�))(�..-�332�887�>=<�;Y�����������������������##"�(('�--,�221�776�=<;�BA@�/P�;^������������������VVU�""!�''&�,,+�110�665�;;:�A@?�FED�.Q�-T�,X�a��������������������RRQ�0/.�554�::9�@?>�EDC�JJI�.R�-U�,Y�+\�*_�������������������������JJI�DCB�IHG�ONM�.S�-W�,Z�+]�*`�)c�(g�x����������������������������{zy�-T�,X�,[�+^�*a�)d�(h�'k�&n�@�������������������-U�,Y�+\�*_�)b�(e�'i�&l�%o�$r�#u�"x�!{�:��T���y���-V�,Z�+]�*`�)c�(f�'j�&m�%p�$s�#v�"y�!|� � �� ��-Xѽ,[�+^�*a�)d�(h�'k�&n�%q�$t�#w�"z�!}� �� �� ���A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A00 �%   � h<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
��: