[英]Highlight words in a pdf using itextsharp, not displaying highlighted word in browser
[英]itextsharp pdf is created but not displaying in browser
我正在使用ITextSharp创建易于打印的PDF,该PDF当前未在浏览器中显示。
通过单击将触发以下jquery的打印图标来处理PDF的生成:
<script type="text/javascript">
function printDiv() {
$.post("@Url.Action("DownloadAdultReportPdf", "Monthly")",
{
RegionId: $("#RegionId").val(),
DatCodeId: $("#DatCodeId").val(),
AgencyId: $("#AgencyId").val(),
ReportVersionId: $("#ReportVersionId").val()
});
}
打印图标代码如下所示:
<input class="print-icon tooltip" title="print this report" type="image" src="~/Content/images/printer-icon-23.png" onclick="printDiv()"/>
单击此图标将转到MonthlyController中的FileResult,该文件名为DownloadAdultReportPdf,其代码如下所示:
public FileResult DownloadAdultReportPdf(AdultViewModel model)
{
MemoryStream workStream = new MemoryStream();
DateTime dTime = DateTime.Now;
string strPDFFileName = string.Format("SamplePdf" + dTime.ToString("yyyyMMdd") + "-" + ".pdf");
Document doc = new Document();
doc.NewPage();
Paragraph paragraph = new Paragraph();
paragraph.Add("Hello World!");
doc.SetMargins(0f, 0f, 0f, 0f);
string strAttachment = Server.MapPath("~/Downloads/" + strPDFFileName);
PdfWriter.GetInstance(doc, workStream).CloseStream = false;
doc.Open();
doc.Add(paragraph);
doc.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return File(workStream, "application/pdf", strPDFFileName);
}
如何使PDF显示在用户浏览器中?
您的C#代码中存在一些问题:
Document doc = new Document();
doc.NewPage();
您使用Document doc
没有将其与PdfWriter
关联并打开它。 特别是可能以这种方式更改页面内容的指令可能会丢失。 缺少的步骤最终将在此处执行:
PdfWriter.GetInstance(doc, workStream).CloseStream = false;
doc.Open();
doc.Add(paragraph);
doc.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
你在这里得到有效的完成PDF的副本byteInfo
并追加到finishedPDF workStream
! 因此, workStream
现在workStream
包含两个相同的PDF副本。
workStream.Position = 0;
return File(workStream, "application/pdf", strPDFFileName);
因此,在这里您将返回带有两个完整PDF副本的MemoryStream
。
解决这些问题,以显示有效的PDF。
您的JavaScript代码中可能还存在其他问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.