Beispiel #1
0
        private void createButton3_Click(object sender, EventArgs e)
        {
            Doc          doc    = new Doc();
            Properties   props  = Properties.FromDoc(doc, true);
            List <Group> groups = new List <Group>();

            for (int i = 1; i < 4; i++)
            {
                groups.Add(props.AddGroup("Layer " + i.ToString(), null));
            }
            // membership policies are simple to use but limited in scope
            MembershipGroup alloff = props.AddMembershipGroup();

            alloff.Policy       = MembershipGroup.PolicyEnum.AllOff;
            alloff.PolicyGroups = groups;
            // membership visibility expressions are more complex but more powerful
            MembershipGroup mgve = props.AddMembershipGroup();
            ArrayAtom       ve   = mgve.MakeVisibilityExpression(MembershipGroup.LogicEnum.Or, groups);

            mgve.EntryVE = mgve.MakeVisibilityExpression(MembershipGroup.LogicEnum.Not, new ArrayAtom[] { ve });
            doc.FontSize = 36;
            doc.Rect.Inset(20, 20);
            for (int i = 0; i < 3; i++)
            {
                doc.Page = doc.AddPage();
                Page   page   = (Page)doc.ObjectSoup[doc.Page];
                Writer writer = new Writer(props, page);
                OptionalContent.Layer layer1 = writer.AddGroup(alloff);
                doc.AddText("The next line uses a Policy so that it is only visible if all layers are turned off...\r\n");
                writer.StartLayer(layer1);
                doc.AddText("I am normally invisible\r\n\r\n");
                writer.EndLayer();
                OptionalContent.Layer layer2 = writer.AddGroup(mgve);
                doc.AddText("The next line uses a Visibility Expression so that it is only visible if all layers are turned off...\r\n");
                writer.StartLayer(layer2);
                doc.AddText("I am normally invisible\r\n");
                writer.EndLayer();
                doc.Flatten();
            }
            LoadPDF(doc);
        }