在網頁設計實務上,需要動態產生文件及講求排版格式的列印功能亦頗為常見。本文將示範如何使用 iTextShap 建立 PDF 文件,並加入 JavaScript 指令碼透過 Acrobat API 將文件自動輸出至指定的印表機。
下列程式碼範例會假設已經在 ASP.NET Web 網頁建立列印按鈕,並指定如下的 Click 事件處理常式。範例中的 PrintButton_Click 方法,會在指定的目錄下將建立含有列印指令碼的 PDF 文件,並透過泛型處理常式將文件傳送到用戶端,然後輸出至使用者的印表機。
protected void PrintButton_Click(object sender, EventArgs e)
{
Document document = new Document();
MemoryStream ms = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, ms);
document.Open();
// 加入自動列印指令碼
writer.AddJavaScript(@"
var pp = this.getPrintParams();
pp.interactive = pp.constants.interactionLevel.silent;
pp.pageHandling = pp.constants.handling.none;
var fv = pp.constants.flagValues;
pp.flags |= fv.setPageSize;
pp.flags |= (fv.suppressCenter | fv.suppressRotate);
this.print(pp);
");
document.Add(new Paragraph("Testing Silent Printing with iTextSharp."));
document.Close();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "inline; filename=Report.pdf");
Response.BinaryWrite(ms.ToArray());
Response.End();
}
參考資料:
Silent Printing on Web based Java Application
0 comments :: Printing PDF File from ASP.NET
張貼留言