Beispiel #1
0
        public virtual void testGetSignatureVector_Old()
        {
            testBuildOldLayout();
            JDFLayout    lo  = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0);
            VElement     v   = lo.getSignatureVector();
            JDFSignature sig = (JDFSignature)v[0];

            Assert.AreEqual(sig.getName(), sig.getSignatureName());
            Assert.AreEqual("Sig1", sig.getSignatureName());
            JDFSignature sig2 = (JDFSignature)v[1];

            Assert.AreEqual(sig2.getName(), sig2.getSignatureName());
            Assert.AreEqual("Sig2", sig2.getSignatureName());
            VElement vSheet = sig2.getSheetVector();
            JDFSheet s1     = (JDFSheet)vSheet[1]; // don't try 0 it will

            // fail because it is
            // referenced...
            Assert.AreEqual("Sig2", s1.getSignatureName());
            Assert.AreEqual("Sheet2_2", s1.getSheetName());
            JDFSurface su = s1.getCreateBackSurface();

            Assert.AreEqual("Sig2", su.getSignatureName());
            Assert.AreEqual("Sheet2_2", su.getSheetName());
            Assert.AreEqual(su, s1.getSurfaceVector()[0]);
        }
Beispiel #2
0
 ///
 ///	 <summary> * (31) create inter-resource link to refTarget
 ///	 *  </summary>
 ///	 * <param name="refTarget"> the element that is referenced </param>
 ///
 public virtual void refSheet(JDFSheet refTarget)
 {
     if (JDFLayout.isNewLayout(this))
     {
         throw new JDFException("refSheet: attempting to reference a partition");
     }
     refElement(refTarget);
 }
Beispiel #3
0
        public virtual void testBuildNewLayout()
        {
            reset();

            JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null);

            Assert.IsTrue(JDFLayout.isNewLayout(lo), "lo 1.3");
            JDFSignature si = lo.appendSignature();

            Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name");
            si = lo.appendSignature();
            Assert.AreEqual(2, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name");

            JDFSheet sh = si.appendSheet();

            sh = si.appendSheet();
            Assert.AreEqual(2, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name");
            sh = si.getCreateSheet(4);
            Assert.AreEqual(3, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name");
            sh = si.getSheet(2);
            Assert.AreEqual(3, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name");

            JDFSurface su = sh.appendFrontSurface();

            Assert.AreEqual(1, sh.numSurfaces(), "num surfaces");
            Assert.AreEqual(ElementName.LAYOUT, su.LocalName, "sheet name");
            Assert.IsTrue(sh.hasFrontSurface(), "hasfrontSurface");

            su = sh.appendBackSurface();
            Assert.AreEqual(2, sh.numSurfaces(), "num surfaces");
            Assert.AreEqual(ElementName.LAYOUT, su.LocalName, "sheet name");

            try
            {
                sh.appendBackSurface();
                Assert.Fail("no two back surfaces");
            }
            catch (JDFException)
            { // nop
            }

            si = lo.getCreateSignature(4);
            Assert.AreEqual(3, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name");
            si = lo.getSignature(2);
            Assert.AreEqual(3, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name");
            si = lo.getSignature(5);
            Assert.IsNull(si, "si null");
            Assert.IsTrue(lo.isValid(EnumValidationLevel.Complete), "layout valid");
            Assert.AreEqual(lo.numSignatures(), lo.getSignatureVector().Count);
        }
Beispiel #4
0
        ///
        ///	 <summary> * gets or appends a JDFSheet in both old and new Layouts <li>if old: a <code>Sheet</code> element <li>if new: a
        ///	 * <code>SheetName</code> partition leaf
        ///	 *  </summary>
        ///	 * <param name="iSkip"> the number of Sheets to skip </param>
        ///	 * <returns> JDFSheet </returns>
        ///
        public virtual JDFSheet getCreateSheet(int iSkip)
        {
            JDFSheet s = getSheet(iSkip);

            if (s == null)
            {
                s = appendSheet();
            }
            return(s);
        }
Beispiel #5
0
        public virtual VElement getSheetVector(JDFAttributeMap mAttrib, bool bAnd)
        {
            VElement myResource = new VElement();
            VElement vElem      = getChildElementVector(ElementName.SHEET, null, mAttrib, bAnd, 0, true);

            for (int i = 0; i < vElem.Count; i++)
            {
                JDFElement k          = (JDFElement)vElem[i];
                JDFSheet   myJDFSheet = (JDFSheet)k;
                myResource.Add(myJDFSheet);
            }
            return(myResource);
        }
Beispiel #6
0
        public virtual void testGetLayoutLeavesNew()
        {
            testBuildNewLayout();

            JDFLayout lo     = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0);
            VElement  leaves = lo.getLayoutLeaves(false);

            Assert.AreEqual(6, leaves.Count, "2 Sigs, 2 sheets, 2 surfaces");
            JDFSignature si = lo.getSignature(1);

            leaves = si.getLayoutLeaves(false);
            Assert.AreEqual(4, leaves.Count, "2 sheets, 2 surfaces");
            JDFSheet sh = si.getSheet(2);

            leaves = sh.getLayoutLeaves(false);
            Assert.AreEqual(2, leaves.Count, "2 surfaces");
        }
Beispiel #7
0
        public virtual void testFixFromFlatNewLayout()
        {
            n.setVersion(EnumVersion.Version_1_3);
            JDFLayout        loNew = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null);
            JDFContentObject co1   = loNew.appendContentObject();

            n.fixVersion(EnumVersion.Version_1_2);
            JDFLayout lo = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0);

            Assert.IsFalse(JDFLayout.isNewLayout(lo));
            JDFSignature si = lo.getSignature(0);

            Assert.AreEqual(ElementName.SIGNATURE, si.LocalName);
            JDFSheet   sh = si.getSheet(0);
            JDFSurface su = sh.getSurface(EnumSide.Front);

            Assert.AreEqual(co1, su.getContentObject(0));
        }
Beispiel #8
0
        public virtual void testGetSignatureName_New()
        {
            testBuildNewLayout();
            JDFLayout    lo  = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0);
            JDFSignature sig = lo.getSignature(0);

            Assert.AreEqual("SignatureName1", sig.getSignatureName());
            JDFSignature sig2 = lo.getSignature(1);

            Assert.AreEqual("SignatureName2", sig2.getSignatureName());
            JDFSheet s1 = sig2.getSheet(1); // don't try 0 it will fail because it

            // is referenced...
            Assert.AreEqual("SignatureName2", s1.getSignatureName());
            Assert.AreEqual("SheetName2", s1.getSheetName());
            JDFSurface su = s1.getCreateBackSurface();

            Assert.AreEqual("SignatureName2", su.getSignatureName());
            Assert.AreEqual("SheetName2", su.getSheetName());
        }
Beispiel #9
0
        public virtual void testBuildOldLayout()
        {
            reset();

            n.setVersion(EnumVersion.Version_1_2);
            JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null);

            Assert.IsFalse(JDFLayout.isNewLayout(lo), "lo 1.3");
            JDFSignature si = lo.appendSignature();

            si.setName("Sig1");
            Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name");
            Assert.IsFalse(si.hasAttribute(AttributeName.CLASS));
            si = lo.appendSignature();
            si.setName("Sig2");
            Assert.AreEqual(2, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name");

            JDFSheet sh = si.appendSheet();

            sh.setName("Sheet2_1");
            sh.makeRootResource(null, null, true); // see what happens with
            // refelements
            sh = si.appendSheet();
            sh.setName("Sheet2_2");
            Assert.AreEqual(2, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name");
            sh = si.getCreateSheet(4);
            Assert.AreEqual(3, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name");
            sh = si.getSheet(2);
            Assert.AreEqual(3, si.numSheets(), "num sheets");
            Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name");

            JDFSurface su = sh.appendFrontSurface();

            Assert.AreEqual(1, sh.numSurfaces(), "num surfaces");
            Assert.AreEqual(ElementName.SURFACE, su.LocalName, "sheet name");
            Assert.IsTrue(sh.hasFrontSurface(), "hasfrontSurface");
            su.appendContentObject();
            su.appendMarkObject();
            su.appendContentObject();
            su.appendContentObject();

            su = sh.appendBackSurface();
            su.makeRootResource(null, null, true);
            su.appendContentObject();
            su.appendMarkObject();
            su.appendContentObject();
            su.appendContentObject();
            su.appendMarkObject();
            Assert.AreEqual(2, sh.numSurfaces(), "num surfaces");
            Assert.AreEqual(ElementName.SURFACE, su.LocalName, "sheet name");
            Assert.IsTrue(sh.hasBackSurface(), "hasBackSurface");

            try
            {
                sh.appendBackSurface();
                Assert.Fail("append second surface");
            }
            catch (JDFException)
            { // nop
            }

            si = lo.getCreateSignature(4);
            Assert.AreEqual(3, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name");
            si = lo.getSignature(2);
            Assert.AreEqual(3, lo.numSignatures(), "num sigs");
            Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name");
            si = lo.getSignature(5);
            Assert.IsNull(si, "si null");
            Assert.AreEqual(lo.numSignatures(), lo.getSignatureVector().Count);
        }
Beispiel #10
0
        public virtual void testDynamicMarks()
        {
            JDFElement.setLongID(false);
            JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null);

            lo.setXMLComment("Layout that illustrates dynamic mark placement - all margins are 25 points (gutter=2*25)");
            lo.setSurfaceContentsBox(new JDFRectangle(0, 0, 500, 350));
            JDFSheet   s  = lo.appendSheet();
            JDFSurface su = s.appendFrontSurface();

            JDFContentObject co0 = su.appendContentObject();

            co0.setOrd(0);
            JDFMatrix m1 = (JDFMatrix)JDFMatrix.unitMatrix.Clone();

            m1.shift(25, 25);
            co0.setCTM(JDFMatrix.unitMatrix);
            co0.setTrimSize(new JDFXYPair(200, 300));
            string[] id = new string[2];
            id[0] = co0.appendAnchor(null);
            JDFContentObject co1 = su.appendContentObject();

            m1 = (JDFMatrix)JDFMatrix.unitMatrix.Clone();
            m1.shift(275, 25);
            co1.setCTM(m1);
            co1.setTrimSize(200, 300);
            id[1] = co1.appendAnchor(null);

            {
                JDFMarkObject mark0 = su.appendMarkObject();
                mark0.setXMLComment("Register Mark on the top right of the sheet - assumed size is 20*30, assumed sheet size is 500*350");
                mark0.setTrimSize(20, 30);
                mark0.setCTM(new JDFMatrix(1, 0, 0, 1, 500 - 20, 350 - 30));
                mark0.appendDeviceMark().setAttribute("Anchor", "TopRight");
                mark0.appendRegisterMark().setXMLComment("mark metadata goes here");
                appendRefAnchor(mark0, "TopRight", "Parent", null);
            }

            {
                JDFMarkObject mark0 = su.appendMarkObject();
                mark0.setXMLComment("Vertical Slug Line beginning at the top of the bottom margin of of the sheet between the 2 pages" + "\nnote that no TrimSize need be specified and therefore TrimCTM / CTM place the point defined by @Anchor" + "\nnote also that the anchor points to centerleft which is in the unrotated (horizontal) cs of the slug line");
                JDFMatrix m0 = new JDFMatrix(1, 0, 0, 1, 0, 0);
                m0.rotate(90);
                m0.shift(250, 25);
                mark0.setCTM(m0);
                JDFDeviceMark dm = mark0.appendDeviceMark();
                dm.setAttribute("Anchor", "CenterLeft");
                dm.setFontSize(10);
                dm.setFont("GhostCrypt");
                JDFJobField jf = mark0.appendJobField();
                jf.setXMLComment("Result: Sheet Printed by Dracula at the moonphase FullMoon");
                jf.setAttribute("JobFormat", "Sheet Printed by %s at the moonphase %s");
                jf.setAttribute("JobTemplate", "Operator,MoonPhase");
                appendRefAnchor(mark0, "BottomCenter", "Parent", null);
            }

            for (int i = 0; i < 2; i++)
            {
                JDFMarkObject mark0 = su.appendMarkObject();
                mark0.setXMLComment("Horizonzal Slug Line, centered 5 points over the top of page " + i + "\nnote that page is not yet a predefined token\n");
                JDFMatrix m0 = new JDFMatrix(1, 0, 0, 1, 0, 0);
                m0.rotate(90);
                m0.shift(25 + 100, 300 + 25 + 5);
                if (i == 1)
                {
                    m0.shift(250, 0);
                }
                mark0.setCTM(m0);
                JDFDeviceMark dm = mark0.appendDeviceMark();
                dm.setAttribute("Anchor", "BottomCenter");
                dm.setFontSize(8);
                JDFJobField jf = mark0.appendJobField();
                jf.setXMLComment("Result: Page # " + i + " for Customer, Polanski - Job: J11");
                jf.setAttribute("JobFormat", "Page # %i for Customer, %s - Job: %s");
                jf.setAttribute("JobTemplate", "Page,JobRecipientName,JobID");
                appendRefAnchor(mark0, "BottomCenter", "Sibling", id[i]);
            }
            doc.write2File(sm_dirTestDataTemp + "LayoutDynamicMarks.jdf", 2, false);
        }
Beispiel #11
0
        ///
        ///	 <summary> * generate a JDF 1.2 compatible Layout from this (1.3)
        ///	 *  </summary>
        ///	 * <returns> bool true if successful
        ///	 *  </returns>
        ///
        public virtual bool fromNewLayout()
        {
            // TODO: fix content object placement
            VElement vLO  = getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("SignatureName", ""), false, 0, false);
            VElement vSig = new VElement();

            if (vLO.IsEmpty())
            {
                JDFSignature signature = (JDFSignature)appendElement(ElementName.SIGNATURE);
                signature.setName("Sig_00");
                vSig.Add(signature);
                moveElementsTo((JDFLayout)signature);
            }
            else
            {
                JDFSignature sig = null;
                for (int i = 0; i < vLO.Count; i++)
                {
                    JDFElement lo = (JDFElement)vLO[i];
                    sig = null;
                    if (lo.hasAttribute(AttributeName.SIGNATURENAME))
                    {
                        lo.renameAttribute(AttributeName.SIGNATURENAME, AttributeName.NAME, null, null);
                        sig = (JDFSignature)lo.renameElement(ElementName.SIGNATURE, null);
                        sig.cleanResourceAttributes();
                        vSig.Add(sig);
                    }
                    else
                    {
                        if (vSig.IsEmpty())
                        {
                            JDFSignature signature = (JDFSignature)appendElement(ElementName.SIGNATURE);
                            signature.setName("Sig_00");
                            vSig.Add(sig);
                        }
                    }
                    if (sig != null)
                    {
                        moveElement(sig, null);
                    }
                }
            }
            int nSheet = 0;

            for (int iSig = 0; iSig < vSig.Count; iSig++)
            {
                JDFSignature sig = (JDFSignature)vSig[iSig];
                vLO = sig.getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("SheetName", ""), false, 0, false);
                VElement vSheet = new VElement();
                if (vLO.IsEmpty())
                {
                    nSheet++;
                    JDFSheet sheet = (JDFSheet)sig.appendElement(ElementName.SHEET);
                    sheet.setName("Sheet_" + Convert.ToString(nSheet));
                    vSheet.Add(sheet);
                    ((JDFLayout)sig).moveElementsTo((JDFLayout)sheet);
                }
                else
                {
                    JDFSheet sheet = null;
                    for (int i = 0; i < vLO.Count; i++)
                    {
                        sheet = null;
                        JDFElement lo = (JDFElement)vLO[i];
                        if (lo.hasAttribute(AttributeName.SHEETNAME))
                        {
                            lo.renameAttribute(AttributeName.SHEETNAME, AttributeName.NAME, null, null);
                            sheet = (JDFSheet)lo.renameElement(ElementName.SHEET, null);
                            sheet.cleanResourceAttributes();
                            vSheet.Add(sheet);
                            nSheet++;
                        }
                        else
                        {
                            if (vSheet.IsEmpty())
                            {
                                nSheet++;
                                sheet = (JDFSheet)sig.appendElement(ElementName.SHEET);
                                sheet.setName("Sheet_" + Convert.ToString(nSheet));
                                vSheet.Add(sheet);
                            }
                            if (sheet != null)
                            {
                                sheet.moveElement(lo, null);
                            }
                        }
                    }
                }

                for (int iSheet = 0; iSheet < vSheet.Count; iSheet++)
                {
                    JDFSheet sheet = (JDFSheet)vSheet[iSheet];
                    vLO = sheet.getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("Side", ""), false, 0, false);
                    if (vLO.IsEmpty())
                    {
                        JDFSurface surf = (JDFSurface)sheet.appendElement(ElementName.SURFACE);
                        surf.setSide(EnumSide.Front);
                        ((JDFLayout)sheet).moveElementsTo((JDFLayout)surf);
                    }
                    else
                    {
                        for (int i = 0; i < vLO.Count; i++)
                        {
                            JDFSurface surface = (JDFSurface)vLO[i];
                            //C# renameElement only returns the renamed element.
                            surface = (JDFSurface)surface.renameElement(ElementName.SURFACE, null);
                            EnumSide sid = surface.getSide();
                            surface.cleanResourceAttributes();
                            surface.setSide(sid);
                        }
                    }
                }
            }
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SIGNATURENAME, null, JDFConstants.BLANK, -1);
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SHEETNAME, null, JDFConstants.BLANK, -1);
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SIDE, null, JDFConstants.BLANK, -1);
            return(true);
        }
Beispiel #12
0
 ///
 ///      <summary> * (31) create inter-resource link to refTarget </summary>
 ///      * <param name="refTarget"> the element that is referenced </param>
 ///
 public virtual void refSheet(JDFSheet refTarget)
 {
     refElement(refTarget);
 }