如何制作pdf文件有功能按钮?
这是PDF背后的代码
public partial class Pdf_Default : System.Web.UI.Page
{
protected override void Render(HtmlTextWriter writer)
{
MemoryStream mem = new MemoryStream();
StreamWriter twr = new StreamWriter(mem);
HtmlTextWriter myWriter = new HtmlTextWriter(twr);
base.Render(myWriter);
myWriter.Flush();
myWriter.Dispose();
StreamReader strmRdr = new StreamReader(mem);
strmRdr.BaseStream.Position = 0;
string pageContent = strmRdr.ReadToEnd();
strmRdr.Dispose();
mem.Dispose();
writer.Write(pageContent);
CreatePDFDocument(pageContent);
}
public void CreatePDFDocument(string strHtml)
{
string strFileName = HttpContext.Current.Server.MapPath("test.pdf");
// step 1: creation of a document-object
Document document = new Document();
// step 2:
// we create a writer that listens to the document
PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create));
StringReader se = new StringReader(strHtml);
HTMLWorker obj = new HTMLWorker(document);
document.Open();
obj.Parse(se);
document.Close();
ShowPdf(strFileName);
}
public void ShowPdf(string strFileName)
{
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "inline;filename=" + strFileName);
Response.ContentType = "application/pdf";
Response.WriteFile(strFileName);
Response.Flush();
Response.Clear();
}
}
当我尝试放置后退按钮时,PDF文件仅显示标签测试。 我想创建一个可以转到另一个页面的按钮(非PDF)。谢谢!
答案 0 :(得分:1)
当您使用Response.ContentType = "application/pdf";
等发送PDF文件作为回复时,可能会发生许多事情,最常见的是:
1-正在您网站上导航的用户没有默认的PDF查看器,并且会显示“另存为...”对话框(通常)。
2-用户具有默认PDF查看器,它在浏览器外部显示为外部应用程序或集成在其中。
在任何这些情况下,您只需显示PDF文件,不涉及任何HTML内容。如果要显示一个将用户带回您站点的按钮,则必须修改PDF文件并在其中添加按钮。
另一个选择是embed the pdf file inside a page而不是将其作为回复发送。在这种情况下,您可以将按钮添加到包装PDF文件的页面。