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