| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1801 人关注过本帖
标题:请问:将WORD某一页保存为图片怎么写
只看楼主 加入收藏
liunis
Rank: 1
等 级:新手上路
帖 子:139
专家分:7
注 册:2021-9-25
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:26 
请问:将WORD某一页保存为图片怎么写
将WORD某一页保存为图片怎么写,比如一共有10页,将第3页存为图片
不要用PDF打印机
搜索更多相关主题的帖子: 保存为 WORD 打印机 图片 PDF 
2023-03-28 12:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10566
专家分:43011
注 册:2014-5-20
收藏
得分:0 
不好猜想
给个测试文件,说明要将哪一页存为什么格式图片。
2023-03-28 15:59
liunis
Rank: 1
等 级:新手上路
帖 子:139
专家分:7
注 册:2021-9-25
收藏
得分:0 
111.rar (13.57 KB)
2023-03-28 16:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10566
专家分:43011
注 册:2014-5-20
收藏(1)
得分:10 
程序代码:
*
* WORD选择页另存为图片
*
DECLARE long OpenClipboard    IN user32 long
DECLARE long CloseClipboard   IN user32 
DECLARE long EmptyClipboard   IN User32
DECLARE long GetClipboardData IN user32 long

DECLARE long GdiplusStartup              IN gdiplus long@,string@,long
DECLARE long GdiplusShutdown             IN gdiplus long
DECLARE long GdipCreateBitmapFromHBITMAP IN gdiplus long,long,long@
DECLARE long GdipDisposeImage            IN gdiplus long
DECLARE long GdipSaveImageToFile         IN gdiplus long,string,string,long

cPath   = "d:\temp\test\111\"
inFile  = cPath + "111.doc"
outFile = cPath + "111.png"

stGSI = 0h01000000000000000000000000000000
pGDI  = 0
GdiplusStartup(@pGDI, @stGSI, 0)

wd  = CREATEOBJECT("Word.Application")
doc = wd.Documents.Open(inFile)

nPage = 2    && 选择的页号

rng = doc.GoTo(1, 1, nPage)                          && 页开始位置
rng.Select
rng.SetRange(rng.Start, rng.Bookmarks("\page").End)  && 整个页面区域
rng.Copy    &&CopyAsPicture 
wd.Documents.Close
        
wd.Documents.Add
wd.Selection.PasteSpecial(0, .f., 0, .f., 0, "", "")
wd.ActiveDocument.InlineShapes(1).Range.CopyAsPicture

ClipBitmapToFile(outFile)

wd.ActiveDocument.Saved = .t.
wd.Documents.Close
ClearClipboard()
wd.Quit
GdiplusShutdown(pGDI)
CLEAR ALL 
RETURN

FUNCTION ClearClipboard()
    OpenClipboard(0)
    EmptyClipboard()
    CloseClipboard()
ENDFUNC

FUNCTION ClipBitmapToFile(cOutFile)
    IF OpenClipboard(0) == 0
        RETURN .f.
    ENDIF
    LOCAL hClip
    hClip = GetClipboardData(2)
    IF hClip == 0
        CloseClipboard()
        RETURN .f.
    ENDIF
    LOCAL pngGUID, hBitmap
    pngGUID = 0h06F47C55041AD3119A730000F81EF32E
    hBitmap = 0
    GdipCreateBitmapFromHBITMAP(hClip, 2, @hBitmap)
    GdipSaveImageToFile(hBitmap, STRCONV(cOutFile+0h00,5), pngGUID, 0)
    GdipDisposeImage(hBitmap)
    CloseClipboard()
    RETURN .t.
ENDFUNC
2023-03-28 22:41
seasoners
Rank: 1
等 级:新手上路
帖 子:41
专家分:9
注 册:2013-12-15
收藏
得分:0 
版主您好,请问把一个50页的WORD文档拆分成50个单页的WORD文档如何实现?请在百忙中把主要源代码提示一下
2023-03-29 05:33
pvm2000
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:179
专家分:312
注 册:2022-12-22
收藏
得分:0 
回复 4楼 吹水佬
多谢分享
2023-03-29 06:14
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1586
专家分:3094
注 册:2012-2-29
收藏
得分:0 
回复 4楼 吹水佬
谢谢!
2023-03-29 07:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10566
专家分:43011
注 册:2014-5-20
收藏
得分:0 
以下是引用seasoners在2023-3-29 05:33:53的发言:

版主您好,请问把一个50页的WORD文档拆分成50个单页的WORD文档如何实现?请在百忙中把主要源代码提示一下

原理与另存图片差不多,相对简单点。
程序代码:
*
* WORD分页另存
*
cPath   = "d:\temp\test\111\"
inFile  = cPath + "111.doc"

wd  = CREATEOBJECT("Word.Application")
doc = wd.Documents.Open(inFile)

FOR nPage=1 TO doc.Range.Information(4)
    rng = doc.GoTo(1, 1, nPage)                          && 页开始位置
    rng.Select
    rng.SetRange(rng.Start, rng.Bookmarks("\page").End)  && 整个页面区域
    rng.Copy
    outFile = cPath + "page" + PADL(nPage,4,"0") + ".doc"
    tmpDoc = wd.Documents.Add
    tmpDoc.Application.Selection.Paste
    tmpDoc.SaveAs(outFile)
    tmpDoc.Close
ENDFOR

wd.Documents.Close
wd.Quit
CLEAR ALL 
RETURN
2023-03-29 08:37
seasoners
Rank: 1
等 级:新手上路
帖 子:41
专家分:9
注 册:2013-12-15
收藏
得分:0 
谢谢版主,另外有个问题,另存的图片和打开的原文内容(主要是页面中的文字显示位置)有些不一样,特别是一页的尾部如果不是一个完整段落,重新排格式了
2023-03-29 08:47
seasoners
Rank: 1
等 级:新手上路
帖 子:41
专家分:9
注 册:2013-12-15
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2023-03-29 08:48
快速回复:请问:将WORD某一页保存为图片怎么写
数据加载中...
 
   



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

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