我正在向MS Word输出一个HTML文档。它运行良好,文档按预期下载并在Word中打开。然而,我正在进行下一个技巧,我想在文件中包含一个图像。然而,我不知道图像的确切大小,因为它是根据用户上传的内容而变化的。因此,我尝试将图像宽度设置为IMG宽度=100px。。。但这张照片是全尺寸的。我还尝试了IMG style="width:100px"。。。但结果是一样的。我还尝试了IMG style="width:10%"。。。同样的问题。我去了谷歌,但找不到任何有用的东西。我想我会试着联系你们。有人知道在流式传输到MS Word文档时设置图像的宽度吗?
作为一个测试,我还获取了发送到word的html字符串的输出,并将其放在notpad中,将其保存为htm文件,然后查看。它的格式正确,图像大小正确。所以这似乎是单词处理图像大小的具体方式,也许吧?
编辑:请注意,在下面的例子中,我只显示了相关的HTML。。。但是实际发送的HTML是用HTML和正文标签等正确格式化的
我使用的代码如下:
Sub PrintItem()
PrintToWord(strPrintOut)
End Sub
Function strPrintOut() as String
If CTR.ImagePath <> "None" Then
Dim PrintCTRImage As String = ""
PrintCTRImage = "<table width=15%><tr><td><IMG style=""height:100px;float:left;"" SRC=" & Chr(34) & MySession.BC.GetIMGPath(CTR.ImagePath, True, pg) & Chr(34) & "></td></tr></table>"
strCTRt &= PrintCTRImage
End If
strPrintOut = strCTRt
End Function
Public Sub PrintToWord(ByVal strPrintOut As String, ByVal FileName As String, ByVal pg As Page)
Try
Dim bString() As Byte
bString = StrToByteArray(strPrintOut)
pg.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", FileName & ".doc"))
pg.Response.Charset = Encoding.UTF8.WebName
pg.Response.Cache.SetCacheability(HttpCacheability.NoCache)
pg.Response.BinaryWrite(bString)
pg.Response.Flush()
pg.Response.End()
HttpContext.Current.ApplicationInstance.CompleteRequest()
Catch ex As System.Threading.ThreadAbortException
Catch ex As Exception
MySession.BC.HandleMessage(ex, pg)
End Try
End Sub
好的。。。随意地搜寻和啄,我发现了一个无关的帖子,它让我找到了答案。构建图像标签字符串的代码应该如下所示:
PrintCharacterImage = "<HR><IMG width=""120"" Height=""120"" style=""float:left;Margin:12px;"" SRC=" & Chr(34) & MySession.BC.GetIMGPath(Character.ImagePath, True, pg) & Chr(34) & ">"