C#互操作单词,剪切和过去在Office 2016上有效,但不适用于Office 2019

Coskun Ozogul

我发现了类似的问题,但并不完全相同。

我有一个字模板,可以用用户输入的文字填充。

在用户界面上,有一个文本字段和两个签名字段(一个生成图像文件的第三方组件)。

如果文本不是很长,则会传递单词的两个版本。但是,如果文本很长并且有很多输入内容,那么它将无法在Office 2019和Office 365上运行。在Office 2016上,它将始终运行。

为了更好地解释,

我打开文件:

        Microsoft.Office.Interop.Word.Application app = null;
        Microsoft.Office.Interop.Word.Document doc = null;

        ...

        app = new Microsoft.Office.Interop.Word.Application();
        doc = app.Documents.Open(tempPath);
        app.Visible = false;

        doc.Bookmarks["comment"].Select();
        app.Selection.TypeText(orderComment); //Order comment is typed by the user

        ...

        //this code saves the signature as a png image and it works in any case. The image exists in the folder before calling the rest of the code.
        string clientSignaturePath = System.Configuration.ConfigurationManager.AppSettings["TempPath"] + Guid.NewGuid().ToString().Substring(0, 6) + ".png";
        using (FileStream fs = new FileStream(clientSignaturePath, FileMode.Create))
         {
           using (BinaryWriter bw = new BinaryWriter(fs))
           {
             byte[] data = Convert.FromBase64String(model.ClientSignature);
             bw.Write(data);
             bw.Close();
           }
             fs.Close();
          }




          //If the orderComment is too long, it gives this error in this method when I call the line rng.Paste(); on Office 2019 and 365 but not on 2016.
          error : this method or property is not available because the clipboard is empty or invalid
          
          UserMethods.InsertImage(doc, clientSignaturePath, "client", 79, 175);

在类UserMethods中:

  public static void InsertImage(Microsoft.Office.Interop.Word.Document doc, string imagePath, string type, float? imageHeight = null, float? imageWidth = null)
    {
        Range rng = null;
        if (type == "tech")
            rng = doc.Tables[7].Cell(1, 1).Range;
        else if (type == "client")
            rng = doc.Tables[7].Cell(1, 2).Range;
        else
            rng = doc.Tables[7].Cell(1, 3).Range;


        Microsoft.Office.Interop.Word.InlineShape autoScaledInlineShape = rng.InlineShapes.AddPicture(imagePath);
        float scaledWidth = imageWidth ?? autoScaledInlineShape.Width;
        float scaledHeight = imageHeight ?? autoScaledInlineShape.Height;
        autoScaledInlineShape.Delete();

        // Create a new Shape and fill it with the picture
        Microsoft.Office.Interop.Word.Shape newShape = doc.Shapes.AddShape(1, 0, 0, scaledWidth, scaledHeight);
        newShape.Fill.UserPicture(imagePath);

        // Convert the Shape to an InlineShape and optional disable Border
        Microsoft.Office.Interop.Word.InlineShape finalInlineShape = newShape.ConvertToInlineShape();
        //finalInlineShape.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;

        // Cut the range of the InlineShape to clipboard
        finalInlineShape.Range.Cut();

        // And paste it to the target Range
        rng.Paste();

    }

我的Office版本无论如何都可以使用: 在此处输入图片说明

服务器的(Windows Server 2016)正式版本在大文本情况下不起作用: 在此处输入图片说明

提前致谢。

甲氨met呤

Cut方法可能会导致与剪贴板访问相关的安全性问题

尝试

rng.FormattedText = finalInlineShape.Range.FormattedText;
finalInlineShape.Delete();

和评论;

//finalInlineShape.Range.Cut();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果使用 open() 和 reader() 打开文件,则相同的 for 循环有效,但不适用于 Pandas 数据帧

来自分类Dev

编辑并继续不适用于VS 2019(C#)的asp.net core 3.0

来自分类Dev

Python PIL JPEG支持在Heroku上有效,但不适用于本地

来自分类Dev

命令在终端上有效,但不适用于Kotlin

来自分类Dev

WinHttpRequest“发送”正在使用Office 2007产品,但不适用于2013

来自分类Dev

剪切路径svg适用于图片,但不适用于div

来自分类Dev

单击切换适用于 Chrome 和 Safari 但不适用于 Firefox?

来自分类Dev

Office.EventType.DocumentSelectionChanged(在Excel中)不适用于所有Web浏览器

来自分类Dev

如何将Office 2016更新到Office 2019?

来自分类Dev

查询适用于sql studio,但不适用于C#

来自分类Dev

属性板不适用于Mac的Visual Studio 2019

来自分类Dev

TFS插件不适用于Eclipse 2019-09

来自分类Dev

Java Mail委托访问不适用于Office 365

来自分类Dev

Java Mail委托访问不适用于Office 365

来自分类Dev

适用于Play Framework 2.4的Play Mailer插件不适用于Outlook Office 365

来自分类Dev

适用于Play Framework 2.4的Play Mailer插件不适用于Outlook Office 365

来自分类Dev

jQuery touch Punch适用于Chrome和Firefox,但不适用于IE

来自分类Dev

Fullcalendar和Bootstrap:回调适用于.modal(),但不适用于.dropdown('toggle')

来自分类Dev

jQuery touch Punch适用于Chrome和Firefox,但不适用于IE

来自分类Dev

jQuery验证适用于类,但不适用于规则和消息

来自分类Dev

JS适用于Firefox和Safari,但不适用于Chrome。这是我的网站

来自分类Dev

适用于chrome,但不适用于Firefox,Eventlistener,appendChild和style.backgroundColor

来自分类Dev

Fullcalendar和Bootstrap:回调适用于.modal(),但不适用于.dropdown('toggle')

来自分类Dev

程序适用于 Ubuntu 17.04 和 17.10,但不适用于 Ubuntu 18.04

来自分类Dev

Telnet 适用于 AWS URL 和 localhost 但不适用于 IP

来自分类Dev

C++ 模板代码适用于 msvc 2015 但不适用于 2017

来自分类Dev

适用于Python的足够MUD样式和有效文本解析器的示例

来自分类Dev

Groupby 和 cumcount 仅适用于有效行

来自分类Dev

语言重定向在台式机上有效,但不适用于移动浏览器

Related 相关文章

  1. 1

    如果使用 open() 和 reader() 打开文件,则相同的 for 循环有效,但不适用于 Pandas 数据帧

  2. 2

    编辑并继续不适用于VS 2019(C#)的asp.net core 3.0

  3. 3

    Python PIL JPEG支持在Heroku上有效,但不适用于本地

  4. 4

    命令在终端上有效,但不适用于Kotlin

  5. 5

    WinHttpRequest“发送”正在使用Office 2007产品,但不适用于2013

  6. 6

    剪切路径svg适用于图片,但不适用于div

  7. 7

    单击切换适用于 Chrome 和 Safari 但不适用于 Firefox?

  8. 8

    Office.EventType.DocumentSelectionChanged(在Excel中)不适用于所有Web浏览器

  9. 9

    如何将Office 2016更新到Office 2019?

  10. 10

    查询适用于sql studio,但不适用于C#

  11. 11

    属性板不适用于Mac的Visual Studio 2019

  12. 12

    TFS插件不适用于Eclipse 2019-09

  13. 13

    Java Mail委托访问不适用于Office 365

  14. 14

    Java Mail委托访问不适用于Office 365

  15. 15

    适用于Play Framework 2.4的Play Mailer插件不适用于Outlook Office 365

  16. 16

    适用于Play Framework 2.4的Play Mailer插件不适用于Outlook Office 365

  17. 17

    jQuery touch Punch适用于Chrome和Firefox,但不适用于IE

  18. 18

    Fullcalendar和Bootstrap:回调适用于.modal(),但不适用于.dropdown('toggle')

  19. 19

    jQuery touch Punch适用于Chrome和Firefox,但不适用于IE

  20. 20

    jQuery验证适用于类,但不适用于规则和消息

  21. 21

    JS适用于Firefox和Safari,但不适用于Chrome。这是我的网站

  22. 22

    适用于chrome,但不适用于Firefox,Eventlistener,appendChild和style.backgroundColor

  23. 23

    Fullcalendar和Bootstrap:回调适用于.modal(),但不适用于.dropdown('toggle')

  24. 24

    程序适用于 Ubuntu 17.04 和 17.10,但不适用于 Ubuntu 18.04

  25. 25

    Telnet 适用于 AWS URL 和 localhost 但不适用于 IP

  26. 26

    C++ 模板代码适用于 msvc 2015 但不适用于 2017

  27. 27

    适用于Python的足够MUD样式和有效文本解析器的示例

  28. 28

    Groupby 和 cumcount 仅适用于有效行

  29. 29

    语言重定向在台式机上有效,但不适用于移动浏览器

热门标签

归档