Beispiel #1
0
        ///
        ///	 <summary> * set comment text , also creates the comment if not there </summary>
        ///	 * <param name="text"> the comment text to set
        ///	 *  </param>
        ///	 * <returns> <seealso cref="JDFComment"/> the comment  </returns>
        ///
        public virtual JDFComment setCommentText(string text)
        {
            JDFComment c = getCreateComment(0);

            c.setText(text);
            return(c);
        }
Beispiel #2
0
        ///
        ///     <summary> * simulate execution of this node
        ///     * the internal node will be modified to reflect the excution </summary>
        ///
        public override void execute(VJDFAttributeMap vNodeMap, bool bOutAvail, bool bFirst)
        {
            JDFComment c = theExpandedNode.appendComment();

            c.setName("OperatorText");
            c.setText(StringUtil.getRandomString());

            base.execute(vNodeMap, bOutAvail, bFirst);
        }
Beispiel #3
0
        ///
        ///	 <summary> * get comment text if available,
        ///	 *  </summary>
        ///	 * <returns> String the comment text, else null </returns>
        ///
        public virtual string getCommentText()
        {
            JDFComment c = getComment(0);

            if (c == null)
            {
                return(null);
            }
            return(c.getText());
        }
Beispiel #4
0
        public void testExtendedAddress()
        {
            JDFDoc          doc     = new JDFDoc("JDF");
            JDFNode         root    = doc.getJDFRoot();
            JDFResourcePool resPool = root.getCreateResourcePool();
            KElement        kElem   = resPool.appendResource(ElementName.ADDRESS, null, null);

            Assert.IsTrue(kElem is JDFAddress);
            JDFAddress ad = (JDFAddress)kElem;
            JDFComment c  = (JDFComment)ad.appendExtendedAddress();

            Assert.IsFalse(c.hasAttribute(AttributeName.ID));
        }
Beispiel #5
0
        public virtual void testContentData()
        {
            d = new JDFDoc("JDF");
            n = d.getJDFRoot();
            n.setType(EnumType.Approval);
            JDFRunList rl = (JDFRunList)n.addResource(ElementName.RUNLIST, EnumUsage.Input);

            pl = rl.appendPageList();
            pl.makeRootResource("PageList", null, true);

            cl = pl.appendContentList();
            cl.makeRootResource("ContentList", null, true);
            JDFContentData cd0 = cl.appendContentData();

            cd0.setAttribute(AttributeName.CONTENTLISTINDEX, "1 2 3");
            KElement book = cd0.appendElement("ContentMetaData");

            book.setAttribute("ISBN", "0123456789");
            JDFComment abstrakt = (JDFComment)book.appendElement("Comment");

            abstrakt.setName("Abstract");
            abstrakt.setText("Abstract of the book\nin english");
            JDFEmployee editor = (JDFEmployee)book.appendElement(ElementName.EMPLOYEE);

            editor.appendPerson().setFamilyName("authorName");
            editor.setRoles(new VString("Editor", null));
            book.setAttribute("Title", "book thing");
            int p = 1;

            for (int i = 1; i < 4; i++)
            {
                JDFContentData cd = cl.appendContentData();
                cd.setAttribute("ID", "CD_" + i);
                KElement chap = cd.appendElement("ContentMetaData");
                chap.setAttribute("Title", "Chapter " + i);
                JDFEmployee author = (JDFEmployee)chap.appendElement(ElementName.EMPLOYEE);
                author.appendPerson().setFamilyName("authorName" + i);
                author.setRoles(new VString("Author", null));

                JDFPageData         pd = pl.appendPageData();
                JDFIntegerRangeList integerRangeList = new JDFIntegerRangeList();
                integerRangeList.Append(p, p + i);
                p += i + 1;
                pd.setAttribute("PageIndex", integerRangeList.ToString());
                JDFPageElement pe = pd.appendPageElement();
                pe.setAttribute("ContentDataRefs", cd.getID());
            }
            pl.setXMLComment("Note that multiple page elements may but need not be specified\nit is also possible to reference only on pageEleemnt that spans the entire book");

            d.write2File(sm_dirTestDataTemp + "ContentMetaData.jdf", 2, false);
        }
Beispiel #6
0
        public virtual void testLayoutPreflight()
        {
            JDFElement.setLongID(false);
            JDFDoc d = new JDFDoc("JDF");

            n = d.getJDFRoot();
            n.setType(EnumType.LayoutElementProduction);

            JDFRunList outRun = (JDFRunList)n.appendMatchingResource(ElementName.RUNLIST, EnumProcessUsage.AnyOutput, null);

            outRun.setFileURL("output.pdf");

            JDFLayoutElementProductionParams lep = (JDFLayoutElementProductionParams)n.appendMatchingResource(ElementName.LAYOUTELEMENTPRODUCTIONPARAMS, EnumProcessUsage.AnyInput, null);
            JDFComment com = lep.appendComment();

            com.setName("Instruction");
            com.setText("Add any human readable instructions here");

            // new
            aPool = (JDFActionPool)lep.appendElement(ElementName.ACTIONPOOL);

            // now some simple tests...
            appendNumPagesAction();
            appendSeparationAction();
            appendBWSeparationAction();
            appendTrimBoxAction();
            appendResolutionAction();
            StatusUtil su = new StatusUtil(n, null, null);

            su.setPhase(EnumNodeStatus.InProgress, "Creative Work", EnumDeviceStatus.Running, null, null);

            su.getDocJMFPhaseTime();
            Thread.Sleep(1000);
            su = new StatusUtil(n, null, null);
            su.setPhase(EnumNodeStatus.InProgress, "Creative Work", EnumDeviceStatus.Running, null, null);
            su.getDocJMFPhaseTime();
            Thread.Sleep(1000);
            su = new StatusUtil(n, null, null);
            su.setPhase(EnumNodeStatus.Completed, "done", EnumDeviceStatus.Idle, null, null);
            su.getDocJMFPhaseTime();
            d.write2File(sm_dirTestDataTemp + "LayoutPreflight.jdf", 2, false);
        }
Beispiel #7
0
        ///
        ///	 <summary> * Set ErrorText, (Notification/Comment/#text) also sets Notification/@Type=Error and Notification/@Class=Error
        ///	 * doesn't create a notification if ErroerText=null
        ///	 *  </summary>
        ///	 * <param name="errorText"> new error text </param>
        ///	 * <returns> JDFNotification the newly created Notification element </returns>
        ///
        public virtual JDFNotification setErrorText(string errorText)
        {
            JDFNotification n = getCreateNotification();

            n.setType("Error");
            n.setClass(JDFNotification.EnumClass.Error);
            if (errorText != null)
            {
                JDFComment c = n.getComment(0);
                if (c != null)
                {
                    c.appendText("\n");
                }
                else
                {
                    c = n.appendComment();
                }
                c.appendText(errorText);
            }
            return(n);
        }
Beispiel #8
0
        public virtual void testLayoutElementPositioning()
        {
            // TBD: Fuzzy, Sizes, literal text via comments
            JDFElement.setLongID(false);
            JDFDoc d = new JDFDoc("JDF");

            n = d.getJDFRoot();
            n.setType(EnumType.LayoutElementProduction);

            JDFRunList outRun = (JDFRunList)n.appendMatchingResource(ElementName.RUNLIST, EnumProcessUsage.AnyOutput, null);

            outRun.setFileURL("output.pdf");

            JDFLayoutElementProductionParams lep = (JDFLayoutElementProductionParams)n.appendMatchingResource(ElementName.LAYOUTELEMENTPRODUCTIONPARAMS, EnumProcessUsage.AnyInput, null);

            lep.appendXMLComment("This is a \"well placed\" CTM defined mark\nThe anchor defines the 0,0 point to be transformed\nThe element to be placed is referenced by LayoutElement/FileSpec/URL", null);

            JDFContentList cl = (JDFContentList)lep.appendElement(ElementName.CONTENTLIST);

            cl = (JDFContentList)cl.makeRootResource(null, null, true);
            cl.setXMLComment("this is an optional metadatapool for the content");

            JDFLayoutElementPart lePart      = addLayoutElementPart(lep, cl);
            KElement             positionObj = lePart.appendElement("PositionObject");

            positionObj.setAttribute("PageRange", "0");
            setNextAnchor(positionObj, null, "LowLeft", "0 0", null, "Parent", 0);
            positionObj.setAttribute("Anchor", "LowLeft");
            positionObj.setAttribute("PositionPolicy", "Exact");
            JDFLayoutElement bkg = (JDFLayoutElement)lePart.appendElement("LayoutElement");

            bkg.setMimeURL("bkg.pdf");

            lep.appendXMLComment("This is a \"roughly placed\" reservation in the middle of the page", null);
            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "0");
            // TODO discuss individual positions
            setNextAnchor(positionObj, null, "Center", null, null, "Parent", 0);
            positionObj.setAttribute("Anchor", "Center");
            positionObj.setAttribute("PositionPolicy", "Free");
            string id = lePart.appendAnchor(null);

            JDFLayoutElement image = (JDFLayoutElement)lePart.appendElement("LayoutElement");

            image.setElementType(EnumElementType.Image);
            image.appendComment().setText("Please add an image of a palm tree on a beach here!");

            lep.appendXMLComment("This is a \"roughly placed\" reservation 36 points below the previous image;\n NextPosition points from Anchor on this to NextAnchor on next,\n i.e. a positive vector specifies that next is shifted in the positive direction in the parent (in this case page) coordinate system", null);
            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "0");
            positionObj.setAttribute("Anchor", "TopCenter");
            positionObj.setAttribute("PositionPolicy", "Free");
            setNextAnchor(positionObj, id, "BottomCenter", "0 36", null, "Sibling", 0);

            image = (JDFLayoutElement)lePart.appendElement("LayoutElement");
            image.setElementType(EnumElementType.Image);
            image.appendComment().setText("Please add an image of a beach ball below the palm tree!");

            lep.appendXMLComment("This is a \"well placed\" CTM defined mark\nThe anchor defines the 0,0 point to be transformed", null);
            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "0");
            setNextAnchor(positionObj, null, "BottomLeft", "2 3", null, "Parent", 0);
            positionObj.setAttribute("Anchor", "LowLeft");
            positionObj.setAttribute("PositionPolicy", "Exact");
            lePart.appendBarcodeProductionParams().appendXMLComment("barcode details here", null);

            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "0");
            setNextAnchor(positionObj, null, "TopRight", null, null, "Parent", 0);
            positionObj.setAttribute("Anchor", "TopRight");
            positionObj.appendXMLComment("This is a \"roughly placed\"  mark\nThe anchor at top right is placed at the right (=1.0) top(=1.0) position of the page.\nNo rotation is specified", null);
            positionObj.setAttribute("PositionPolicy", "Exact");
            lePart.appendBarcodeProductionParams().appendXMLComment("barcode details here", null);
            lep.appendXMLComment("This is a \"roughly placed\"  container for marks\nThe anchor at top left is defined in the !Unrotated! orientation.\n It is placed at the left (=0.0) bottom(=0.0) position of the page.\nThe text flows bottom to top (=Rotate 90 = counterclockwise)\n do we need margins?", null);

            lePart = addLayoutElementPart(lep, cl);
            string idParent = lePart.appendAnchor(null);

            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "1");
            positionObj.setAttribute("Anchor", "TopLeft");
            positionObj.setAttribute("PositionPolicy", "Free");
            setNextAnchor(positionObj, null, "BottomCenter", "0 0", null, "Parent", 90);
            lep.appendXMLComment("This is a  barcode inside the previous container\nThe anchor at bottom left is defined in the !Unrotated! orientation.\n It is placed at the left (=0.0) bottom(=0.0) position of the container.", null);

            lePart      = addLayoutElementPart(lep, cl);
            id          = lePart.appendAnchor(null);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("Anchor", "BottomLeft");
            setNextAnchor(positionObj, idParent, "BottomLeft", "0 0", null, "Parent", 0);
            lePart.appendBarcodeProductionParams().appendXMLComment("barcode details here", null);
            lep.appendXMLComment("This is a disclaimer text inside the previous container\nThe anchor at top left is defined in the !Unrotated! orientation.\n The barcode and text are justified with their top margins and spaced by 72 points\n which corresponds to the left of the page because the container is rotated 90°\n" + "AbsoluteSize specifies the size of the object in points", null);

            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            setNextAnchor(positionObj, id, "TopRight", "-72 0", null, "Sibling", 0);

            positionObj.setAttribute("Anchor", "TopLeft");
            // positionObj.setAttribute("ParentRef", idParent);
            positionObj.setAttribute("AbsoluteSize", "300 200");
            JDFLayoutElement text = (JDFLayoutElement)lePart.appendElement("LayoutElement");

            text.setElementType(EnumElementType.Text);
            text.setMimeURL("file://myServer/disclaimers/de/aspirin.txt");
            lep.appendXMLComment("This is a \"VERY roughly placed\" piece of text somewhere on pages 2-3\n" + "RelativeSize specifies the size of the object as a ratio of the size of the container", null);

            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "1 ~ 2");
            positionObj.setAttribute("RelativeSize", "0.8 0.5");
            text = (JDFLayoutElement)lePart.appendElement("LayoutElement");
            text.setElementType(EnumElementType.Text);
            JDFComment instructionComment = text.appendComment();

            instructionComment.setName("Instructions");
            instructionComment.setText("Please add some text about the image of a palm tree on a beach here!");
            lep.appendXMLComment("This is another \"VERY roughly placed\" piece of text somewhere on pages 2-3; the text source is the JDF", null);

            lePart      = addLayoutElementPart(lep, cl);
            positionObj = lePart.appendElement("PositionObject");
            positionObj.setAttribute("PageRange", "1 ~ 2");
            text = (JDFLayoutElement)lePart.appendElement("LayoutElement");
            text.setElementType(EnumElementType.Text);

            JDFComment textSrc = text.appendComment();

            textSrc.setName("TextInput");
            textSrc.setText("Laurum Ipsum Blah blah blah!\n btw. this is unformatted plain text and nothing else!");

            d.write2File(sm_dirTestDataTemp + "LayoutPositionObj.jdf", 2, false);
        }