Unity使用iTextSharp导出PDF-04图形

发布于:2025-02-13 ⋅ 阅读:(14) ⋅ 点赞:(0)

坐标系

pdf文档页面的原点(0,0)在左下角,向上为+y,向右为+x。
文档的PageSize可获取页面的宽高数值
单位:像素

绘制矢量图形

使用PdfContentByte类进行绘制,注意文档打开后才有此对象的实例。

绘制方法

Stroke 绘制轮廓
ClosePathStroke 连接起点和终点并绘制轮廓
Fill 填充但无轮廓
ClosePathFillStroke 封闭 填充 有轮廓

轮廓线设置

SetLineWidth(2f); 轮廓线宽度
SetLineDash(3f, 2f); 轮廓线为虚线,虚线长度为3,间隔为2
SetColorStroke(BaseColor.RED) 轮廓线颜色

封闭图形的填充颜色

SetColorFill(BaseColor.GRAY) 封闭图形的填充颜色

直线

MoveTo设置起点,LineTo设置终点,Storke绘制

var writer = PdfWriter.GetInstance(doc, new FileStream(fileName, FileMode.Create));
doc.Open();
PdfContentByte cb = writer.DirectContent;
PdfContentByte cb = writer.DirectContent;
var width = doc.PageSize.Width;
var height = doc.PageSize.Height;
cb.MoveTo(width / 2, 0);//起点
cb.LineTo(width / 2, height);//终点
cb.Stroke();//绘制

曲线

原理为贝塞尔曲线

cb.MoveTo(200f, 10f); 
cb.CurveTo(150f, 30f, 450f, 70f, 350f, 150f);
cb.Stroke();

三角形

cb.MoveTo(350f, 450f);
cb.LineTo(350f, 600f);
cb.LineTo(500f, 450f);
cb.ClosePathStroke();//最后一个点和起点自动连接

cb.Circle(120f, 250f, 50f);
cb.Stroke();

圆角矩形

cb.RoundRectangle(100f, 500f, 200f, 200f, 20f);
cb.Stroke();

导入图片

支持格式:jpg,png,git等

var writer = PdfWriter.GetInstance(doc, new FileStream(fileName, FileMode.Create));
doc.Open();
Image ima = Image.GetInstance("F:\\图片.png");
ima.Border = Rectangle.BOX;//正方形边框
ima.BorderColor = BaseColor.YELLOW;//边框颜色
ima.BorderWidth = 5f;//边框宽度
ima.SetAbsolutePosition(5f, 5f);//位置
doc.Add(ima);