MHT?难道我搞错了?是不是HTM啊?
不,没有搞错,的确是MHT。
MHT是MICROSOFT的OFFICE 2003中新增加的一个文件格式,是一种“WED档案文件”。在保存文件的时候选择“单个网页文件”的时候就能创建这种文件了。
下面是一个简单的MHT文件的例子:
MIME-Version: 1.0
Content-Type: multipart/related; boundary="—-=_NextPart_01C60B35.478B46C0"
此文档为“单个文件网页”,也称为“Web 档案”文件。如果您看到此消息,但是您的浏览器或编辑器不支持“Web 档案”文件。请下载支持“Web 档案”的浏览器,如 Microsoft Internet Explorer。
——=_NextPart_01C60B35.478B46C0
Content-Location: file:///C:/2673C891/Doc1.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
<html xmlns:v=3D"urn:schemas-microsoft-com:vml"
xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns=3D"
http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"Doc1.files/filelist.xml">
<link rel=3DEdit-Time-Data href=3D"Doc1.files/editdata.mso">
<!–[if !mso]>
<style>
v:* {behavior:url(#default#VML);}
o:* {behavior:url(#default#VML);}
w:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]–>
<title> </title>
<!–[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>王天信</o:Author>
<o:LastAuthor>王天信</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:TotalTime>2</o:TotalTime>
<o:Created>2005-12-27T14:29:00Z</o:Created>
<o:LastSaved>2005-12-27T14:31:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Characters>1</o:Characters>
<o:Company>梦幻工作室</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>1</o:CharactersWithSpaces>
<o:Version>11.5606</o:Version>
</o:DocumentProperties>
</xml><![endif]–><!–[if gte mso 9]><xml>
<w:WordDocument>
<w:ActiveWritingStyle Lang=3D"ZH-CN" VendorID=3D"64" DLLVersion=3D"131077"
NLCheck=3D"1">1</w:ActiveWritingStyle>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEve=
ry>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]–><!–[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
</w:LatentStyles>
</xml><![endif]–>
<style>
<!–
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:LiSu;
panose-1:2 1 5 9 6 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:STXinwei;
panose-1:2 1 8 0 4 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:1 135200768 16 0 262144 0;}
@font-face
{font-family:KaiTi_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:KaiTi_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:LiSu;
panose-1:2 1 5 9 6 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:STXinwei;
panose-1:2 1 8 0 4 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:1 135200768 16 0 262144 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:6B636587;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:240%;
mso-pagination:lines-together;
page-break-after:avoid;
mso-outline-level:1;
font-size:22.0pt;
font-family:"Times New Roman";
mso-font-kerning:22.0pt;}
h3
{mso-style-next:6B636587;
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:173%;
mso-pagination:lines-together;
page-break-after:avoid;
mso-outline-level:3;
font-size:16.0pt;
font-family:"Times New Roman";
mso-font-kerning:1.0pt;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
border:none;
mso-border-bottom-alt:solid windowtext .75pt;
padding:0cm;
mso-padding-alt:0cm 0cm 1.0pt 0cm;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0cm;
margin-bottom:.0001pt;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.MsoBodyTextFirstIndent, li.MsoBodyTextFirstIndent, div.MsoBodyTextFirstIn=
dent
{mso-style-parent:6B6365876587672C;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
text-indent:21.0pt;
mso-char-indent-count:1.0;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.MsoBodyTextFirstIndent2, li.MsoBodyTextFirstIndent2, div.MsoBodyTextFirst=
Indent2
{mso-style-parent:9875811A;
margin:0cm;
margin-bottom:.0001pt;
text-indent:21.0pt;
mso-char-indent-count:2.0;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.MsoBodyTextIndent3, li.MsoBodyTextIndent3, div.MsoBodyTextIndent3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:21.0pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:6.0pt;
mso-para-margin-left:2.0gd;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:8.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.3, li.3, div.3
{mso-style-name:6B6365879996884C7F298FDB3;
mso-style-update:auto;
mso-style-parent:"6B6365879996884C7F298FDB 2";
margin:0cm;
margin-bottom:.0001pt;
text-indent:18.0pt;
mso-char-indent-count:2.0;
mso-line-height-alt:0pt;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:10.5pt;
mso-bidi-font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.a, li.a, div.a
{mso-style-name:4EBA72694ECB7ECD;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:20.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:0cm;
mso-para-margin-left:4.0gd;
mso-para-margin-bottom:.0001pt;
mso-pagination:none;
tab-stops:right middot 378.0pt;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;}
p.a0, li.a0, div.a0
{mso-style-name:601D8003;
mso-style-update:auto;
mso-style-parent:6B6365879996884C7F298FDB3;
mso-style-next:6B6365879996884C7F298FDB3;
margin:0cm;
margin-bottom:.0001pt;
text-indent:21.0pt;
mso-char-indent-count:2.0;
mso-line-height-alt:0pt;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:LiSu;
mso-fareast-font-family:STXinwei;
mso-hansi-font-family:LiSu;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:1.0pt;}
p.a1, li.a1, div.a1
{mso-style-name:5F158A00;
mso-style-update:auto;
mso-style-next:6B636587;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:none;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:LiSu;
mso-hansi-font-family:"Times New Roman";
mso-bidi-font-family:SimSun;
mso-font-kerning:1.0pt;
font-weight:bold;}
p.A2, li.A2, div.A2
{mso-style-name:68079898A;
mso-style-parent:"68079898 3";
mso-style-next:8BF4660E;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:lines-together;
page-break-after:avoid;
mso-outline-level:3;
font-size:16.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-font-kerning:1.0pt;
font-weight:bold;}
p.a3, li.a3, div.a3
{mso-style-name:8BF4660E;
mso-style-parent:6B6365879996884C7F298FDB3;
margin:0cm;
margin-bottom:.0001pt;
text-indent:18.0pt;
mso-char-indent-count:2.0;
mso-line-height-alt:0pt;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:KaiTi_GB2312;
mso-font-kerning:1.0pt;}
p.a4, li.a4, div.a4
{mso-style-name:516C5F0F;
mso-style-update:auto;
mso-style-parent:6B6365879996884C7F298FDB;
mso-style-next:"6B6365876587672C7F298FDB 3";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-line-height-alt:0pt;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-bidi-font-family:SimSun;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;
mso-footnote-separator:url("Doc1.files/header.htm") fs;
mso-footnote-continuation-separator:url("Doc1.files/header.htm") fcs;
mso-endnote-separator:url("Doc1.files/header.htm") es;
mso-endnote-continuation-separator:url("Doc1.files/header.htm") ecs;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-footer:url("Doc1.files/header.htm") f1;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
–>
</style>
<!–[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:666E901A8868683C;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]–><!–[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"2050"/>
</xml><![endif]–><!–[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1"/>
</o:shapelayout></xml><![endif]–>
</head>
<body lang=3DZH-CN style=3D’tab-interval:21.0pt;text-justify-trim:punctuati=
on’>
<div class=3DSection1 style=3D’layout-grid:15.6pt’>
<p class=3DMsoNormal><span lang=3DEN-US><!–[if gte vml 1]><v:shapetype id=
=3D"_x0000_t75"
coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@=
5l@4@11@9@11@9@5xe"
filled=3D"f" stroked=3D"f">
<v:stroke joinstyle=3D"miter"/>
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
<v:f eqn=3D"sum @0 1 0"/>
<v:f eqn=3D"sum 0 0 @1"/>
<v:f eqn=3D"prod @2 1 2"/>
<v:f eqn=3D"prod @3 21600 pixelWidth"/>
<v:f eqn=3D"prod @3 21600 pixelHeight"/>
<v:f eqn=3D"sum @0 0 1"/>
<v:f eqn=3D"prod @6 1 2"/>
<v:f eqn=3D"prod @7 21600 pixelWidth"/>
<v:f eqn=3D"sum @8 21600 0"/>
<v:f eqn=3D"prod @7 21600 pixelHeight"/>
<v:f eqn=3D"sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
<o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D’wi=
dth:36pt;
height:36pt’>
<v:imagedata src=3D"Doc1.files/image001.gif" o:title=3D"5"/>
</v:shape><![endif]–><![if !vml]><img width=3D48 height=3D48
src=3D"Doc1.files/image001.gif" v:shapes=3D"_x0000_i1025"><![endif]></span>=
</p>
</div>
</body>
</html>
——=_NextPart_01C60B35.478B46C0
Content-Location: file:///C:/2673C891/Doc1.files/image001.gif
Content-Transfer-Encoding: base64
Content-Type: image/gif
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
——=_NextPart_01C60B35.478B46C0
Content-Location: file:///C:/2673C891/Doc1.files/header.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
<html xmlns:v=3D"urn:schemas-microsoft-com:vml"
xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns=3D"
http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link id=3DMain-File rel=3DMain-File href=3D"../Doc1.htm">
<![if IE]>
<base href=3D"file:///C:2673C891Doc1.filesheader.htm"
id=3D"webarch_temp_base_tag">
<![endif]>
</head>
<body lang=3DZH-CN>
<div style=3D’mso-element:footnote-separator’ id=3Dfs>
<p class=3DMsoNormal><span lang=3DEN-US><span style=3D’mso-special-characte=
r:footnote-separator’><![if !supportFootnotes]>
<hr align=3Dleft size=3D1 width=3D"33%">
<![endif]></span></span></p>
</div>
<div style=3D’mso-element:footnote-continuation-separator’ id=3Dfcs>
<p class=3DMsoNormal><span lang=3DEN-US><span style=3D’mso-special-characte=
r:footnote-continuation-separator’><![if !supportFootnotes]>
<hr align=3Dleft size=3D1>
<![endif]></span></span></p>
</div>
<div style=3D’mso-element:endnote-separator’ id=3Des>
<p class=3DMsoNormal><span lang=3DEN-US><span style=3D’mso-special-characte=
r:footnote-separator’><![if !supportFootnotes]>
<hr align=3Dleft size=3D1 width=3D"33%">
<![endif]></span></span></p>
</div>
<div style=3D’mso-element:endnote-continuation-separator’ id=3Decs>
<p class=3DMsoNormal><span lang=3DEN-US><span style=3D’mso-special-characte=
r:footnote-continuation-separator’><![if !supportFootnotes]>
<hr align=3Dleft size=3D1>
<![endif]></span></span></p>
</div>
<div style=3D’mso-element:footer’ id=3Df1>
<p class=3DMsoFooter><span lang=3DEN-US style=3D’mso-bidi-font-size:10.5pt;
mso-font-kerning:0pt’><span style=3D’mso-field-code:" AUTHOR "’><span lang=
=3DEN-US
style=3D’font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman";mso-no-proof:yes’><span lang=3DEN-US>王天=
449;</span></span></span><span
style=3D’mso-tab-count:1′> &=
nbsp; &nbs=
p; &=
nbsp; &nbs=
p; &=
nbsp; &nbs=
p; </span></span><span
style=3D’mso-bidi-font-size:10.5pt;font-family:SimSun;mso-ascii-font-family=
:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-font-kerning:0pt’>第</spa=
n><span
style=3D’mso-bidi-font-size:10.5pt;mso-font-kerning:0pt’> <span lang=3DEN-U=
S><span
style=3D’mso-field-code:" PAGE "’><span style=3D’mso-no-proof:yes’>1</span>=
</span> </span></span><span
style=3D’mso-bidi-font-size:10.5pt;font-family:SimSun;mso-ascii-font-family=
:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-font-kerning:0pt’>页</spa=
n><span
lang=3DEN-US style=3D’mso-bidi-font-size:10.5pt;mso-font-kerning:0pt’><span
style=3D’mso-tab-count:1′> &=
nbsp; &nbs=
p; &=
nbsp; &nbs=
p; &=
nbsp; </span></span><!–[if suppo=
rtFields]><span
lang=3DEN-US style=3D’mso-bidi-font-size:10.5pt;mso-font-kerning:0pt’><span
style=3D’mso-element:field-begin’></span> DATE @ "yyyy-M-d" <span
style=3D’mso-element:field-separator’></span></span><![endif]–><span lang=
=3DEN-US
style=3D’mso-bidi-font-size:10.5pt;mso-font-kerning:0pt’><span style=3D’mso=
-no-proof:
yes’>2005-12-27</span></span><!–[if supportFields]><span lang=3DEN-US
style=3D’mso-bidi-font-size:10.5pt;mso-font-kerning:0pt’><span style=3D’mso=
-element:
field-end’></span></span><![endif]–></p>
</div>
</body>
</html>
——=_NextPart_01C60B35.478B46C0
Content-Location: file:///C:/2673C891/Doc1.files/filelist.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml; charset="utf-8"
<xml xmlns:o=3D"urn:schemas-microsoft-com:office:office">
<o:MainFile HRef=3D"../Doc1.htm"/>
<o:File HRef=3D"image001.gif"/>
<o:File HRef=3D"header.htm"/>
<o:File HRef=3D"filelist.xml"/>
</xml>
——=_NextPart_01C60B35.478B46C0–
上面的文件其实就是在一个DOC文档中插入了一张小图片而已。
和非“单个”的网页文件比较可以发现,MHT是把所有的单独文件都整合到了一个文件中了。
注意一下这个关键字:—-=_NextPart_01C60B35.478B46C0。这个关键字重复出现了6次,而更关键的是这个关键字后面紧跟了许多重要信息。
先看第一次出现:
Content-Type: multipart/related; boundary="—-=_NextPart_01C60B35.478B46C0"
这是一个申明语句,申明了身份为“边界”的字符串,也就是那关键字。从而说明了,这个关键字的作用是文件各个部分的“边界”。
然后,在每个非申明用关键字下都跟了这么几行CODE:
Content-Location: file:///C:/2673C891/Doc1.files/****
Content-Transfer-Encoding: ****
Content-Type: ****
这是各个部分的“说明”部分,用途是说明这个部分的内容的属性和作用。
第一行表示的是“相对位置”。把上述MHT文件用WORD生成为网页(非“筛选过的网页”)的话我们能发现,一个DOC1.HTM伴随着一个DOC1.FILES文件夹,而这个文件夹内的文件分别是:image001.gif、header.htm和filelist.xml。这三个文件的内容分别是插入的图片、DOC的页眉和页脚以及总共的文件列表。同时,我们也注意到,用边界关键字分割开的各个部分的CONTENT-LOCATION中说明的相对位置的文件名也正好是这三个文件。这就表明了一件事:MHT文件是把所有不同的文件“打包”成了一个文件。然后在别人浏览的时候把所有打包的文件都释放出来,成为正常的HTM文件和对应的FILES文件夹来进行浏览和阅读的。事实上,对MHT的主体文件“DOC1.HTM”的分析可以发现,其中插入的图片的代码是:
<!–[if gte vml 1]>
<v:shapetype id=3D"_x0000_t75"
coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@
5l@4@11@9@11@9@5xe"
filled=3D"f" stroked=3D"f">
<v:stroke joinstyle=3D"miter"/>
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
<v:f eqn=3D"sum @0 1 0"/>
<v:f eqn=3D"sum 0 0 @1"/>
<v:f eqn=3D"prod @2 1 2"/>
<v:f eqn=3D"prod @3 21600 pixelWidth"/>
<v:f eqn=3D"prod @3 21600 pixelHeight"/>
<v:f eqn=3D"sum @0 0 1"/>
<v:f eqn=3D"prod @6 1 2"/>
<v:f eqn=3D"prod @7 21600 pixelWidth"/>
<v:f eqn=3D"sum @8 21600 0"/>
<v:f eqn=3D"prod @7 21600 pixelHeight"/>
<v:f eqn=3D"sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
<o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype>
<v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D’width:36pt; height:36pt’>
<v:imagedata src=3D"Doc1.files/image001.gif" o:title=3D"5"/>
</v:shape>
<![endif]–>
<![if !vml]>
<img width=3D48 height=3D48 src=3D"Doc1.files/image001.gif" v:shapes=3D"_x0000_i1025">
<![endif]>
这段代码的第一部分是一个典型的XML风格的语句,不过其实是VML语句。其中的v:shapetype段是对SHAPE的一些参数申明,并且把这个SHAPETYPE命名为“_x0000_t75”(语句为:id=3D"_x0000_t75"),然后在后面的shape中使用。这里需要说明,反复出现的“3D”关键字并没有什么实际作用,包括在通常HTM元件的IMG标签中的“3D”字段也是没有实际作用的。v:shapetype的定义分为v:stroke、v:formulas、v:path、o:lock四部分。stroke部分说明了图形的连接方式(?)为“斜角连接”(?);formulas是SHAPE的一些参数;path是图形边缘(可能)的一些参数,比如是否突出显示(extrusion),是否倾斜(gradient)以及与环境的连接方式(connect);lock是环境容器的属性,比如是否可编辑(ext)、外貌缩放比率(aspectratio)。
v:shape是真正的图形容器,其和shapetype的关系相比不用多说。type属性正是调用了先前申明好的shapetype(对熟悉struction、class等OPP和OOP元素的朋友来说一定感到很亲切的)。其下的imagedata子字段则说明了图象数据的来源:Doc1.files/image001.gif。
当然,所有的这些o和v标签都还仅仅是VML元素,不能直接转为可在BROWSER中观看的HTM元素,所以在后面就用IMG标签调用了这个SHAPE:v:shapes=3D"_x0000_i1025"。
事实上,如果你插入的不是图片而是别的东西,比如表格,比如公式,那么在正文“DOC1.HTM”区中也会有相应的VML元素或者XML元素来申明一些相关的容器,并且在这些容器中呈现出你要的元素,然后用正规的HTM去调用。这是MICROSOFT的MHT的一大特性:HTM和VML、XML等的结合使用。当然了,HTM标准、ASP标准以及VML、XML都是MS的产物,他自然可以如此这般地结合了。
补充说明:VML是一种基于HTTP的虚拟现实技术。在安装了VML解析器的电脑上可以通过BROWSER(最好是IE)来浏览一些基于VML语言的虚拟现实网页,并且具有很高的呈现效果。VML语句的本身其实和AUTOCAD或者FLASH有很大的相似的地方,都是申明一些基本几何部件,然后说明其运动规律和属性等。
整个MHT的这个部分,其实在用WORD生成一般的网页(非“筛选过的网页”)中其实也有了,从上两代OFFICE中便已经诞生了。MHT最独特的还是它的文件打包策略。
事实上,这种文件打包策略和XML策略还不相同。它是独立与XML的。
迹象很明显,如果文件打包策略是基于XML的(比如我去年自己编写的ZML文件标准中的文件打包策略),那么会出现一些XML标记来进行详细的定义和申明,比如在FILELIST.XML部分中一样:
<xml xmlns:o=3D"urn:schemas-microsoft-com:office:office">
<o:MainFile HRef=3D"../Doc1.htm"/>
<o:File HRef=3D"image001.gif"/>
<o:File HRef=3D"header.htm"/>
<o:File HRef=3D"filelist.xml"/>
</xml>
会出现类似的申明代码(打个比方):
<o:files>
<o:author:"LostAbaddon"/>
<o:file id="doc1.htm">
<o:filetype="htm"/>
<o:context>
……
</o:context>
</o:file>
<o:file id="image001.jpg">
<o:filetype="jpg"/>
<o:context>
……
</o:context>
</o:file>
<o:file id="header.htm">
<o:filetype="htm"/>
<o:context>
……
</o:context>
</o:file>
<o:file id="filelist.xml">
<o:filetype="xml"/>
<o:context>
……
</o:context>
</o:file>
</o:files>
这样的结果才是符合XML风格的(虽然我还不清楚XML是否允许嵌套使用)。
现在MHT的风格则更近似于早期的文件合并,或者说是介乎于早期文件合并的格式和XML格式之间。
我自己编写的ZML文件格式标准中则允许ZML属性和元素代码的嵌套使用,这样似的ZML的可读性和整体一致性更好。