Foxtable(狐表)用户栏目专家坐堂 → word转照片


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

主题:word转照片

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
word转照片  发帖心情 Post By:2021/3/12 10:07:00 [显示全部帖子]

蓝总: 因为将word转MHTML格式,还不是非常好,存在部分格式丢失,例如划线类 表格式 容易错位 ,影响阅读,如果将word直接转jpg,该如何?
您以前写的代码 ,是将word分页转成照片,用webbrowser打开有问题,能不能合成一张照片 再打开呢?
Dim tmp As String  =  projectpath & "RemoteFiles\" & wjm  '''下载的文件路径
            Dim mht As String =  projectpath & "RemoteFiles\" & wjm & ".jpg"   ''''转换为MHTML格式的文件路径                    
            Dim app As New MSWord.Application
            try
                Dim doc = app.Documents.Open(projectpath & "RemoteFiles\" & wjm)
                Dim allpage = doc.ComputeStatistics(msWord.WdStatistic.wdStatisticPages)
                For objPage As Integer = 1 To allpage
                    Dim objWhat = msWord.WdGoToItem.wdGoToPage
                    Dim objWhich = MsWord.WdGoToDirection.wdGoToAbsolute
                    Dim range1 = Doc.GoTo(objWhat, objWhich, objPage)
                    Dim range2 = range1.GoToNext(MsWord.WdGoToItem.wdGoToPage)
                    Dim bjStart = range1.Start
                    Dim objEnd = range2.Start
                    If range1.Start = range2.Start Then objEnd = Doc.Characters.Count
                    'msgbox(objpage)
                    Doc.Range(bjStart, objEnd).Select
                    
                    app.ActiveWindow.Selection.copy
                    app.ActiveWindow.Selection.PasteSpecial(Link:=False, DataType:=9, _
                    Placement:=0, DisplayAsIcon:=False)
                Next
                Dim i As Integer = 1
                For Each shape As object In doc.InlineShapes
                    shape.Range.copy
                    If ClipBoard.GetImage IsNot Nothing Then
                        ClipBoard.GetImage.save(projectpath & "RemoteFiles\" & wjm & i & ".jpg")
                    End If
                    i += 1
                Next
                Doc.saved = True
                'app.visible = True
                
                
                app.visible = True
            catch ex As exception
                msgbox(ex.message)
                app.Quit
            finally
                'app.Quit
   
            End try
e.Form.Controls("WebBrowser1").Address = (mht)                         


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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/12 11:21:00 [显示全部帖子]

蓝大人:辛苦一下,我没调用这方面的经验,能不能辛苦下做个例子?我相信对所有用户而言也是一种福利,谢谢!

将 Word 保存为图片格式

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:将 word 保存为图片格式.txt



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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/12 13:04:00 [显示全部帖子]

找到一个免费版的,提取了dll,上传不了附件
图片点击可在新窗口打开查看

Dim doc As Document = New Document
            doc.LoadFromFile(tmp)
            '保存为Png格式的图片
            Dim images() As Image = doc.SaveToImages(Spire.Doc.Documents.ImageType.Metafile)
            Dim i As Integer = 0
            Do While (i < images.Length)
                Dim outputfile As String = String.Format("image-{0}.png", i)
                images(i).Save(outputfile, System.Drawing.Imaging.ImageFormat.Png)
                i = (i + 1)
            Loop

报错, 没有Document这个类型
图片点击可在新窗口打开查看

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/12 14:43:00 [显示全部帖子]


If ftp1.Download(fp,projectpath & "RemoteFiles\" & wjm) = True Then
        If hz = "doc" Or hz =  "docx" Then
            Dim tmp As String  =  projectpath & "RemoteFiles\" & wjm  '''下载的文件路径
            Dim mht As String =  projectpath & "RemoteFiles\" & wjm & ".mhtml"   ''''转换为MHTML格式的文件路径

   Dim doc As New Spire.Doc.Document
            doc.LoadFromFile(tmp)
            '保存为Png格式的图片
            Dim images() As Image = doc.SaveToImages(Spire.Doc.Documents.ImageType.Metafile)
            Dim i As Integer = 0
            Do While (i < images.Length)
                Dim outputfile As String = String.Format("image-{0}.png", i)
                images(i).Save(outputfile, System.Drawing.Imaging.ImageFormat.Png)
                i = (i + 1)
            Loop
            ''''===============================打开word
蓝总:转化成功了,品质挺高,就是也是一页页的转化,image-0 ,image-1,image-2,而且免费版只能转化4页, 怎么利用webbroser一页页的打开? 还是合成一张整图


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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/13 10:10:00 [显示全部帖子]

蓝总: 免费版有限制,我在网上找了一个没有限制的dll ,
代码如下 :
Document doc = new Document("f:\\333.doc");
ImageSaveOptions iso = new ImageSaveOptions(SaveFormat.Jpeg);
iso.Resolution = 128;
iso.PrettyFormat = true;
iso.UseAntiAliasing = true;
 for (int i = 0; i < doc.PageCount; i++)
{
      iso.PageIndex = i;
      doc.Save("D:/test/test" + i + ".jpg", iso);
}

转化代码:
 Dim doc As New Aspose.Words.Document(tmp)
            Dim Iso As New Aspose.Words.Saving.ImageSaveOptions(SaveFormat.Jpeg)
         
            iso.Resolution = 128
            iso.PrettyFormat = True
            iso.UseAntiAliasing = True
            For (int i = 0; i < doc.PageCount; i++)
                {
                iso.PageIndex = i
                doc.Save("D:/test" + i + ".jpg", iso)
                }
报错

fox代码要怎么写?1楼代码可以生成jpg,但是生成的jpg照片不知道用webbroser为什么打不开?
[此贴子已经被作者于2021/3/13 10:23:36编辑过]

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/13 10:44:00 [显示全部帖子]

不行,不报错但是也 不转成照片。

     try
                Dim doc = app.Documents.Open(tmp)
                Dim allpage = doc.ComputeStatistics(msWord.WdStatistic.wdStatisticPages)
                For objPage As Integer = 1 To allpage
                    Dim objWhat = msWord.WdGoToItem.wdGoToPage
                    Dim objWhich = MsWord.WdGoToDirection.wdGoToAbsolute
                    Dim range1 = Doc.GoTo(objWhat, objWhich, objPage)
                    Dim range2 = range1.GoToNext(MsWord.WdGoToItem.wdGoToPage)
                    Dim bjStart = range1.Start
                    Dim objEnd = range2.Start
                    If range1.Start = range2.Start Then objEnd = Doc.Characters.Count
                    'msgbox(objpage)
                    Doc.Range(bjStart, objEnd).Select
                    
                    app.ActiveWindow.Selection.copy
                    app.ActiveWindow.Selection.PasteSpecial(Link:=False, DataType:=9, _
                    Placement:=0, DisplayAsIcon:=False)
                Next
                Dim i As Integer = 1
                For Each shape As object In doc.InlineShapes
                    shape.Range.copy
                    If ClipBoard.GetImage IsNot Nothing Then
                        ClipBoard.GetImage.save( projectpath & "RemoteFiles\"  & i & ".jpg")
                    End If
                    i += 1
                Next
                'Doc.saved = True
                'app.visible = True
                
                
                app.visible = True
                catch ex As exception
                msgbox(ex.message)
                app.Quit
            finally
                ''app.Quit
            End try
            vars("p") = 1
            Dim s As String = projectpath & "RemoteFiles\" & vars("p") & ".jpg "
            e.Form.Controls("WebBrowser1").Address = s
这是甜老师以前写的,可以生成照片,默认调动本地office 打开照片,我用webbroser打不开jpg,为什么?加了强制?
[此贴子已经被作者于2021/3/13 10:43:49编辑过]

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/13 11:54:00 [显示全部帖子]

用上面代码能生成的.jpg,但是好像有问题,电脑能打开,就是webbroser打不开,打开如下:
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看

上面保存代码 有问题。我把5.jpg 复制到桌面 ,再手写路径 都打不开 


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

这个5.jpg我上传到附件了,不知该您能否下



[此贴子已经被作者于2021/3/13 12:02:29编辑过]

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/13 19:51:00 [显示全部帖子]

蓝总:论坛以前的word转照片代码 有点问题,转的照片有缺陷,我已经测试出来了。spire.doc只能转3页且不带水印。
dll文件我放出来,
https://pan.baidu.com/s/1vcTGE9CTQM-nuOKd_jnGFA   
提取码:uj9x

调用代码在前面,要求不高的,可以直接用!!!







[此贴子已经被作者于2021/3/14 1:51:41编辑过]

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/14 20:46:00 [显示全部帖子]

蓝总:spire.doc和spire.pdf以及spire.xls,这个三个版本里每个版本都有Spire.License.dll 和Spire.pdf.dll ,如果分别调用这个三个版本怎么办?dll会重合覆盖

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/3/14 21:38:00 [显示全部帖子]

网上下的版本,版本号不一样,哈,找的绿色版,麻烦了,调用每一种dll都会同时调用每个本中的其他两个dll,名称有重合?怎么复制到foxtable目录

 回到顶部
总数 11 1 2 下一页