(100分求救高手对抗微软)把word中存储的图像读出来(注: 不要用组件)

likowang 2005-08-26 08:21:11
我要把word中存储的图像读出来,目前还不知道该怎么做,应为我不知道word是怎么存储
图片的,它的位置在什么地方?所以求救高手?


注:生活在微软的年代很无奈!!!!!!!!!!!但我用的全都是微软的东西!!!!!!!!
...全文
321 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsjjms 2005-09-05
  • 打赏
  • 举报
回复
无耐,帮你up
likowang 2005-08-29
  • 打赏
  • 举报
回复
是呀,word里的任何图片格式都要读出来.
不是狂,是个项目,不做不行,大家帮忙啦.
我啃 2005-08-29
  • 打赏
  • 举报
回复
……原来是项目,哪个叫你做的,一定是个狂…………
我啃 2005-08-28
  • 打赏
  • 举报
回复
又是一个狂人,我一时也想不出什么好办法,只有解析WORD的文件结构,哎,如果没有出神入画的内力建议放弃,等你用的都是linux,gcc,firefox,了解了firefox的制作方法后再尝试吧~
snowbirdfly 2005-08-28
  • 打赏
  • 举报
回复
没作过~~
对了~
是不是word里面的任何图片格式都要读取啊??
jixingzhong 2005-08-28
  • 打赏
  • 举报
回复
生活在微软的年代很无奈!!!!!!!!!!!但我用的全都是微软的东西!!!!!!!!
------------------------------------------------------------------
顶之 !!

这个问题很有深度啊! 楼主你怎么有兴趣搞这个问题? 项目 ?

还是先看看基本的文件结构把,我对这个也没有什么研究 ...
qxiaogang 2005-08-26
  • 打赏
  • 举报
回复
http://www.wotsit.org/
可以找到好多格式文档
qxiaogang 2005-08-26
  • 打赏
  • 举报
回复
UP
teli_eurydice 2005-08-26
  • 打赏
  • 举报
回复
帮你up
pyrophile 2005-08-26
  • 打赏
  • 举报
回复
1.1Word文件结构
一个Word文件至少包括主流(Main stream)和表流(Table stream)两个流。其实这两个流就涵盖了Word中的大部分数据。主流中包括了所有文字,标格以及他们的属性。表流中含有样式,字体信息等。我们的工作主要关心Word文件中的文本内容,而文本的字体信息,样式等相对并不重要。因此,将主要关注主流(Main stream)所包含的主要内容和存储格式。
以下是一些关于文件格式的一些术语:
页(Page):Word文件主流中开始于512字节边界的长度为512字节的文本段(字节0-511为0页,字节512-1023为1页,等)。在Word文件的数据结构中用两子介无符号整形PN(Page Number)来表示页码。
字符位置CP (Character Position):四字节整数表示文件中字符在文本流中的逻辑坐标。
文件字符位置FC( File Character position):四字节整数表示从文件开始处计算的字符位置。CP可以转化为FC,字符的FC=文本流开始处的FC+字符的CP。
文件头FIB (File Information Block):位于Word文件的开始,记录了文本流的开始位置(FIB.fcMin),文本流的长度和文件状态等信息。
段(Paragraph):文本流中由段标记,标格标记,行标记分隔的连续的字符序列。
段属性PAP (PAragraph Properties):此数据结构描述了某一特定段的属性。
段属性偏移PAPX (PAragraph Property EXception):此数据结构描述了某一特定段的属性与标准段属性相比的偏移。通过段属性偏移和标准段属性可以计算具体段的段属性。(本课题中主要关心段是否是表格和标题等属性)。
格式化磁盘存储页FKP (Formatted disK Page):512字节的数据结构(占据一页),存储了Word文件中某部分段或字符的属性(本课题只关心段属性,以下只就段格式化磁盘存储页PFKP讨论),包含四部分:
1)此页所描述的段的数量。
2)存储FC的数组,按FC的升序排列,相邻的FC表示段的开始和结尾。
在PFKP中, 数据结构BX数组,BX[]中包含段的一般属性和对应段的PAPX位置---相应于该页起始位置的字偏移量(Word Offset)。段属性偏移量。

Word文件整体结构复杂,有大量修饰性信息,下面主要列出了与读取文件中文本内容有关的数据存储格式(注:Word文件存储的前512字节不计算在内)。
主流;
开始FC=0,PN=0
内容起始FC长度
文件头FIB0<1024
文本(包括表格文字)FIB.fcMinFIB.ccpText
其余文本内容FIB.fcMin+FIB.ccpText结束于FIB.fcMac
格式化磁盘存储页FIB.pnPapFirst随文件长度变化
表4-1:Word文件格式各个段落

文件头FIB:
内容起始FC长度
文本流开始Fcmin244
文本流结束Fcmac284
主文本长度CcpText764
脚注长度CcpFtn804
子文档头长度CcpHdd844
注释文本长度 CcpAtn924
文本框文本长度CcpTxbx1004
第一个PAPX FKP的页码数1244
所有PAPX FKP的个数1284

表4-2:Word文件头部格式
文本流:
开始于FIB.fcMin,一般开始于FIB结束后的128的整数倍FC处。
1) Word文件中的文本流采用ASCII和Unicode编码混合存储,其中纯英文文档采用ASCII编码存储,纯中文文档采用Unicode编码混合存储。而中英文混合文档中按照如下规则编码存储:
以页(512字节)为单位,即每一页的编码方式相同。
所有中文部分采用Unicode编码。
英文优先采用ASCII编码,当与中文在同一页时采用Unicode编码。
从页起始位置开始连续大于256字节英文序列采用ASCII编码,不足一页部分用0填补。
混合编码虽然给文本读取带来很大的麻烦,但既发挥了Unicode编码的好处,又节省了存储空间。
2) 以下是住文本流中的一些特殊符号:
符号ASCII编码Unicode编码
段结尾(Paragraph End)1313 00
行分隔(Hard Line Break)1111 00
分隔连接符(Break Hyphen)4545 00
空白符(Space)3232 00
制表符(Tab)0909 00
页分隔(Page Break)1212 00
单元格标记(Cell Mark)0707 00
表格行结束标记(Table End Mark)0707 00
表4-3:Word文件格式中的特殊符号
3)文本流中存储了Word文件中所有的文本内容,包括主文本内容,脚注,尾注,文本框内文本等。下表是计算相应内容存储位置的算法:
内容计算方法
主文本内容Fib.fcMin
脚注(Footnote)Fib.fcMin+Fib.ccpText(注)
子文档头部
(Header of Subdocument)Fib.fcMin+Fib.ccpText+Fib.ccpFtn
注释子文档
(Annotation Subdocument)Fib.fcMin+Fib.ccpText+Fib.ccpFtn+Fib.ccpHdr
尾注(Endnote)Fib.fcMin+Fib.ccpText
+Fib.ccpFtn+Fib.ccpHdr+Fib.ccpAtn
文本框文本(Textbox)Fib.fcMin+Fib.ccpText
+Fib.ccpFtn+Fib.ccpHdr+Fib.ccpAtn+Fib.ccpEdn
文本框头部(header of Textbox)Fib.fcMin+Fib.ccpText+Fib.ccpFtn+
Fib.ccpHdr+Fib.ccpAtn+Fib.ccpEdn+Fib.ccpTxbx
表4-4:Word文件格式中各个段落的起始位置
注:Fib.ccpText表示字的个数,实际应用时应该计算出字节数。
段格式化磁盘存储页(PAPX FKP):
开始位置:Fib.pnPapFirst,与其他FKP交叉轮流存储。
PAPX FKP的存储格式
位置内容说明
0FC数组段的起始和终结位置,共有crun+1个
4*(fkp.crun+1)BX数组BX[0]为对应段的PAPX存储位置(偏移)
511-sizeof(grppapx)PAPX组段的属性偏移
511段个数(crun)此FKP中所描述的段的个数
表4-5:Word文件段存储页格式

word当中存储文件的格式,按这个可以读取word文件文本,不知道这个对你有帮助么?

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧