如何解决ITextPdf 7.1.13 使用 C# ASP NET 为项目创建报告的库
我正在使用 ITextPdf 7.1.13 库为使用 C# ASP NET 的项目创建报告。
问题是生成的 pdf 在我的电脑上没问题。
CS1061:“PdfCanvas”不包含“AddXObjectAt”的定义 并且没有可访问的扩展方法“AddXObjectAt”接受第一个 可以找到“PdfCanvas”类型的参数(您是否缺少使用 指令或程序集引用?)
如果注释此行
pdfCanvas.AddXObjectAt(placeholder,x + space,y - descent);
代码隐藏
using System;
using System.Web;
using MysqL.Data.MysqLClient;
using System.Configuration;
using iText.IO.Image;
using iText.Kernel.Colors;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Borders;
using iText.Layout.Element;
using iText.Layout.Properties;
using Image = iText.Layout.Element.Image;
using Table = iText.Layout.Element.Table;
using System.Data;
using iText.Kernel.Pdf.Action;
using iText.Kernel.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Geom;
using iText.Kernel.Events;
using iText.Kernel.Pdf.Canvas;
using Rectangle = iText.Kernel.Geom.Rectangle;
using iText.Layout.Renderer;
using iText.Layout.Layout;
using iText.Kernel.Pdf.Xobject;
private class TableFooterEventHandler : IEventHandler
{
private Table table;
public TableFooterEventHandler(Table table)
{
this.table = table;
}
public void HandleEvent(Event currentEvent)
{
PdfDocumentEvent docEvent = (PdfDocumentEvent)currentEvent;
PdfDocument pdfDoc = docEvent.GetDocument();
pdfpage page = docEvent.GetPage();
int pageNumber = pdfDoc.GetPageNumber(page);
Rectangle pageSize = page.GetPageSize();
PdfCanvas canvas = new PdfCanvas(page.NewContentStreamBefore(),page.GetResources(),pdfDoc);
new Canvas(canvas,new Rectangle(36,20,page.GetPageSize().GetWidth() - 72,50))
.Add(table)
.Close();
}
}
protected class Footer : IEventHandler
{
protected PdfFormXObject placeholder;
protected float side = 20;
protected float x = 300;
protected float y = 25;
protected float space = 4.5f;
protected float descent = 3;
public Footer()
{
placeholder = new PdfFormXObject(new Rectangle(0,side,side));
}
public virtual void HandleEvent(Event @event)
{
PdfDocumentEvent docEvent = (PdfDocumentEvent)@event;
PdfDocument pdf = docEvent.GetDocument();
pdfpage page = docEvent.GetPage();
int pageNumber = pdf.GetPageNumber(page);
Rectangle pageSize = page.GetPageSize();
// Creates drawing canvas
PdfCanvas pdfCanvas = new PdfCanvas(page);
Canvas canvas = new Canvas(pdfCanvas,pageSize);
canvas.SetFontSize(10);
Paragraph p = new Paragraph()
.Add("Page ")
.Add(pageNumber.ToString())
.Add(" of");
canvas.showtextAligned(p,x,y,TextAlignment.RIGHT);
canvas.Close();
// Create placeholder object to write number of pages
pdfCanvas.AddXObjectAt(placeholder,y - descent);
pdfCanvas.Release();
}
public void Writetotal(PdfDocument pdfDoc)
{
Canvas canvas = new Canvas(placeholder,pdfDoc);
canvas.SetFontSize(10);
canvas.showtextAligned(pdfDoc.GetNumberOfPages().ToString(),descent,TextAlignment.LEFT);
canvas.Close();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。