0
我需要做的是;顯示來自ASHX的MemoryStream的PDF
- 獲取從SharePoint
- 一個PDF文件申請單頁,使用PDFSharp
- 返回,爲視圖,並顯示該頁面
我有什麼至此爲止的;
context.Response.ClearHeaders();
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("content-disposition", "inline; filename=Something.pdf");
// Get a fresh copy of the sample PDF file from Sharepoint later on
string filename = @"book.pdf";
// Open the file
PdfDocument inputDocument = CompatiblePdfReader.Open(filename, PdfDocumentOpenMode.Import);
PdfDocument outputDocument = new PdfDocument();
outputDocument.Version = inputDocument.Version;
outputDocument.Info.Title = "Pages 1 to 30";
outputDocument.Info.Author = "Slappy";
outputDocument.AddPage(inputDocument.Pages[1]);
MemoryStream ms = new MemoryStream();
outputDocument.Save(ms, false);
ms.WriteTo(context.Response.OutputStream);
我無法弄清楚的是如何在網頁中顯示它。
我有這個;
<script src="../../Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.media.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.metadata.js" type="text/javascript"></script>
<script>
$(function() {
$.ajax({ url: '/GetBookPage.ashx',
success: function (result) {
$("a.media").attr('href', result);
$('a.media').media({ width: 800, height: 600 });
},
async: false
});
});
</script>
<a class="media">PDF File</a>
上述工作,如果我將pdf保存到文件系統,然後將href指向該文件。
我想你錯過了這裏的一點,或者我可能並不清楚。我在SharePoint中的PDF有100多頁,我想返回的是每個頁面的第一頁。因此使用PDFSharp並返回一個MemoryStream。 – griegs 2012-08-09 03:52:00
對不起,其實你已經用href =「/ GetBookPage.ashx?.pdf」給出了答案。「這是銀色的子彈非常感謝你! – griegs 2012-08-09 03:57:24