Esempio n. 1
0
        public virtual void createHDCity()
        {
            initCustomerInfo(null, null, "Heidelberger Druckmaschinen AG", "Heidelberg A4 brochure");
            theNode.setDescriptiveName("7.5.5   A4 brochure with spot colors, 4pg Cover 6c/4c, 32 pg Text 4c/4c");
            JDFNode cover = addJDFNode(theNode, EnumType.Product);

            cover.setDescriptiveName("HD Brochure Cover");

            initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, null);
            JDFLayoutIntent li = initLayoutIntent(cover, 21, 29.7, 4, 2);

            initColorIntent(cover, 6, 4, null);
            JDFComponent cCover = initOutputComponent(cover, li, "Cover");

            cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            JDFNode body = addJDFNode(theNode, EnumType.Product);

            body.setDescriptiveName("HD Brochure Body");
            initColorIntent(body, 4, 4, null);
            initMediaIntent(body, 135, EnumSpanCoatings.Coated, null);
            initLayoutIntent(body, 21, 29.7, 32, 2);
            JDFComponent cBody = initOutputComponent(body, li, "Body");

            cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            initBindingIntent(cCover, cBody, 2);

            initOutputComponent(theNode, li, null);
            initDeliveryIntent(5000);
        }
Esempio n. 2
0
        public virtual void testVirtualAmounts()
        {
            JDFDoc  d = new JDFDoc("JDF");
            JDFNode n = d.getJDFRoot();

            n.setType(EnumType.ConventionalPrinting);
            JDFComponent    comp = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null);
            JDFAttributeMap map  = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1");
            JDFResourceLink rl   = n.getLink(comp, null);

            for (int i = 0; i < 5; i++)
            {
                map.put(EnumPartIDKey.SheetName, "Sheet" + i);
                comp.getCreatePartition(map, new VString("SignatureName SheetName", " "));
                rl.setAmount(500 + i, map);
                JDFAttributeMap map2 = new JDFAttributeMap(map);
                map2.put("Condition", "Good");
                rl.setActualAmount(500 + i, map2);
                map2.put("Condition", "Waste");
                rl.setActualAmount(50 + i, map2);

                map2.put("Condition", "Good");
                Assert.AreEqual(500 + i, rl.getActualAmount(map2), 0.01);
                map2.put("Condition", "Waste");
                Assert.AreEqual(50 + i, rl.getActualAmount(map2), 0.01);
            }
        }
Esempio n. 3
0
        public virtual void testPartAmountVirtual()
        {
            JDFDoc  d = new JDFDoc(ElementName.JDF);
            JDFNode n = d.getJDFRoot();

            n.setVersion(JDFElement.EnumVersion.Version_1_3);
            n.setType("ConventionalPrinting", true);
            JDFComponent comp = (JDFComponent)n.appendMatchingResource(ElementName.COMPONENT, EnumProcessUsage.AnyOutput, null);

            JDFResourceLink cpLink = n.getLink(comp, null);
            JDFAttributeMap mapBad = new JDFAttributeMap("Condition", "Waste");

            cpLink.setActualAmount(42, mapBad);
            Assert.AreEqual(42.0, cpLink.getActualAmount(mapBad), 0);
            Assert.IsTrue(n.isValid(EnumValidationLevel.Incomplete), "allow part amounts to non-existing partitions");

            cpLink.removeChild(ElementName.AMOUNTPOOL, null, 0);
            comp.addPartition(EnumPartIDKey.SheetName, "Sheet1");
            mapBad.put(EnumPartIDKey.SheetName.getName(), "Sheet1");
            cpLink.setActualAmount(42, mapBad);
            Assert.AreEqual(42.0, cpLink.getActualAmount(mapBad), 0);
            Assert.IsTrue(n.isValid(EnumValidationLevel.Incomplete), "allow partamounts to non-existing partitions");
            mapBad.put(EnumPartIDKey.SheetName.getName(), "Sheet2");
            Assert.AreEqual(0.0, cpLink.getActualAmount(mapBad), 0);
            JDFAttributeMap m2 = new JDFAttributeMap("Condition", "Waste");

            Assert.AreEqual(42.0, cpLink.getActualAmount(m2), 0);
            m2.put("SheetName", "Sheet1");
            Assert.AreEqual(42.0, cpLink.getActualAmount(m2), 0);
            m2.put("Side", "Front");
            Assert.AreEqual(0.0, cpLink.getActualAmount(m2), 0);
        }
Esempio n. 4
0
        public virtual void testGetPartAmountMulti()
        {
            JDFDoc  d = new JDFDoc("JDF");
            JDFNode n = d.getJDFRoot();

            n.setType(EnumType.ConventionalPrinting);
            JDFComponent    comp   = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null);
            JDFAttributeMap map    = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1");
            JDFAttributeMap mapSig = new JDFAttributeMap(map);
            JDFAttributeMap map2   = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1");
            JDFResourceLink rl     = n.getLink(comp, null);

            map.put(EnumPartIDKey.SheetName, "Sheet");
            comp.getCreatePartition(map, new VString("SignatureName SheetName", " "));
            map.put(EnumPartIDKey.Side, "Front");
            map2.put(EnumPartIDKey.Side, "Back");
            VJDFAttributeMap vMap = new VJDFAttributeMap();

            vMap.Add(map);
            vMap.Add(map2);
            JDFAmountPool aplocal = rl.appendAmountPool();
            JDFPartAmount pa      = aplocal.appendPartAmount(vMap);

            Assert.AreEqual(pa.numChildElements_JDFElement(ElementName.PART, null), 2);
            rl.setActualAmount(42, map);
            rl.setActualAmount(21, map2);
            Assert.AreEqual(2, pa.numChildElements_JDFElement(ElementName.PART, null));
            Assert.AreEqual(42.0, rl.getActualAmount(map), 0.0);
            Assert.AreEqual(42.0 + 21.0, rl.getActualAmount(mapSig), 0.0);
            Assert.AreEqual(aplocal.getPartAmount(vMap), pa);
        }
Esempio n. 5
0
        public virtual void testWasteAmount()
        {
            VJDFAttributeMap singleMap = new VJDFAttributeMap();

            singleMap.Add(xpMedia.getPartMapVector(false)[0]);

            MISCPGoldenTicket gt = new MISCPGoldenTicket(2, EnumVersion.Version_1_3, 2, 2, false, singleMap);

            gt.good  = 1000;
            gt.waste = 100;
            gt.assign(null);
            n = gt.getNode();
            JDFComponent    c       = (JDFComponent)n.getResource(ElementName.COMPONENT, null, 0);
            JDFMedia        m       = (JDFMedia)n.getResource(ElementName.MEDIA, null, 0);
            JDFResourceLink rl      = n.getLink(c, null);
            JDFResourceLink rlMedia = n.getLink(m, null);
            VElement        vRL     = new VElement();

            vRL.Add(rl);
            vRL.Add(rlMedia);
            sc = new StatusCounter(null, null, null);
            sc.setTrackWaste(rl.getrRef(), true);
            sc.setTrackWaste(rlMedia.getrRef(), true);
            sc.setActiveNode(n, c.getPartMapVector(false), vRL);
            Assert.AreEqual(100, sc.getPlannedWaste(rlMedia.getrRef()), 0);
            Assert.AreEqual(1000, sc.getPlannedAmount(rl.getrRef()), 0);
        }
Esempio n. 6
0
        public virtual void testReducePartAmounts()
        {
            JDFDoc  d = new JDFDoc("JDF");
            JDFNode n = d.getJDFRoot();

            n.setType(EnumType.ConventionalPrinting);
            JDFComponent    comp = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null);
            JDFAttributeMap map  = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1");
            JDFResourceLink rl   = n.getLink(comp, null);

            for (int i = 0; i < 5; i++)
            {
                map.put(EnumPartIDKey.SheetName, "Sheet" + i);
                comp.getCreatePartition(map, new VString("SignatureName SheetName", " "));
                rl.setAmount(500 + i, map);
                JDFAttributeMap map2 = new JDFAttributeMap(map);
                map2.put("Condition", "Good");
                rl.setActualAmount(500 + i, map2);
                map2.put("Condition", "Waste");
                rl.setActualAmount(50 + i, map2);
            }
            VJDFAttributeMap v       = new VJDFAttributeMap();
            JDFAttributeMap  testMap = new JDFAttributeMap(EnumPartIDKey.Condition, "Good");

            v.Add(testMap);
            JDFAmountPool aplocal = rl.getAmountPool();

            Assert.AreEqual(15, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "15 pa entries");
            aplocal.reducePartAmounts(v);
            Assert.AreEqual(5, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "5 pa entries");
            testMap.put("SheetName", "Sheet3");
            aplocal.reducePartAmounts(v);
            Assert.AreEqual(1, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "1 pa entries");
        }
Esempio n. 7
0
        public virtual void testIsPresentPartition()
        {
            JDFAction act = devicecap.appendActionPool().appendActionTest(EnumTerm.IsPresentEvaluation, true);
            JDFTest   tst = act.getTest();

            tst.setContext("//Component");
            JDFIsPresentEvaluation ipe = (JDFIsPresentEvaluation)tst.getTerm();

            ipe.setRefTarget(ptState);
            Assert.AreEqual(ptState.getID(), ipe.getrRef());

            JDFDoc  doc  = new JDFDoc("JDF");
            JDFNode node = doc.getJDFRoot();

            node.setType("fnarf", false);
            JDFComponent comp = (JDFComponent)node.addResource("Component", null, EnumUsage.Input, null, null, null, null);

            comp.setProductType("Cover");

            XMLDoc   rep     = new XMLDoc("root", null);
            KElement eRep    = rep.getRoot();
            bool     fitsJDF = tst.fitsJDF(comp, eRep);

            Assert.IsTrue(fitsJDF);
            comp    = (JDFComponent)comp.addPartition(EnumPartIDKey.SheetName, "s1");
            fitsJDF = tst.fitsJDF(comp, eRep);
            Assert.IsTrue(fitsJDF, "also partition leaves ");
        }
Esempio n. 8
0
        public virtual void createAddressBook()
        {
            initCustomerInfo(null, null, "Art Point", "Address Pocketbook");
            theNode.setDescriptiveName("7.5.2   A5 brochure 4c/4c, 4pg Cover, 32 pg Text");
            JDFNode cover = addJDFNode(theNode, EnumType.Product);

            cover.setDescriptiveName("Address Book Cover");

            initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, null);
            JDFLayoutIntent li     = initLayoutIntent(cover, 14.8, 21, 4, 2);
            JDFColorIntent  ci     = initColorIntent(cover, 4, 4, null);
            JDFComponent    cCover = initOutputComponent(cover, li, "Cover");

            cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            JDFNode body = addJDFNode(theNode, EnumType.Product);

            body.setDescriptiveName("Address Book Body");
            body.linkResource(ci, EnumUsage.Input, null);
            initMediaIntent(body, 135, EnumSpanCoatings.Coated, null);
            initLayoutIntent(body, 14.8, 21, 32, 2);
            JDFComponent cBody = initOutputComponent(body, li, "Body");

            cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            initBindingIntent(cCover, cBody, 2);

            initOutputComponent(theNode, li, null);
            initDeliveryIntent(5000);
        }
Esempio n. 9
0
        public virtual void testAmountPalletteCompleteManifest()
        {
            JDFElement.setLongID(false);
            JDFDoc  d = new JDFDoc("JDF");
            JDFNode n = d.getJDFRoot();

            n.setType(EnumType.ProcessGroup);
            n.setTypes(new VString("Binding Stacking BoxPacking Palletizing", " "));
            JDFComponent    comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            JDFResourceLink rl   = n.getLink(comp, null);

            rl.setAmount(2, null);
            rl.setDescriptiveName("The link point to 2 pallets with a total comtent of 10000 brochures in 200 boxes");
            JDFComponent compBrochure = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Input, null, null, null, null);

            compBrochure.setResStatus(EnumResStatus.Available, true);
            compBrochure.setDescriptiveName("The individual Brochures");
            JDFResourceLink rlB = n.getLink(compBrochure, null);

            rlB.setAmount(10000, null);
            rlB.setActualAmount(9700, null);

            for (int i = 0; i < 2; i++)
            {
                // create a pallet partition - may also use the root
                JDFComponent compPallet = (JDFComponent)comp.addPartition(EnumPartIDKey.DeliveryUnit0, "Pallet" + i);
                compPallet.setProductID("Pallet_" + i);

                JDFBundle bundlePallet = compPallet.getCreateBundle();
                int       nBox         = i == 0 ? 100 : 94;
                bundlePallet.setDescriptiveName("Pallet Bundle describing " + nBox + " boxes with " + nBox * 50 + " Brochures Contents total");
                bundlePallet.setTotalAmount(nBox * 50);
                bundlePallet.setBundleType(EnumBundleType.Pallet);

                for (int j = 0; j < nBox; j++)
                {
                    JDFBundleItem biBoxes = bundlePallet.appendBundleItem();
                    JDFComponent  compBox = (JDFComponent)compPallet.addPartition(EnumPartIDKey.DeliveryUnit1, "Box_" + i + "_" + j);
                    compBox.setProductID("Box_" + i + "_" + j);
                    biBoxes.refElement(compBox);
                    biBoxes.setAmount(1);

                    JDFBundle bundleBox = compBox.appendBundle();
                    bundleBox.setDescriptiveName("Bundle describing box #" + j + " with 50 Brochures Contents per box");
                    bundleBox.setTotalAmount(50);
                    bundleBox.setBundleType(EnumBundleType.Box);

                    JDFBundleItem biBrochures = bundleBox.appendBundleItem();
                    biBrochures.refElement(compBrochure);
                    biBrochures.setAmount(50);
                }
            }

            d.write2File(sm_dirTestDataTemp + "MISFinAmountCompleteManifest.jdf", 2, false);
        }
Esempio n. 10
0
        ///
        ///	 * <param name="icsLevel"> </param>
        ///
        protected internal virtual JDFComponent initOutputComponent()
        {
            if (thePreviousNode != null)
            {
                JDFResource parentOutComp = thePreviousNode.getResource(ElementName.COMPONENT, EnumUsage.Output, 0);
                if (parentOutComp != null)
                {
                    theNode.linkResource(parentOutComp, EnumUsage.Input, null);
                }
            }
            JDFComponent outComp = (JDFComponent)(theParentNode != null ? theParentNode.getResource(ElementName.COMPONENT, EnumUsage.Output, 0) : null);

            if (outComp == null)
            {
                outComp = (JDFComponent)theNode.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0);
                outComp.setComponentType(EnumComponentType.FinalProduct, EnumComponentType.Sheet);
                outComp.setProductType("Unknown");
            }
            else
            {
                theNode.linkResource(outComp, EnumUsage.Output, null);
            }

            JDFResourceLink rl = theNode.getLink(outComp, EnumUsage.Output);

            if (vParts != null)
            {
                VJDFAttributeMap reducedMap = getReducedMap(new VString("Side Separation", " "));
                if (reducedMap != null)
                {
                    int size = reducedMap.Count;
                    for (int i = 0; i < size; i++)
                    {
                        JDFAttributeMap part     = reducedMap[i];
                        JDFResource     partComp = outComp.getCreatePartition(part, partIDKeys);
                        partComp.setDescriptiveName("Description for Component part# " + i);
                        JDFAttributeMap newMap = new JDFAttributeMap(part);
                        newMap.put(AttributeName.CONDITION, "Good");
                        rl.setAmount(good, newMap);
                    }
                }
            }
            else
            {
                outComp.setDescriptiveName("MIS-CP output Component");
            }
            // outComp.getCreateLayout();
            JDFMedia inMedia = (JDFMedia)theNode.getResource(ElementName.MEDIA, EnumUsage.Input, 0);

            if (inMedia != null)
            {
                outComp.setDimensions(inMedia.getDimension());
            }
            return(outComp);
        }
Esempio n. 11
0
        public virtual void testPlannedWasteICS()
        {
            JDFAmountPool ap   = rlOut.getCreateAmountPool();
            JDFAmountPool apIn = rlMediaIn.getCreateAmountPool();

            JDFComponent    cover = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Cover");
            JDFAttributeMap map   = cover.getPartMap();

            ap.appendXMLComment("Want 10000-10400 good cover sheets and allow for 500 waste cover sheets", null);
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(10000, map);
            rlOut.setMaxAmount(10400, map);
            apIn.appendXMLComment("Amount[Good]: planned consumption for good production\n" + "MaxAmount[Good]: planned maximum consumption for good production\n" + "MaxAmount[Waste]: planned Media for waste", null);
            rlMediaIn.setAmount(10500, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlMediaIn.setMaxAmount(500, map);

            ap.appendXMLComment("Want 20000 good first insert sheets and allow for 200 waste insert sheets", null);
            JDFComponent sheet1 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet1");

            map = sheet1.getPartMap();
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(20000, map);
            rlOut.setMaxAmount(20800, map);
            rlMediaIn.setAmount(21000, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlMediaIn.setMaxAmount(200, map);

            ap.appendXMLComment("Want 20000 good second insert sheets and allow for 100 waste insert sheets", null);
            JDFComponent sheet2 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet2");

            map = sheet2.getPartMap();
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(20000, map);
            rlOut.setMaxAmount(20800, map);
            rlMediaIn.setAmount(20900, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlMediaIn.setMaxAmount(100, map);

            d.write2File(sm_dirTestDataTemp + "plannedWasteICS.jdf", 2, true);

            //
            //		 * map=cover.getPartMap(); map.put(EnumPartIDKey.Condition, "Good");
            //		 * rl.getAmountPool().getPartAmount(map,0).appendXMLComment(
            //		 * "Actually produced covers: 10200\nWaste put on output stack:100");
            //		 * rlIn.getAmountPool().getPartAmount(map,0).appendXMLComment(
            //		 * "Total consumed sheets: 10400\nOf that: sheets wasted: 200");
            //		 * rl.setActualAmount(10200, map); rlIn.setActualAmount(10200, map);
            //		 * map.put(EnumPartIDKey.Condition, "Waste"); rl.setActualAmount(100,
            //		 * map); rlIn.setActualAmount(200, map);
            //		 *
            //		 * d.write2File(sm_dirTestDataTemp+"actualWasteICS.jdf", 2, true);
            //
        }
Esempio n. 12
0
        public virtual void testContentDataFinishing()
        {
            testContentData();
            JDFComponent c  = (JDFComponent)n.addResource(ElementName.COMPONENT, EnumUsage.Output);
            JDFComponent c1 = (JDFComponent)c.addPartition(EnumPartIDKey.BlockName, "Stack1");
            JDFComponent c2 = (JDFComponent)c.addPartition(EnumPartIDKey.BlockName, "Stack2");

            c.refElement(pl);
            c1.setPageListIndex(new JDFIntegerRangeList("0~8"));
            c2.setPageListIndex(new JDFIntegerRangeList("9~16"));
            c.setXMLComment("this is the output component with two stacks\n the imposition engine is aware of the pagelist index and can set it appropriately");
            d.write2File(sm_dirTestDataTemp + "ContentMetaDataStack.jdf", 2, false);
        }
Esempio n. 13
0
        public override void setUp()
        {
            base.setUp();
            JDFElement.setLongID(false);
            d = new JDFDoc("JDF");

            n = d.getJDFRoot();
            n.appendXMLComment("Example to illustrate JDF 1.3 Base and MIS compatible amount handling", null);
            n.setType(EnumType.ConventionalPrinting);
            outComp   = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            inMedia   = (JDFMedia)n.addResource(ElementName.MEDIA, null, EnumUsage.Input, null, null, null, null);
            rlOut     = n.getLink(outComp, null);
            rlMediaIn = n.getLink(inMedia, null);
        }
Esempio n. 14
0
        public virtual void testAction()
        {
            JDFAction act = devicecap.appendActionPool().appendActionTest(EnumTerm.or, false);
            JDFTest   tst = act.getTest();

            tst.setContext("/JDF/ResourcePool/Component");
            JDFor or = (JDFor)((JDFnot)tst.getTerm()).getTerm(EnumTerm.or, 0);
            JDFIsPresentEvaluation ipe = (JDFIsPresentEvaluation)or.appendTerm(EnumTerm.IsPresentEvaluation);

            ipe.setRefTarget(ptState);
            Assert.AreEqual(ptState.getID(), ipe.getrRef());

            JDFEnumerationEvaluation enev = (JDFEnumerationEvaluation)or.appendTerm(EnumTerm.EnumerationEvaluation);

            enev.setRefTarget(compState);
            enev.setRegExp("(.+ )*FinalProduct( .+)*");

            JDFDoc  doc  = new JDFDoc("JDF");
            JDFNode node = doc.getJDFRoot();

            node.setType("fnarf", false);
            JDFComponent comp = (JDFComponent)node.addResource("Component", null, EnumUsage.Input, null, null, null, null);

            XMLDoc   rep     = new XMLDoc("root", null);
            KElement eRep    = rep.getRoot();
            bool     fitsJDF = tst.fitsJDF(comp, eRep);

            Assert.IsTrue(fitsJDF);

            comp.setProductType("foobar");
            fitsJDF = tst.fitsJDF(comp, eRep);
            Assert.IsFalse(fitsJDF, "have pt");

            List <ValuedEnum> v = new List <ValuedEnum>();

            v.Add(EnumComponentType.FinalProduct);
            comp.setComponentType(v);
            fitsJDF = tst.fitsJDF(comp, eRep);
            Assert.IsFalse(fitsJDF, "have both");

            comp.removeAttribute("ProductType");
            fitsJDF = tst.fitsJDF(comp, eRep);
            Assert.IsFalse(fitsJDF, "have final");

            v = new List <ValuedEnum>();
            v.Add(EnumComponentType.PartialProduct);
            comp.setComponentType(v);
            fitsJDF = tst.fitsJDF(comp, eRep);
            Assert.IsTrue(fitsJDF, "have no final");
        }
Esempio n. 15
0
        ///
        ///	 <summary> * initializes this node to a given ICS version
        ///	 *  </summary>
        ///	 * <param name="icsLevel"> the level to init to (1,2 or 3) </param>
        ///
        public override void init()
        {
            initColsFromParent();
            initAmountsFromParent();
            if (partIDKeys == null)
            {
                partIDKeys = new VString("SignatureName SheetName Side Separation", null);
            }

            // put level methods?

            int ncols = getNCols();

            while (cols.Count > ncols && ncols > 0)
            {
                cols.RemoveAt(ncols);
            }

            if (icsLevel < 0)
            {
                return;
            }

            string icsTag = "MISCPS_L" + icsLevel + "-" + theVersion.getName();

            theNode.appendAttribute(AttributeName.ICSVERSIONS, icsTag, null, " ", true);
            if (!theNode.hasAttribute(AttributeName.DESCRIPTIVENAME))
            {
                theNode.setDescriptiveName("MISCPS Golden Ticket Example Job - version: " + JDFAudit.software());
            }

            if (!grayBox)
            {
                theNode.setType(EnumType.ConventionalPrinting);
            }
            initColorantControl();
            initConventionalPrintingParams();
            JDFMedia m = initPaperMedia();

            initPlateXM(EnumUsage.Input);
            initDevice(thePreviousNode);
            JDFComponent c = initOutputComponent();

            initInk();
            base.init();
            initPreview();
            setActivePart(vParts, true);
            theStatusCounter.setTrackWaste(c.getID(), true);
            theStatusCounter.setTrackWaste(m.getID(), true);
        }
Esempio n. 16
0
        ///
        ///	 * <param name="cover"> </param>
        ///	 * <param name="body">
        ///	 * @return </param>
        ///
        protected internal virtual JDFBindingIntent initBindingIntent(JDFComponent cover, JDFComponent body, int numStitches)
        {
            JDFBindingIntent bi = (JDFBindingIntent)theNode.addResource(ElementName.BINDINGINTENT, EnumUsage.Input);

            if (numStitches > 0)
            {
                bi.appendSaddleStitching().appendStitchNumber().setActual(numStitches);
                bi.appendBindingType().setActual(EnumSpanBindingType.SaddleStitch);
            }
            theNode.linkResource(cover, EnumUsage.Input, EnumProcessUsage.Cover);
            theNode.linkResource(body, EnumUsage.Input, null);
            bi.setResStatus(EnumResStatus.Available, false);
            bi.preferredToActual();
            return(bi);
        }
Esempio n. 17
0
        ///
        ///     <summary> * Get all Component from the current element
        ///     *  </summary>
        ///     * <returns> Collection<JDFComponent> </returns>
        ///
        public virtual ICollection <JDFComponent> getAllComponent()
        {
            List <JDFComponent> v = new List <JDFComponent>();

            JDFComponent kElem = (JDFComponent)getFirstChildElement(ElementName.COMPONENT, null);

            while (kElem != null)
            {
                v.Add(kElem);

                kElem = (JDFComponent)kElem.getNextSiblingElement(ElementName.COMPONENT, null);
            }

            return(v);
        }
Esempio n. 18
0
        public virtual void testAmount()
        {
            JDFElement.setLongID(false);
            JDFDoc  d = new JDFDoc("JDF");
            JDFNode n = d.getJDFRoot();

            n.setType(EnumType.ProcessGroup);
            n.setTypes(new VString("Binding Stacking BoxPacking Palletizing", " "));
            JDFComponent    comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            JDFResourceLink rl   = n.getLink(comp, null);

            rl.setAmount(2, null);
            rl.setDescriptiveName("The link point to 2 pallets with a total comtent of 10000 brochures in 200 boxes");

            // create a pallet partition - may also use the root
            JDFComponent compPallet = (JDFComponent)comp.addPartition(EnumPartIDKey.DeliveryUnit0, "Pallet");

            JDFComponent compBox      = (JDFComponent)compPallet.addPartition(EnumPartIDKey.DeliveryUnit1, "Box");
            JDFBundle    bundlePallet = compPallet.appendBundle();

            bundlePallet.setDescriptiveName("Bundle describing 100 boxes with 5000 Brochures Contents total");
            bundlePallet.setTotalAmount(5000);
            bundlePallet.setBundleType(EnumBundleType.Pallet);
            JDFBundleItem biBoxes = bundlePallet.appendBundleItem();

            biBoxes.refElement(compBox);
            biBoxes.setAmount(100);

            JDFComponent compBrochure = (JDFComponent)compBox.addPartition(EnumPartIDKey.DeliveryUnit2, "Brochure");
            JDFBundle    bundleBox    = compBox.appendBundle();

            bundleBox.setDescriptiveName("Bundle describing 1 boxes with 50 Brochures Contents per box");
            bundleBox.setTotalAmount(50);
            bundleBox.setBundleType(EnumBundleType.Box);

            JDFBundleItem biBrochures = bundleBox.appendBundleItem();

            biBrochures.refElement(compBrochure);
            biBrochures.setAmount(50);

            JDFBundle bundleBrochure = compBrochure.appendBundle();

            bundleBrochure.setDescriptiveName("Dummy Bundle to inhibit inheritence of the box Bundle");
            d.write2File(sm_dirTestDataTemp + "MISFinAmount.jdf", 2, false);
        }
Esempio n. 19
0
        public virtual void testDraftOK()
        {
            JDFDoc  d = new JDFDoc(ElementName.JDF);
            JDFNode n = d.getJDFRoot();

            n.setVersion(JDFElement.EnumVersion.Version_1_3);
            n.setType("ProcessGroup", true);
            JDFCustomerInfo ci = (JDFCustomerInfo)n.addResource(ElementName.CUSTOMERINFO, null, EnumUsage.Input, null, null, null, null);
            JDFComponent    co = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            JDFResourceLink rl = n.getLink(ci, null);

            Assert.AreEqual(JDFResource.EnumResStatus.Available, rl.getMinStatus(), "available");

            rl.setDraftOK(true);
            Assert.AreEqual(JDFResource.EnumResStatus.Draft, rl.getMinStatus(), "draft");
            Assert.IsTrue(!rl.hasAttribute(AttributeName.DRAFTOK), "has no draft");
            Assert.IsTrue(rl.getMinLateStatus() == JDFResource.EnumResStatus.Draft, "late draft");
            Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.3 valid");
            rl.setDraftOK(false);
            Assert.AreEqual(JDFResource.EnumResStatus.Available, rl.getMinStatus(), "draft");
            Assert.IsTrue(!rl.hasAttribute(AttributeName.DRAFTOK), "has no draft");
            Assert.IsTrue(rl.getMinLateStatus() == JDFResource.EnumResStatus.Available, "late draft");
            Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.3 valid");
            rl.removeAttribute(AttributeName.MINSTATUS);

            n.setVersion(JDFElement.EnumVersion.Version_1_2);
            rl.setDraftOK(true);
            Assert.IsTrue(rl.getMinStatus() == JDFResource.EnumResStatus.Draft, "draft");
            Assert.IsTrue(rl.hasAttribute(AttributeName.DRAFTOK), "has draft");
            Assert.IsTrue(!rl.hasAttribute(AttributeName.MINSTATUS), "has no MinStatus");
            Assert.AreEqual(rl.getMinLateStatus(), JDFResource.EnumResStatus.Draft, "late draft");
            Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.2 valid");
            rl.setDraftOK(false);
            Assert.IsTrue(rl.getMinStatus() == JDFResource.EnumResStatus.Available, "draft");
            Assert.IsTrue(rl.hasAttribute(AttributeName.DRAFTOK), "has draft");
            Assert.IsTrue(!rl.hasAttribute(AttributeName.MINSTATUS), "has no MinStatus");
            Assert.AreEqual(rl.getMinLateStatus(), JDFResource.EnumResStatus.Available, "late draft");
            Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.2 valid");

            rl = n.getLink(co, null);
            Assert.AreEqual(JDFResource.EnumResStatus.Unavailable, rl.getMinStatus(), "unavailable");
        }
Esempio n. 20
0
        /// <summary>
        /// All the setUp calls except for base.setUp.
        /// Use when you want to redo a setup without doign a teardown.
        /// </summary>
        public void reSetUp()
        {
            JDFElement.setLongID(false);
            JDFAudit.setStaticAgentName(null);
            JDFAudit.setStaticAgentVersion(null);
            JDFAudit.setStaticAuthor(null);

            doc = new JDFDoc("JDF");
            n   = doc.getJDFRoot();
            n.setJobID("JobID");
            n.setType(EnumType.Combined);
            n.setTypes(new VString("Interpreting Rendering DigitalPrinting Stitching", " "));
            comp       = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            rlComp     = n.getLink(comp, null);
            digiParams = (JDFDigitalPrintingParams)n.addResource(ElementName.DIGITALPRINTINGPARAMS, null, EnumUsage.Input, null, null, null, null);
            med        = (JDFMedia)n.appendMatchingResource(ElementName.MEDIA, EnumProcessUsage.AnyInput, null);
            med.setResStatus(EnumResStatus.Available, false);
            rlMedia = n.getLink(med, null);
            ruli    = (JDFRunList)n.appendMatchingResource(ElementName.RUNLIST, EnumProcessUsage.AnyInput, null);
        }
Esempio n. 21
0
        ///
        ///	 <summary> * initialize deliveryintent and also output component
        ///	 *  </summary>
        ///	 * <param name="amount"> </param>
        ///
        protected internal virtual JDFDeliveryIntent initDeliveryIntent(int amount)
        {
            JDFDeliveryIntent di = (JDFDeliveryIntent)theNode.addResource(ElementName.DELIVERYINTENT, EnumUsage.Input);
            JDFDate           d  = new JDFDate();

            d.addOffset(0, 0, 0, 7);
            di.appendRequired().setPreferred(d);
            if (amount > 0)
            {
                JDFComponent      outComp = (JDFComponent)theNode.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0);
                JDFDropItemIntent dit     = di.appendDropIntent().appendDropItemIntent();
                dit.refElement(outComp);
                dit.setAmount(amount);
                JDFResourceLink rl = theNode.getLink(outComp, null);
                rl.setAmount(amount, null);
            }

            di.setResStatus(EnumResStatus.Available, false);
            di.preferredToActual();
            return(di);
        }
Esempio n. 22
0
        ///
        ///	 <summary> * recalculate ncols from parent color intent if it exists </summary>
        ///
        private void initAmountsFromParent()
        {
            if (theParentProduct == null)
            {
                return;
            }
            JDFComponent    c  = (JDFComponent)theParentProduct.getResource(ElementName.COMPONENT, EnumUsage.Output, 0);
            JDFResourceLink cl = theParentProduct.getLink(c, EnumUsage.Output);

            if (cl == null)
            {
                return;
            }
            double amount = cl.getAmount(null);

            if (amount > 0)
            {
                good  = (int)amount;
                waste = (int)(good * 0.1);
            }
        }
Esempio n. 23
0
        public virtual void testPlannedWaste()
        {
            JDFElement.setLongID(false);
            d = new JDFDoc("JDF");
            n = d.getJDFRoot();
            n.setType(EnumType.ConventionalPrinting);
            outComp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);
            rlOut   = n.getLink(outComp, null);
            JDFAmountPool ap = rlOut.getCreateAmountPool();

            JDFComponent    cover = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Cover");
            JDFAttributeMap map   = cover.getPartMap();

            ap.appendXMLComment("Want 10000-10500 good cover sheets and allow for 500 waste cover sheets", null);
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(10000, map);
            rlOut.setMaxAmount(10500, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlOut.setMaxAmount(500, map);

            ap.appendXMLComment("Want 20000 good first insert sheets and allow for 200 waste insert sheets", null);
            JDFComponent sheet1 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet1");

            map = sheet1.getPartMap();
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(20000, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlOut.setMaxAmount(200, map);

            ap.appendXMLComment("Want 20000 good second insert sheets and allow for 200 waste insert sheets", null);
            JDFComponent sheet2 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet2");

            map = sheet2.getPartMap();
            map.put(EnumPartIDKey.Condition, "Good");
            rlOut.setAmount(20000, map);
            map.put(EnumPartIDKey.Condition, "Waste");
            rlOut.setMaxAmount(100, map);

            d.write2File(sm_dirTestDataTemp + "plannedWaste.jdf", 2, true);
        }
Esempio n. 24
0
        public virtual void testExpandAmountPool()
        {
            JDFDoc  d = new JDFDoc(ElementName.JDF);
            JDFNode n = d.getJDFRoot();

            n.setVersion(JDFElement.EnumVersion.Version_1_3);
            n.setType("ConventionalPrinting", true);
            JDFComponent comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null);

            comp.addPartitions(EnumPartIDKey.SheetName, new VString("S1 S2 S3", null));
            JDFResourceLink rl = n.getLink(comp, null);

            rl.setAmount(42, null);
            rl.setPipeProtocol("JDF");
            Assert.AreEqual(42.0, rl.getAmount(null), 0.1);
            Assert.IsNull(rl.getAmountPool());
            rl.expandAmountPool();
            Assert.IsNull(rl.getAttribute("Amount", null, null));
            Assert.AreEqual(42.0, rl.getAmount(new JDFAttributeMap(EnumPartIDKey.SheetName, "S2")), 0.1);
            Assert.IsNotNull(rl.getAmountPool());
            Assert.AreEqual("JDF", rl.getPipeProtocol());
        }
Esempio n. 25
0
        ///
        ///	 <summary> * product intent for the drupa flower job
        ///	 *  </summary>
        ///	 * <exception cref="Exception"> </exception>
        ///
        public virtual void createDrupaFlower()
        {
            initCustomerInfo("Jane", "Customer", "Messe Düsseldorf", "CIP4 Drupa Flower Demo Job");
            theNode.setDescriptiveName("Drupa Flower Brochure, 4pg Cover 5c5c, 48 pg Text 5c5c");

            JDFNode cover = addJDFNode(theNode, EnumType.Product);

            cover.setDescriptiveName("Drupa Flower Brochure Cover");

            initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, "Luxocard 2 SB");
            JDFLayoutIntent li = initLayoutIntent(cover, 23.3, 21.6, 4, 2);

            initColorIntent(cover, 5, 5, null);
            JDFComponent cCover = initOutputComponent(cover, li, "Cover");

            cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            JDFNode body = addJDFNode(theNode, EnumType.Product);

            body.setDescriptiveName("Drupa Flower Brochure Body");
            initColorIntent(body, 5, 5, "Cyan Magenta Yellow Black Blue");
            initMediaIntent(body, 150, EnumSpanCoatings.Glossy, "Scheufelen BVS dull BB");
            initLayoutIntent(body, 23.3, 21.6, 48, 2);
            JDFComponent cBody = initOutputComponent(body, li, "Body");

            cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);

            initBindingIntent(cCover, cBody, 2);

            initOutputComponent(theNode, li, null);
            initDeliveryIntent(5000);
            JDFPackingIntent pi = (JDFPackingIntent)theNode.getCreateResource(ElementName.PACKINGINTENT, EnumUsage.Input, 0);

            pi.setDescriptiveName("want cartons of products");
            JDFIntegerSpan @is = pi.appendCartonQuantity();

            @is.setRange(new JDFIntegerRangeList(new JDFIntegerRange(50, 500)));
        }
Esempio n. 26
0
        ///
        ///	 * <param name="icsLevel"> </param>
        ///
        protected internal virtual JDFComponent initOutputComponent(JDFNode node, JDFLayoutIntent li, string productType)
        {
            JDFComponent outComp = (JDFComponent)node.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0);

            if (productType == null)
            {
                outComp.setComponentType(EnumComponentType.FinalProduct, EnumComponentType.Sheet);
            }
            else
            {
                outComp.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet);
                outComp.setProductType(productType);
            }
            theNode.getResource(ElementName.LAYOUTINTENT, null, 0);
            JDFShape s = li.getFinishedDimensions().getActual();

            outComp.setDimensions(s);
            if (theNode != node)
            {
                theNode.getResourcePool().moveElement(outComp, null);
                theNode.linkResource(outComp, EnumUsage.Output, null);
            }
            return(outComp);
        }
Esempio n. 27
0
        public virtual void testTaggedAutomatedBooklet()
        {
            n.setXMLComment("This is a simple Automated Booklet using negative ords and meta data tags\n" + "New Attribute @OrdsConsumed limits the number of ords consumed by an automated Layout\n" + "Negative Ord values are assumed to flow backwards\n" + "New Attribute @OrdReset defines the scope of ords\n" + "MaxOrd is not specified and must be calculated by counting the number of different ord values\n" + "If we want to keep maxord, it would have to be replaced by an xypair that specifies hom many are consumed from back and from front\n" + "If the number of pages is not mod 4, blank pages are retained at the back of the layout");

            n.setType(EnumType.Combined);
            n.setTypes(new VString("Interpreting Rendering DigitalPrinting Inserting Stitching", null));
            setUpAutomatedInputRunList();
            rl.setDescriptiveName("This is any RunList...");
            lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null);
            lo.setResStatus(EnumResStatus.Available, true);

            JDFMedia media        = (JDFMedia)n.addResource("Media", EnumUsage.Input);
            JDFMedia mediaC       = (JDFMedia)media.addPartition(EnumPartIDKey.SheetName, "TheCover");
            JDFMedia mediaCMale   = (JDFMedia)mediaC.addPartition(EnumPartIDKey.SetTags, "Male");
            JDFMedia mediaCFemale = (JDFMedia)mediaC.addPartition(EnumPartIDKey.SetTags, "Female");

            JDFComponent insert = (JDFComponent)n.addResource("Component", null, EnumUsage.Input, EnumProcessUsage.Child, null, null, null);

            // JDFComponent insertExist=(JDFComponent)
            insert.addPartition(EnumPartIDKey.DocTags, "Exist");
            // JDFComponent insertProspect=(JDFComponent)
            insert.addPartition(EnumPartIDKey.DocTags, "Prospect");

            JDFLayout cover = (JDFLayout)lo.addPartition(EnumPartIDKey.SheetName, "TheCover");

            cover.setAutomated(false);
            JDFLayout coverMale = (JDFLayout)cover.addPartition(EnumPartIDKey.SetTags, "Male");

            coverMale.refMedia(mediaCMale);
            JDFLayout coverMaleHi = (JDFLayout)coverMale.addPartition(EnumPartIDKey.PageTags, "Hi");
            JDFLayout coverMaleLo = (JDFLayout)coverMale.addPartition(EnumPartIDKey.PageTags, "Low");

            JDFLayout coverFemale = (JDFLayout)cover.addPartition(EnumPartIDKey.SetTags, "Female");

            coverFemale.refMedia(mediaCFemale);
            JDFLayout coverFemaleHi = (JDFLayout)coverFemale.addPartition(EnumPartIDKey.PageTags, "Hi");
            JDFLayout coverFemaleLo = (JDFLayout)coverFemale.addPartition(EnumPartIDKey.PageTags, "Low");

            JDFLayout[] lo4 = new JDFLayout[4];
            lo4[0] = coverMaleHi;
            lo4[1] = coverFemaleHi;
            lo4[2] = coverMaleLo;
            lo4[3] = coverFemaleLo;
            JDFContentObject co;

            for (int i = 0; i < 4; i++)
            {
                JDFLayout lolo = lo4[i];

                JDFLayout coverFront = (JDFLayout)lolo.addPartition(EnumPartIDKey.Side, "Front");

                co = coverFront.appendContentObject();
                co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0));
                co.setOrd(0);
                co.setDescriptiveName("Front Cover Page Outside");
                co = coverFront.appendContentObject();
                co.setCTM(new JDFMatrix(1, 0, 0, 8.5 * 72, 0, 0));
                co.setOrd(-1);
                co.setDescriptiveName("Back Cover Page Outside");
                if (i < 2)
                {
                    JDFLayout coverBack = (JDFLayout)lolo.addPartition(EnumPartIDKey.Side, "Back");
                    co = coverBack.appendContentObject();
                    co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0));
                    co.setOrd(0);
                    co.setDescriptiveName("Front Cover Page Inside");
                    co = coverBack.appendContentObject();
                    co.setCTM(new JDFMatrix(1, 0, 0, 8.5 * 72, 0, 0));
                    co.setOrd(-1);
                    co.setDescriptiveName("Back Cover Page Inside");
                }
            }
            JDFLayout sheet = (JDFLayout)lo.addPartition(EnumPartIDKey.SheetName, "TheSheet");

            sheet.setAutomated(true);
            sheet.setAttribute("OrdReset", "Set Doc");
            sheet.setAttribute("OrdsConsumed", "0 -1");
            sheet = (JDFLayout)sheet.addPartition(EnumPartIDKey.SetTags, "Male Female").addPartition(EnumPartIDKey.PageTags, "Hi Lo");
            JDFLayout sheetFront = (JDFLayout)sheet.addPartition(EnumPartIDKey.Side, EnumSide.Front);

            co = sheetFront.appendContentObject();
            co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0));
            co.setOrd(0);
            co.setDescriptiveName("Front left Page 0,2,4...");

            co = sheetFront.appendContentObject();
            co.setCTM(new JDFMatrix(1, 0, 0, 1, 8.5 * 72, 0));
            co.setOrd(-1);
            co.setDescriptiveName("Back right page after folding -1 -3 -5 ... (Front sheet)");

            JDFLayout sheetBack = (JDFLayout)sheet.addPartition(EnumPartIDKey.Side, EnumSide.Back);

            co = sheetBack.appendContentObject();
            co.setCTM(new JDFMatrix(1, 0, 0, 1, 8.5 * 72, 0));
            co.setOrd(1);
            co.setDescriptiveName("Back left Page 1,3,5");

            co = sheetBack.appendContentObject();
            co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0));
            co.setOrd(-2);
            co.setDescriptiveName("Front Right Page Page -2 -4 -6");
            string s = doc.write2String(2);

            s = StringUtil.replaceString(s, "SetTags", "Meta0");
            s = StringUtil.replaceString(s, "DocTags", "Meta1");
            s = StringUtil.replaceString(s, "PageTags", "Meta2");

            FileInfo f  = new FileInfo(sm_dirTestDataTemp + "TaggedAutomatedBooklet.jdf");
            Stream   os = new FileStream(f.FullName, FileMode.Append);

            byte[] ba = Encoding.ASCII.GetBytes(s);
            os.Write(ba, 0, ba.Length);
        }
Esempio n. 28
0
 ///
 ///      <summary> * (31) create inter-resource link to refTarget </summary>
 ///      * <param name="refTarget"> the element that is referenced </param>
 ///
 public virtual void refComponent(JDFComponent refTarget)
 {
     refElement(refTarget);
 }
Esempio n. 29
0
        public virtual void testVariableManifests()
        {
            ruli.setXMLComment("the set / doc / ... structure is transferred from the pre-impositioning pdl");

            JDFPageList pl = (JDFPageList)n.addResource(ElementName.PAGELIST, null);

            pl.setResStatus(EnumResStatus.Available, false);

            JDFContentList cl = (JDFContentList)pl.appendContentList().makeRootResource(null, null, true);

            cl.setResStatus(EnumResStatus.Available, false);
            cl.setXMLComment("Should we allow for content-data cross references to forther contentdata fields?");
            ruli.refPageList(pl);
            comp.refPageList(pl);
            int pageCount = 0;

            digiParams.setSides(EnumSides.TwoSidedFlipY);
            digiParams.setXMLComment("the sides attribute may be overridden by explicitly or implicitly missing runlist input elements");

            VString vRun = new VString("Letter BrochureMale BrochureFemale", null);

            JDFStitchingParams sp = (JDFStitchingParams)n.addResource(ElementName.STITCHINGPARAMS, EnumUsage.Input);

            med.setXMLComment("Media Partitioning is convenience only- the actual media selection is done by the digitalprintingparams MediaRef");
            for (int i = 0; i < vRun.Count; i++)
            {
                string   part      = vRun[i];
                JDFMedia partMedia = (JDFMedia)med.addPartition(EnumPartIDKey.Run, part);
                partMedia.setProductID(part + "Media");

                JDFDigitalPrintingParams digiPart = (JDFDigitalPrintingParams)digiParams.addPartition(EnumPartIDKey.Run, part);
                digiPart.refMedia(partMedia);

                sp.setXMLComment("how are multiple runs stitched together e.g. cover + body?");
                JDFStitchingParams spPart = (JDFStitchingParams)sp.addPartition(EnumPartIDKey.Run, part);
                if (i == 0)
                {
                    spPart.setNoOp(true);
                    spPart.setDescriptiveName("The letter is a loose leaf collection");
                }
                else
                {
                    spPart.setNumberOfStitches(3);
                    spPart.setStitchType(EnumStitchType.Saddle);
                }
            }

            // loop over records
            for (int i = 0; i < 10; i++)
            {
                JDFContentData letter = cl.appendContentData();
                letter.setContentType("Letter");
                JDFContentData brochure = cl.appendContentData();
                brochure.setContentType("Brochure");
                KElement lMeta = letter.appendElement("ContentMetadata");
                // TODO apply new example
                lMeta.setAttribute("Record", "" + i);
                string gender = i % 2 == 0 ? "Male" : "Female";
                lMeta.setAttribute("Gender", gender);
                lMeta.setXMLComment("Note that the final format of the metadata element is open");
                KElement bMeta = brochure.appendElement("Metadata");
                bMeta.setAttribute("Record", "" + i);
                bMeta.setAttribute("Gender", gender);

                JDFRunList runSet = (JDFRunList)ruli.addPartition(EnumPartIDKey.RunSet, "Record" + i);
                JDFRunList run    = runSet.addRun("file://server/tifs/testLetter" + i + ".tif", 0, -1);
                run.setRun("Letter");
                JDFComponent compSet = (JDFComponent)comp.addPartition(EnumPartIDKey.RunSet, runSet.getRunSet());
                JDFComponent co      = (JDFComponent)compSet.addPartition(EnumPartIDKey.Run, run.getRun());
                int          page    = (3 * i) % 7 + 1;
                run.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1)));
                co.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1)));
                co.setSurfaceCount(2 * ((page + 1) / 2));
                run.setPages(new JDFIntegerRangeList("0~" + (page - 1)));
                run.setXMLComment("Cover Letter - record " + i);
                run.setEndOfDocument(true);
                JDFPageData pd = pl.appendPageData();
                pd.refContentData(letter);
                pd.setAttribute("PageIndex", pageCount + " ~ " + (pageCount + page - 1));
                pageCount += page;

                run = runSet.addRun("file://server/tifs/testBrochure" + i + ".tif", 0, -1);
                run.setRun("Brochure" + gender);

                co   = (JDFComponent)compSet.addPartition(EnumPartIDKey.Run, run.getRun());
                page = 2 * ((7 * i) % 13) + 2;
                run.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1)));
                co.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1)));
                co.setSurfaceCount(2 * ((page + 1 + 1) / 2)); // the 2nd +1 is for
                // the blank inside
                // cover
                run.setPages(new JDFIntegerRangeList("0~" + (page - 1)));
                run.setXMLComment("Brochure - record " + i);
                run.setEndOfDocument(true);
                runSet.setEndOfSet(true);
                run.setAttribute("SkipBlankOrds", "1");
                run.setNPage(page + 1);
                run.setXMLComment("SkipBlankOrds specifies the relative position of pages to skip\n1 specifies that the first back sheet is skipped\nNPage MUST be incremented by the # of skipped pages.");
                pd = pl.appendPageData();
                pd.refContentData(brochure);
                pd.setAttribute("PageIndex", pageCount + " ~ " + (pageCount + page - 1));
                pageCount += page;
            }
            doc.write2File(sm_dirTestDataTemp + "RunlistManifest.jdf", 2, false);
        }
Esempio n. 30
0
        protected internal static JDFDoc creatXMDoc()
        {
            JDFElement.setDefaultJDFVersion(EnumVersion.Version_1_3);
            JDFDoc  doc = new JDFDoc("JDF");
            JDFNode n   = doc.getJDFRoot();

            n.setJobPartID("P1");
            n.setJobID("J1");
            n.setType("ConventionalPrinting", true);
            n.appendElement("NS:Foobar", "www.foobar.com");

            n.appendMatchingResource("Layout", JDFNode.EnumProcessUsage.AnyInput, null);
            JDFComponent    comp = (JDFComponent)n.appendMatchingResource("Component", JDFNode.EnumProcessUsage.AnyOutput, null);
            JDFExposedMedia xm   = (JDFExposedMedia)n.appendMatchingResource("ExposedMedia", JDFNode.EnumProcessUsage.Plate, null);
            JDFNodeInfo     ni   = n.appendNodeInfo();
            JDFMedia        m    = xm.appendMedia();

            m.appendElement("NS:FoobarMedia", "www.foobar.com");

            Assert.AreEqual(EnumResourceClass.Consumable, m.getResourceClass(), "m Class");

            VString vs = new VString();

            vs.Add("SignatureName");
            vs.Add("SheetName");
            vs.Add("Side");

            JDFAttributeMap mPart1 = new JDFAttributeMap("SignatureName", "Sig1");

            mPart1.put("SheetName", "S1");
            mPart1.put("Side", "Front");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("Side", "Back");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("SheetName", "S2");
            mPart1.put("Side", "Front");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("Side", "Back");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("SignatureName", "Sig2");
            mPart1.put("SheetName", "S1");
            mPart1.put("Side", "Front");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);
            comp.appendElement("foo:bar", "www.foobar.com");

            mPart1.put("Side", "Back");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("SheetName", "S2");
            mPart1.put("Side", "Front");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);

            mPart1.put("Side", "Back");
            xm.getCreatePartition(mPart1, vs);
            ni.getCreatePartition(mPart1, vs);
            comp.getCreatePartition(mPart1, vs);
            return(doc);
        }