ASP.NET PDF Viewer

时间:2012-12-28 17:06:42

标签: asp.net pdf pdf-viewer

我正在寻找一个ASP.NET控件来在浏览器中加载PDF。它应该允许控制向用户显示的页面数量,并且它应该能够做一些书签的东西,比如当用户点击按钮时,然后我可以获得查看器的页面编号并保存它,然后下次重新加载来自该页码的PDF。

3 个答案:

答案 0 :(得分:3)

作为IFRAME的替代方案,请使用PDFJS库(https://mozilla.github.io/pdf.js/

它允许您仅使用Javascript / HTML5 Canvas显示PDF文档。

HTML5 Canvas浏览器兼容性:http://caniuse.com/#feat=canvas

显示特定页面的示例 - 未测试

// pdf document file
var pdfDocument = 'yourfile.pdf';
// page Number you want to display
var pageNo = 1;
// name of the HTML5 Canvas
var canvasName = 'pdfCanvas';

PDFJS.getDocument( pdfDocument ).then(function (pdf) {
    pdf.getPage( pageNo ).then(function (page) {
        var scale = 1.5;
        var viewport = page.getViewport(scale);

        var canvas = document.getElementById(canvasName);
        var context = canvas.getContext('2d');
        canvas.height = viewport.height;
        canvas.width = viewport.width;

        var renderContext = {
            canvasContext: context,
            viewport: viewport
        };

        page.render(renderContext).promise.then(function () {
            // do something when rendering is completed
        });
    });
});

答案 1 :(得分:2)

您可以使用iframe在浏览器中查看pdf,如下所示

<iframe src="mypdf.pdf"></iframe>

答案 2 :(得分:0)

您可以尝试使用ASP.NET中的“对象” -Tag嵌入PDF文件。

这是一个小例子:

//Markup
<asp:LinkButton ID="view" runat="server" Text="Click me!" onClick="ViewPDF"></asp:LinkButton>
<asp:Literal ID="embedPdf" runat="server"/>

//C#
private void ViewPDF(object sender, EventArgs e)
{
   string embed = "<object data=\"{0}\" type=\"application/pdf\" width=\"1200px\" height=\"1000px\"></object>";
   embedPdf.Text = string.Format(embed, ResolveUrl("/your/pdf/file/path.pdf"));
}

在单击ASP-LinkBut​​ton后,应显示PDF阅读器。