| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 16278 人关注过本帖, 2 人收藏
标题:★如何编程将word文档的每一页单独保存为一个doc和jpg文件
取消只看楼主 加入收藏
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
结帖率:100%
收藏(2)
已结贴  问题点数:20 回复次数:13 
★如何编程将word文档的每一页单独保存为一个doc和jpg文件
现在手头有一个word文档,内容是学生的通知书,文档每一页对应一个学生的通知书内容,其中的变动内容(如姓名、成绩、评语等)是用邮件合并功能自动从excel文件中创建的。
现在希望将每一页单独保存为一个word文档和一个jpg文件,文件名为不同的学生姓名——学生姓名来自于一个excel文件,且学生顺序跟在通知书上的页码顺序也是相同的。

请各位大侠指点一下, 如何用vfp编制程序实现上面要求?
(word和excel对应的两个文件参见附件)

sample.rar (61.52 KB)
搜索更多相关主题的帖子: 如何 通知书 老公 excel 
2016-01-17 12:59
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
问题是现在文档本身就是word的,现在只是要拆分为每个人一个文件啊。
2016-01-17 20:58
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 6楼 sdta
没有矛盾,现在是所有人的在一个word文档中,目标是每个人单独保存为一个以他的姓名为文件名的文件。

或者,如何直接用excel自动创建为每人一个独立的word文件也可以。请老大指点。谢谢!
2016-01-17 23:39
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 10楼 wengjl
谢谢回复,打印成纸质的已经没任何问题,现在的问题就是要制作电子的,每人一张,对应内容就是word文档中每一页为一个文件。制作报表的时候怎样设置才能每个人单独创建一个文件(doc或者jpg甚至pdf都可以)?反正是电子的,在电脑上都能看。
2016-01-18 23:26
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 13楼 厨师王德榜
用vba控制,如何实现一页变成一个文件?不在乎转换方法, 工具都是为解决问题服务的。甚至于创建的文件都可以不是word格式的,前提是必须每个人一个文件,这才是关键。目前找到了一些折中方法,只是不是编程实现的。

1.安装snagit12.成功后系统中会多出一个snagit的虚拟打印机

2.在word中打印这个文档,打印时选择上面安装的snagit打印机,这样会在snagit中生成很多图片文件(word文档中的每一页对应一个图片文件)。

3.用save as 功能,将这些图片保存为标准jpg格式,在保存时系统会提示保存多页文件,这样就每一个图片文件就会保存为一个JPG文件。任务完成!!

或者:

1.在word中用导出功能,将doc文件发布为PDF文件。

2.用Adobe Acrobat 7.0 Professional打开该PDF文件,它有个“提取页面”功能,最让人高兴的是,这个提取页面功能中包含“提取页面为单独文件”选项。这样一来,就可以将每一页自动创建为一个pdf文件了。

同样,任务解决!

我发出这个话题的本意是,有没有办法编程将word文档中的每一页独立保存为一个文件。如果各位前辈能提供编程要点,本话题可以继续保存,不然为就结贴了。
2016-01-18 23:38
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 18楼 hu9jj
这word文档就是用邮件合并功能做的,只是因为所有学生都在一个文件中,不方便。
因为要发送电子版的,很明显只能一个页面转换成一个文件,然后独立发送相应学生的。
2016-01-18 23:40
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 22楼 沙枣
高手!!很好,的确解决了我的问题。感谢指教。
2016-01-19 10:29
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 22楼 沙枣
这个方法很完美,非常感谢。

顺便提供下之前那文档拆分的解决办法——用VBA在word中直接实现的。已经可以把每一页单独保存了,只是美中不足的是,保存的文件名还不能是学生的姓名,而是“通知书-1.DOC”/“通知书-2.DOC”……这种。

在该文档的thisdocument 模块中写入下面的代码,然后运行它即可。

Sub SaveAsPage()

Dim PageCount As Integer, StartRange As Long, EndRange As Long, MyRange As Range, Fn As String, MyDoc As Document
On Error Resume Next
If Dir("D:\通知书", vbDirectory) <> "" Then                           '判断文件夹是否存在
        MsgBox "文件夹存在", , "提示"            '提示
 Else
     MsgBox "文件夹不存在!在D盘创建一个名为“通知书”的文件夹", , "提示"         '文件夹不存在的提示
     MkDir "D:\通知书"                                            
 End If
 ChangeFileOpenDirectory "D:\通知书"
PageCount = Selection.Information(wdNumberOfPagesInDocument)
Range(0, 0).Select '将光标移至文档起点
For I = 1 To PageCount '设置循环次数
    StartRange = Selection.Start '取得该页的第一个字符位置
    Selection.EndKey Unit:=wdLine '将光标移动到该页首行的最后位置
     Fn = "通知书-" & I&".DOC"
     If I = PageCount Then '如果循环到达最后一页
        EndRange = ActiveDocument.Content.End '将文档最后位置赋值于EndRange
      Else
        Selection.GoToNext (wdGoToPage) '否则,将下一页的起始位置赋值于EndRange(等同于本页的最后位置)
        EndRange = Selection.Start
     End If
    Set MyRange = Range(StartRange, EndRange) '将本页中的内容进行复制
    MyRange.Copy
    Set MyDoc = Documents.Add '新建一空白文档
    MyDoc.Range(0, 0).Paste '在文档开始处粘贴
    MyDoc.SaveAs FileName:=Fn '保存文档名
    MyDoc.Close '关闭文档
Next
End Sub
2016-01-19 20:21
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 25楼 沙枣
用25楼的prg运行到这一句

Wordapp.Selection.paste

时提示错误“成员.Selection不是一个对象。”

 怎么回事?
2016-01-19 21:38
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 39楼 mywisdom88
实际上就是要在通知书文档中插入程序中要用的几个标签,且标签名称要和prg文件中的一致。
2016-01-20 16:30
快速回复:★如何编程将word文档的每一页单独保存为一个doc和jpg文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018679 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved