将HTML转换为PDF

Ini*_*ech 5 .net html pdf pdf-generation abcpdf

参考之前的帖子(PDF报告生成)

我决定使用类似于http://www.alistapart.com/articles/boom的解决方案

对于那些不想阅读任何参考文献的人 - 我正在创建一个报告并将其作为PDF格式化.我决定使用.NET进行HTML - > PDF路由.

所以,让我说我得到的HTML文件完全像我想要的那样.将所述页面转换为PDF的最佳方法是什么?本质上,我希望用户在HTML中看到"预览",然后能够将所述页面转换为PDF.我正在尝试的库是ABCPdf.

我的第一个想法是将页面保存到文件系统,并在页面本身的事件处理程序期间在转换例程中引用它的URL.这有它的问题,因为每次渲染时都要保存页面以准备打印它.实际上,它似乎是后退的.

我的下一个想法是使用页面的渲染方法将页面捕获为字节流并使用它(因为ABCPdf支持转换HTML流.)如果这是我的答案,我迷失了如何实际将它拉下来.有一个"打印"按钮,处理程序将Me.Render()转换为字节流并将其发送到转换例程?这甚至可能吗?

底线 - 一旦页面以精美的HTML呈现,您如何初始化该页面的PDF转换?欢迎使用变通方法和其他解决方案.

我希望我错过一些明显的东西,因为这必须是" 容易的部分 "

Ini*_*ech 3

好的,开始工作了——而且相当简单。只是将其传递给下一个可能需要答案的人。我只是使用了页面的 Url 属性并将其发送到 ABCPdf addImageUrl() 方法。还必须使用链接,因为它不止一页。感谢您的所有帮助。

Dim oPdfDoc As New Doc()
Dim iPageID As Int32
Dim MyUrl = Request.Url

iPageID = oPdfDoc.AddImageUrl(MyUrl.AbsoluteUri)

While True
    oPdfDoc.FrameRect()
    If Not oPdfDoc.Chainable(iPageID) Then
        Exit While
    End If
    oPdfDoc.Page = oPdfDoc.AddPage()
    iPageID = oPdfDoc.AddImageToChain(iPageID)
End While

For i as Int32 = 1 To oPdfDoc.PageCount
    oPdfDoc.PageNumber = i
    oPdfDoc.Flatten()
Next

oPdfDoc.Save(Server.MapPath("test.pdf"))
oPdfDoc.Clear()
Run Code Online (Sandbox Code Playgroud)