Excel 無法操作,那就看看 PDF 是否可以加工,研究了一下,可以在不同的 Page 中加入 Header 及 Footer 。 所以在產生 PDF 後,在最後一頁加入我們要的 Footer 就可以了。 程式如下,
[code language="csharp"] public static MemoryStream AddFooterAndWatermark(MemoryStream pdfStream, WatermarkArg arg) { var pdfDocument = new Aspose.Pdf.Document(pdfStream); var pdfLastPage = pdfDocument.Pages[pdfDocument.Pages.Count]; var footer = new Aspose.Pdf.HeaderFooter(); //Instantiate a table object Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table(); tab1.HorizontalAlignment = HorizontalAlignment.Center; //設定預設的文字格式 var defaultTextState = new TextState("MingLiU", 8); footer.Paragraphs.Add(tab1); tab1.DefaultColumnWidth = "180"; tab1.DefaultCellTextState = defaultTextState; //Create rows in the table and then cells in the rows var row1 = tab1.Rows.Add(); var cellL = row1.Cells.Add("信用資訊查詢主管"); //cellL.DefaultCellTextState = defaultTextState; cellL.Alignment = HorizontalAlignment.Left; var cellR = row1.Cells.Add("經辦"); cellR.Alignment = HorizontalAlignment.Right; pdfLastPage.Footer = footer;
if (!string.IsNullOrWhiteSpace(arg.Watermark)) { var text = new FormattedText(arg.Watermark); foreach (var page in pdfDocument.Pages) { switch (arg.WMStyle) { case WatermarkStyle.FitPage: AddWatermarkFitPage(page, arg); break; case WatermarkStyle.RepeatHorizontal: AddWatermarkRepeatHorizontal(page, arg); break;
default: break; } } } var newPdfStream = new MemoryStream(); pdfDocument.Save(newPdfStream); return newPdfStream; } [/code]