Foxtable(狐表)用户栏目专家坐堂 → Word文件文字翻译问题


  共有3300人关注过本帖树形打印复制链接

主题:Word文件文字翻译问题

帅哥哟,离线,有人找我吗?
azlm100
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:18 积分:289 威望:0 精华:0 注册:2019/8/7 15:51:00
Word文件文字翻译问题  发帖心情 Post By:2023/7/28 16:53:00 [显示全部帖子]

老师们

做了一个文字翻译跟文档翻译的应用。

是调用百度翻译的API来进行翻译的。

关于文档翻译,目前已经做好了Excel的翻译功能。但是在Word的翻译上一直出问题。

各位老师能否帮忙看下 。

我使用过for each 文档的所有段落。然后每个段落拿去API上翻译回来替换上去。但是他翻译回来的内容会全部合并到一个段落去了。

如果有空白的段落还会报错。

 If path.Contains(".doc") Then
        Dim app As New MSWord.Application
        Try
            Dim doc = app.Documents.Open(path)
            Dim SenCount As Integer = Doc.Sentences.Count '取得所选内容的句子数
            Dim K As Integer
            For k = 1 To sencount
                Dim strs As String  = doc.paragraphs(k).range.text
                If strs.Length > 1 Then
                    doc.paragraphs(k).range.text =   Functions.Execute("translation_language",strs,s,r)
                End If
                strs = ""
            Next
            rpath  = "c:\reports\test.doc"
            Doc.Save(rpath)
            Doc.Close
            app.Quit
        Catch ex As exception
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:翻译.foxdb

            msgbox(ex.message)
        Finally
        End Try
    End If

具体了可以查看附件



 回到顶部
帅哥哟,离线,有人找我吗?
azlm100
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:18 积分:289 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2023/7/31 8:16:00 [显示全部帖子]

  For Each k As Object In Doc.Paragraphs
         Dim strs As String  = k.range.text
         If strs.Length > 1 Then
             k.range.text =   Functions.Execute("translation_language",strs,s,r)
                End If
                strs = ""
            Next

我试过遍历段落。例如有4段文字,他返回的结果会把4段文字合并成了一段。
例如遍历第一段文字,正常的。
遍历第二段文字的时候会变成   第一段 & 第二段文字。最后就全部变成了一段。
所以我才试下循环句子,循环句子就不会这种情况了。但是空白的段落就会报错。




 回到顶部
帅哥哟,离线,有人找我吗?
azlm100
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:18 积分:289 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2023/7/31 10:17:00 [显示全部帖子]

非常感谢老师。

这个帮助完美的帮我解决了段落替换。

现在测试中又发现一个问题,就是Wrod里出现了单元格之类的非文字段落就会报错。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip



 回到顶部
帅哥哟,离线,有人找我吗?
azlm100
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:18 积分:289 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2023/8/1 14:18:00 [显示全部帖子]

老师找到方法了。

因为翻译只需要获取到文字,然后拿文字去翻译回来再覆盖。
所以不需要试用段落。
使用  content = doc.content.text
这句可以获取Word的全部文档内容。
然后再拆分成数组,循环数组去翻译。再使用查找替换。

现在还有一个小问题了,就是拿文字去翻译,需要去掉前后空格,但是翻译完成后替换也没有了前后空格,这样位置就不对了。
还要再查查

 回到顶部