演示 中的 文本插入不了 急!急!急!

Viewed 5

页面放置了两个框,一个里面放着weboffice ppt展开部分,另外一个是普通的文本框,现在想通过在文本框中编辑文本,让ppt对应页的自动同步文本编辑,前面已经获取了PPT页index,和形状、文本框架、但使用了TextRange.Text 但好像没有用,想用下API调用是否正确,提示是SET问题,是SDK问题吗?该如何解决,谢谢 ncaught (in promise) Error at Function.set (web-office-sdk-solution-v1.1.27.umd.js:1:14170) at HTMLDivElement.

4 Answers

您好,文档是否有设置只读呢?

没有, 我是这么设置的,您看下 "comment": 1, "copy": 0, "download": 1, "history": 0,
"print": 1,
"read": 1,
"rename": 0,
"saveas": 0,
"update": 1,
"user_id": "404"
文档初始化只设置了 fileId: 'model2',
mount: document.querySelector('.api-container'),
commonOptions: {
isShowTopArea: false,
isShowHeader: false,
isBrowserViewFullscreen: false,
isIframeViewFullscreen: false,
acceptVisualViewportResizeEvent: true
}
});
image.png

你使用TextRange.Text 处相关的代码方便贴下吗?

贴在下面 ,麻烦了

textBox.addEventListener('input', async function() { try { // 更新PPT中的文本 const slideIndex = parseInt(this.dataset.slideIndex);
const slide = await slides.Item(slideIndex);
const shapes = await slide.Shapes;
const shapeCount = await shapes.Count;
const slideText = this.textContent.trim();

                            for (let j = 1; j <= shapeCount; j++) {
                                const shape = await shapes.Item(j);
                                if (await shape.HasTextFrame) {
                                    console.log(`更新幻灯片 ${slideIndex} 的文本框 ${j} 内容为:`, slideText);
                                    shape.TextFrame.TextRange.Text = slideText;
                                }
                            }

麻烦了!!!

我有两个问题:1. 您这边编辑框(shape)中编辑文本这边生效了吗? 编辑框中是否有对应的问题? 2. 你说的ppt页同步逻辑是在哪儿呢?

生效了,因为我开始先做了一个取出所有PPT文本中的动作,并把每个框和这个一页PPT做对应,我全部都取好了,也是对应的,我点击框的时候 就能跳到相应的PPT页面。2、同步的逻辑就是,因为我前面已经找好了对应的页面和文本,所以我这边编辑文本的是时候对应页的文本对应同步,我现在只是做到一个方向,我在PPT编辑的时候,框里面对应的文本同步编辑,但反过来就不行。