为有中文需求的客户提供多渠道中文技术支持.

Tue Apr 12, 2022 12:38 pm

如题

比如 有个word文件 有3页, 第三页右下方 有个 shape

我应该如何才能获取到

shape 所在页数: 3 (或者2可以,如果开始是0的话)
shape width、height、left、top。等等真实的值呢?

谢谢。

xjdataspire
 
Posts: 24
Joined: Mon Mar 28, 2022 2:06 am

Wed Apr 13, 2022 8:56 am

您好,

感谢您的询问。
我们的Spire.Doc基于微软Word文档规范,而微软Word是流式布局文档。 产品并没有提供可以直接获取“页”的接口,因此是无法获取到shape是在第几页的。而Word文档由一个或多个章节构成,一个章节可以是一“页”也可以是多“页”。你可以通过下面的代码获取shape是在第几个章节,以及其宽高等值。如有问题,请随时联系我们。
Code: Select all
            Document document = new Document();
            document.LoadFromFile("fileName");
            //遍历章节
            for (int i = 0; i < document.Sections.Count; i++)
            {
                Section section = document.Sections[i];
                //遍历段落
                for (int j = 0; j < section.Paragraphs.Count; j++)
                {
                    Paragraph p = section.Paragraphs[j];
                    //遍历子元素
                    for (int k = 0; k < p.ChildObjects.Count; k++)
                    {
                        DocumentObject obj = p.ChildObjects[k];
                        //判断子元素是否为shape
                        if (obj.DocumentObjectType == DocumentObjectType.Shape)
                        {
                             ShapeObject shape1 = obj as ShapeObject;
                            float x = shape1.HorizontalPosition;
                            float y = shape1.VerticalPosition;
                            double Width = shape1.Width;
                            double height=shape1.Height;
                            Console.WriteLine("shape所在章节:" + (i+1)+"  宽度为:"+Width+"  高度为:"+height+"  top为:"+x+"  left为:"+y);
                            Console.ReadLine();
                        }
                    }
                }
            }
User avatar

kylie.tian
 
Posts: 412
Joined: Mon Mar 07, 2022 2:30 am

Return to 中文技术支持