1. Goto Nuget 下載 Pechkin 控件
2. 創建需要打印的的PDF controller 和 Action, 這里會調用其他頁面的內容進行打印。
public ActionResult ExportPDF(int id=0)
{
SynchronizedPechkin sc = new SynchronizedPechkin(new GlobalConfig()
.SetMargins(new Margins() { Left = 0, Right = 0, Top = 0, Bottom = 0 })); //設置邊距
ObjectConfig oc = new ObjectConfig();
string sCurrentUrl = Request.Url.ToString();
string sBook = sCurrentUrl.Substring(0, sCurrentUrl.IndexOf("/Book"));
string sPath = sBook + "/Book/BookToPdf/" + id;
oc.SetPrintBackground(true).SetRunJavascript(true).SetScreenMediaType(true)
.SetLoadImages(true)
.SetPageUri(sPath);
byte[] buf = sc.Convert(oc);
return File(buf, "application/pdf", "download.pdf");
}
3. 調用頁面代碼
public ActionResult BookToPdf(int id=0)
{
BookService BookBS = new BookService();
var sModel = BookBS.GetBook(id);
ViewData["BookModel"] = sModel;
return View();
}
@model List<LibrarySys.Web.Models.BookModel>
@{
Layout = null;
}
<table class="table table-hover table-bordered">
<thead>
<tr>
<td class="col-md-1">
<p>圖書編碼</p>
<p>出版日期</p>
</td>
<td>名稱</td>
<td>價格</td>
<td class="col-md-1">作者</td>
<td>出版社</td>
<td>操作</td>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
<p>@item.BookNumber</p>
<p>@item.BookPublish.ToShortDateString()</p>
</td>
<td><a href="/Book/BookEdit/@item.BookId" target="_self">@item.BookName</a></td>
<td>@item.BookPrice</td>
<td>@item.BookAuthor</td>
<td>@item.Publisher</td>
<td><a href="/Book/ExportPDF/@item.BookId" class="btn btn-xs btn-primary">導出PDF</a></td>
</tr>
}
</tbody>
</table>
4. 打印預覽
5. 部署網絡時問題解決。

6.

