利用asppdf将html转成pdf文件 前文曾提到过,使用asppdf的ImportFromUrl转换html到pdf时,在非unicode时,会出现乱码。虽然asppdf组件本身不能 够解决这个问题,但我们可以换一个思路解决这个问题。当然这个只是本文的一部分,先来看看怎么样使用ImportFromUrl吧。 源码如下: ‘来源于user manual
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
Doc.ImportFromUrl "http://www.persits.com"
Filename = Doc.Save( Server.MapPath("importfromurl.pdf"), False )
所有网页charset为utf-8的都能够转换并显示正常,但类似GB2312之类的就不行了哦。
不过ImportFromUrl还可以导入一个静态html文件,也就是说我们可以将一个网页读入一个字符串中,然后将这个字符串传值给ImportFromUrl,也可以实现将html转成pdf文件的目的。
那么,显示不正常的乱码问题也就有了解决的思路了,先将文件通过microsoft.xmlhttp读取回来,然后转码,如下源码所示:
str = GetBody("http://blog.const.net.cn")
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
Doc.ImportFromUrl str
Filename = Doc.Save( Server.MapPath("importfromurl.pdf"), False )
Function GetBody(Url) Dim objXML On Error Resume Next Set objXML = CreateObject("Microsoft.XMLHTTP") With objXML .Open "Get", Url, False, "", "" .Send GetBody = .ResponseBody End With GetBody=BytesToBstr(GetBody,"GB2312") Set objXML = Nothing End Function Function BytesToBstr(strBody,CodeBase) dim objStream set objStream = Server.CreateObject("Adodb.Stream") objStream.Type = 1 objStream.Mode =3 objStream.Open objStream.Write strBody objStream.Position = 0 objStream.Type = 2 objStream.Charset = CodeBase BytesToBstr = objStream.ReadText objStream.Close set objStream = nothing End Function
没有测试过,只是一个思路。希抛砖引玉。
[Blog.Const.Net.Cn]
[Blog.Const.Net.Cn]
永久链接地址:
知识库 利用asppdf将html转成pdf文件