获得Word.InlinePicture高度和宽度

时间:2016-10-04 15:26:48

标签: office-js officedev

背景
我正在开发一个Office添加使用Word Javascript API在文档中插入一些图表,然后用新数据重绘它们。我在获取内联图片对象的大小方面遇到了一个问题

目前的做法如下:
以指定尺寸创建图像=>换行内容控件=>将图片大小添加到内容控制标记=>在document =>中插入内容控件当刷新获取CC标记时,重绘图像的大小来自该标记=>

我这样做的原因是因为在获取 Word.InlinePicture 对象时,我似乎总是得到宽度高度小于文档中emebbed的图像的布局窗口中显示的值 - 有一些四舍五入发生,但看到~100像素的差异,大约是一英寸,这是相当多的

理想情况下,我希望能够使用与此类似的代码从该对象获取大小:

return Word.run((context: Word.RequestContext): Promise < void > => {

      var contentControls = context.document.contentControls;
      context.load(contentControls, 'tag');

      return context.sync().then(() => {

          let contentControlToRefresh: Word.ContentControl;

          // Find the content control containing imageId
          for (var contentControl of contentControls.items) {
            if (Utils.contains(contentControl.tag, imageId)) {

              // Add control to tracked objects
              context.trackedObjects.add(contentControl);
              contentControlToRefresh = contentControl;
            }
          }

          // Get the image from the content control -- need to get the size
          var pics = contentControlToRefresh.inlinePictures;
          context.load(pics);

          return context.sync().then(() => {
            let pic: Word.InlinePicture = pics.items[0];
            context.trackedObjects.add(pics.items[0]);

            // Set size 					
            let size: Dimensions = {
              height: pic.height,
              width: pic.width
            }; // These two values pic.height and pic.width are slightly smaller than original image

          })
        }
      });

问题
Word.InlinePicture值低于实际布局值
我错过了一些明显的东西,或者这是Word API中的实际错误?

一些笔记

  • 我所有图像的绝对尺寸等于原始尺寸和 以特定分辨率

  • 成功生成图像
  • 在内容控件中拖放图像效果不佳 使用Office js - _inlinePictureID未正确设置

1 个答案:

答案 0 :(得分:0)

谢谢Todor。我认为你的主要问题不是获得图像尺寸,而是更多关于用于宽度和高度的单位。

在Word中使用inlinePictures时要记住的事情(对于VBA,VSTO和Office.js来说这是正确的)宽度和高度单位用点表示(这与UI中显示的单位不同) ,在us-en语言环境中是英寸)。设置和获取值时都是如此。

仅供参考

  • 1英寸= 71.942分。
  • points = pixels * 72/96

希望这有帮助。