Пример #1
0
        public virtual void testGetCreateRefElement()
        {
            JDFNode         n  = new JDFDoc("JDF").getJDFRoot();
            JDFMedia        m  = (JDFMedia)n.addResource("Media", null);
            JDFMedia        m1 = (JDFMedia)m.addPartition(EnumPartIDKey.Location, "T1");
            JDFMedia        m2 = (JDFMedia)m.addPartition(EnumPartIDKey.Location, "T2");
            JDFExposedMedia xm = (JDFExposedMedia)n.addResource("ExposedMedia", null);

            Assert.IsNull(xm.getRefElement(m1));
            for (int i = 0; i < 10; i++)
            {
                JDFRefElement re = xm.getCreateRefElement(m2);
                Assert.AreEqual(re, xm.getRefElement(m2));
                Assert.AreEqual(re, xm.getRefElement(m2));
                Assert.AreEqual(m2, xm.getMedia());
                Assert.IsNull(xm.getRefElement(m1));
                Assert.IsNull(xm.getRefElement(m));
                Assert.AreEqual(1, xm.numChildElements("MediaRef", null));
            }
            for (int i = 0; i < 10; i++)
            {
                JDFRefElement re = xm.getCreateRefElement(m2);
                Assert.AreEqual(re, xm.getRefElement(m2));
                Assert.AreEqual(re, xm.getCreateRefElement(m2));
                xm.getCreateRefElement(m);
                xm.getCreateRefElement(m1);
                Assert.AreEqual(3, xm.numChildElements("MediaRef", null));
            }
        }
Пример #2
0
        public virtual void testGetRefElement()
        {
            JDFNode         n  = new JDFDoc("JDF").getJDFRoot();
            JDFMedia        m  = (JDFMedia)n.addResource("Media", null);
            JDFMedia        m1 = (JDFMedia)m.addPartition(EnumPartIDKey.Location, "T1");
            JDFMedia        m2 = (JDFMedia)m.addPartition(EnumPartIDKey.Location, "T2");
            JDFExposedMedia xm = (JDFExposedMedia)n.addResource("ExposedMedia", null);

            Assert.IsNull(xm.getRefElement(m1));
            JDFRefElement re = xm.refElement(m2);

            Assert.AreEqual(re, xm.getRefElement(m2));
            Assert.AreEqual(re, xm.getRefElement(m2));
            Assert.AreEqual(xm.getMedia(), m2);
            Assert.IsNull(xm.getRefElement(m1));
            Assert.IsNull(xm.getRefElement(m));
        }
Пример #3
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);
        }
Пример #4
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);
        }
Пример #5
0
        public virtual void testApplyResourceCmd()
        {
            JDFDoc doc = new JDFDoc(ElementName.JMF);
            JDFJMF jmf = doc.getJMFRoot();

            JDFCommand c = jmf.appendCommand();

            jmf.setSenderID("DeviceSenderID");

            c.setType(EnumType.Resource);
            JDFResourceCmdParams rqp = c.appendResourceCmdParams();

            rqp.setJobID("JobID");
            rqp.setJobPartID("JobPartID");
            rqp.setResourceName("Media");
            JDFMedia mediaRQP = (JDFMedia)rqp.appendElement("Media");

            mediaRQP.setDimension(new JDFXYPair(20, 30));

            JDFDoc  docJDF = new JDFDoc(ElementName.JDF);
            JDFNode jdf    = docJDF.getJDFRoot();

            jdf.setType(org.cip4.jdflib.node.JDFNode.EnumType.ConventionalPrinting);
            JDFMedia mediaJDF = (JDFMedia)jdf.addResource("Media", null, EnumUsage.Input, null, null, null, null);

            mediaJDF.setDimension(new JDFXYPair(40, 60));
            rqp.setJobID(jdf.getJobID(true));
            rqp.setJobPartID(jdf.getJobPartID(true));

            rqp.applyResourceCommand(jdf);
            JDFMedia m2 = (JDFMedia)jdf.getMatchingResource("Media", EnumProcessUsage.AnyInput, null, 0);

            Assert.AreEqual(new JDFXYPair(20, 30), m2.getDimension());

            JDFAttributeMap sheetMap = new JDFAttributeMap("SheetName", "S1");

            rqp.setPartMap(sheetMap);
            mediaRQP.setDimension(new JDFXYPair(200, 300));

            JDFMedia m2Sheet = (JDFMedia)m2.addPartition(EnumPartIDKey.SheetName, "S1");

            rqp.applyResourceCommand(jdf);
            Assert.AreEqual(new JDFXYPair(20, 30), m2.getDimension(), "retained root dimension");
            Assert.AreEqual(new JDFXYPair(200, 300), m2Sheet.getDimension(), "overwrote leaf root dimension");

            sheetMap.put(EnumPartIDKey.SheetName, "S2");
            rqp.setPartMap(sheetMap);
            mediaRQP.setDimension(new JDFXYPair(300, 400));

            rqp.applyResourceCommand(jdf);
            JDFMedia m2Sheet2 = (JDFMedia)m2.getPartition(sheetMap, null);

            Assert.IsNotNull(m2Sheet2);
            Assert.AreEqual(new JDFXYPair(20, 30), m2.getDimension(), "retained root dimension");
            Assert.AreEqual(new JDFXYPair(300, 400), m2Sheet2.getDimension(), "overwrote leaf root dimension");

            JDFMedia mPartRQP = (JDFMedia)mediaRQP.addPartition(EnumPartIDKey.SheetName, "S3");

            sheetMap.put(EnumPartIDKey.SheetName, "S3");
            rqp.setPartMap(sheetMap);
            mPartRQP.setDimension(new JDFXYPair(400, 600));

            rqp.applyResourceCommand(jdf);
            JDFMedia m2Sheet3 = (JDFMedia)m2.getPartition(sheetMap, null);

            Assert.AreEqual(new JDFXYPair(20, 30), m2.getDimension(), "retained root dimension");
            Assert.AreEqual(new JDFXYPair(400, 600), m2Sheet3.getDimension(), "overwrote leaf root dimension");
            Assert.IsFalse(m2Sheet3.hasAttribute_KElement("ID", null, false));

            mPartRQP.setAttribute(AttributeName.DIMENSION, "");
            mediaRQP.removeAttribute(AttributeName.DIMENSION);
            rqp.applyResourceCommand(jdf);
            JDFMedia m2Sheet4 = (JDFMedia)m2.getPartition(sheetMap, null);

            Assert.AreEqual(new JDFXYPair(20, 30), m2.getDimension(), "retained root dimension");
            Assert.IsFalse(m2Sheet4.hasAttribute_KElement(AttributeName.DIMENSION, null, false), "removed leaf dimension");
        }