Example #1
0
        /// <summary>
        /// Creates a new UnderlayPdfDefinition that is a copy of the current instance.
        /// </summary>
        /// <param name="newName">UnderlayPdfDefinition name of the copy.</param>
        /// <returns>A new UnderlayPdfDefinition that is a copy of this instance.</returns>
        public override TableObject Clone(string newName)
        {
            UnderlayPdfDefinition copy = new UnderlayPdfDefinition(newName, this.File)
            {
                Page = this.page
            };

            foreach (XData data in this.XData.Values)
            {
                copy.XData.Add((XData)data.Clone());
            }

            return(copy);
        }
Example #2
0
        private UnderlayDefinition ReadUnderlayDefinition(UnderlayType type)
        {
            string handle = null;
            string page = string.Empty;
            string ownerHandle = null;
            string fileName = null;
            string name = null;

            this.chunk.Next();
            while (this.chunk.Code != 0)
            {
                switch (this.chunk.Code)
                {
                    case 5:
                        handle = this.chunk.ReadHex();
                        this.chunk.Next();
                        break;
                    case 1:
                        fileName = this.DecodeEncodedNonAsciiCharacters(this.chunk.ReadString());
                        this.chunk.Next();
                        break;
                    case 2:
                        page = this.DecodeEncodedNonAsciiCharacters(this.chunk.ReadString());
                        this.chunk.Next();
                        break;
                    case 330:
                        ownerHandle = this.chunk.ReadHex();
                        this.chunk.Next();
                        break;
                    default:
                        this.chunk.Next();
                        break;
                }
            }

            if (ownerHandle != null)
            {
                DictionaryObject underlayDefDict = this.dictionaries[ownerHandle];
                if (handle == null)
                    throw new NullReferenceException("Null handle in underlay definition dictionary.");
                name = underlayDefDict.Entries[handle];
            }

            UnderlayDefinition underlayDef = null;
            switch (type)
            {
                case UnderlayType.DGN:
                    underlayDef = new UnderlayDgnDefinition(fileName, name)
                    {
                        Handle = handle,
                        Layout = page
                    };
                    break;
                case UnderlayType.DWF:
                    underlayDef = new UnderlayDwfDefinition(fileName, name)
                    {
                        Handle = handle
                    };
                    break;
                case UnderlayType.PDF:
                    underlayDef = new UnderlayPdfDefinition(fileName, name)
                    {
                        Handle = handle,
                        Page = page
                    };
                    break;
            }

            if (underlayDef == null)
                throw new NullReferenceException("Underlay reference definition.");
            this.underlayDefHandles.Add(underlayDef.Handle, underlayDef);
            return underlayDef;
        }
        private static void UnderlayEntity()
        {
            UnderlayDgnDefinition underlayDef1 = new UnderlayDgnDefinition("DgnUnderlay.dgn");
            Underlay underlay1 = new Underlay(underlayDef1);
            underlay1.Normal = new Vector3(1, 0, 0);
            underlay1.Position = new Vector3(0, 1, 0);
            underlay1.Scale = new Vector3(0.001);

            UnderlayDwfDefinition underlayDef2 = new UnderlayDwfDefinition("DwfUnderlay.dwf");
            Underlay underlay2 = new Underlay(underlayDef2);
            underlay2.Rotation = 45;
            underlay2.Scale = new Vector3(0.01);

            UnderlayPdfDefinition underlayDef3 = new UnderlayPdfDefinition("PdfUnderlay.pdf");
            underlayDef3.Page = "3";
            Underlay underlay3 = new Underlay(underlayDef3);

            DxfDocument doc = new DxfDocument(DxfVersion.AutoCad2013);
            doc.AddEntity(underlay1);
            doc.AddEntity(underlay2);
            doc.AddEntity(underlay3);
            doc.Save("UnderlayEntity.dxf");

            DxfDocument load = DxfDocument.Load("UnderlayEntity.dxf");
            load.Save("UnderlayEntity2.dxf");
        }