3

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

4

3 回答 3

4

作为 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
        });
    });
});
于 2015-10-27T09:52:13.303 回答
3

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

<iframe src="mypdf.pdf"></iframe>
于 2012-12-28T17:53:30.017 回答
0

您可以尝试使用 ASP.NET 中的“对象”标签嵌入 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 阅读器。

于 2020-10-22T14:02:02.333 回答