C#使用ITextSharp创建PDF文档
整理了一下添加文本和图片等方法
创建PDF文档
//路径
string fileName = AppDomain.CurrentDomain.BaseDirectory + "/test.pdf";
//文档大小
Document document = new Document(PageSize.A4);
//字体
BaseFont bf = BaseFont.CreateFont(@"C:\Windows\Fonts\MSYH.TTC,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 11);
//iTextSharp.text.Font title = new iTextSharp.text.Font(bf, 11, 1);字体加粗
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
document.Open();
//do something
document.Close();
添加自动换行的文本,默认从上往下
iTextSharp.text.Paragraph text = new iTextSharp.text.Paragraph("文本内容", font);
text.Alignment = Element.ALIGN_CENTER;//居中
document.Add(text);
指定位置添加文本
PdfContentByte cb= writer.DirectContent;
Phrase C_EDD = new Phrase("文本内容", font);
PdfContentByte cb= writer.DirectContent;
ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT, C_EDD, 219, 157, 0);
指定位置添加文本,自动换行
大概意思就是在指定位置添加一个矩形,然后把文本放里面,超出矩形范围的文本不显示
ColumnText ct = new ColumnText(cb);
Phrase ImageFeatures_content = new Phrase("文本内容自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行", font);
ct.SetSimpleColumn(ImageFeatures_content, 53,500,300,300, 15, Element.ALIGN_LEFT);//第2到第5个参数分别代表矩形的左,上,右,下处的坐标
ct.Go();
指定位置添加直线
PdfContentByte cb = writer.DirectContent;
cb.SetColorStroke(new CMYKColor(1f, 1f, 1f, 1f));
//cb.SetColorFill(new CMYKColor(0f, 0f, 1f, 0f));
cb.MoveTo(53, 500);
cb.LineTo(547, 500);
指定位置添加图片
iTextSharp.text.Image img;
img = iTextSharp.text.Image.GetInstance(new Bitmap(100,100), System.Drawing.Imaging.ImageFormat.Png);
img.SetAbsolutePosition(50,50);
writer.DirectContent.AddImage(img);