【问题标题】:ASP.NET PDF ViewerASP.NET PDF 查看器
【发布时间】:2012-12-13 22:16:54
【问题描述】:

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

【问题讨论】:

  • 您要复制 Adob​​e 浏览器插件?
  • 听起来您正在寻找对 Adob​​e 浏览器插件的重写。不确定你会发现,如果你这样做了,它会花费。
  • 感谢您的回复。我想通过我的 asp.net 代码在浏览器中显示 pdf。当用户单击它时,我将在页面上有一个按钮。我会得到他正在访问的pdf的页码。我将保存页码。下次他翻到 pdf 时,我会在那个页码处打开 pdf。
  • 你得到解决方案了吗

标签: asp.net pdf pdf-viewer


【解决方案1】:

作为 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
        });
    });
});

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • +1 我一点也不喜欢 iframe,但这似乎是对 OP 问题的最简单和最合理的解决方案
    • 对不起,这不是我要找的。我想控制从服务器端显示的页面数。并且还需要从服务器端加载pdf。并且应该可以选择获取pdf的当前页面。 ——
    【解决方案3】:

    您可以尝试在 ASP.NET 中使用“object”-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 阅读器应该会出现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多