使用低级方法(如BeginText()
,ShowText()
, EndText()
等)添加内容需要对PDF规范(ISO 32000)有充分的了解。事实上,你对\n
被忽略的事实感到惊讶,这告诉我你对PDF不太熟悉。
iText是为不想处理PDF的低级语法的人编写的。例如:如果你想添加与iText的一个矩形内的文字,你只需要创建一个Canvas
对象,你传递一个Rectangle
对象:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfPage page = pdf.AddNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);
Rectangle rectangle = new Rectangle(36, 650, 100, 100);
Canvas canvas = new Canvas(pdfCanvas, pdf, rectangle);
PdfFont font = PdfFontFactory.CreateFont(FontConstants.TIMES_ROMAN);
PdfFont bold = PdfFontFactory.CreateFont(FontConstants.TIMES_BOLD);
Text title =
new Text("The Strange Case of Dr. Jekyll and Mr. Hyde").SetFont(bold);
Text author = new Text("Robert Louis Stevenson").SetFont(font);
Paragraph p = new Paragraph().Add(title).Add(" by ").Add(author);
canvas.Add(p);
pdf.Close();
这个例子可以在网上iText的7 chapter 2被发现教程。 
的屏幕截图显示了如何Rectangle
内加入一个长句子,那句话是怎么分布在不同线路(自动引入新的生产线)。 PDF中不存在\n
字符的概念(如有疑问,请检查ISO 32000)。如果您想要引入换行符,将一部分内容放入一个Paragraph
而将另一部分放入另一个Paragraph
即可。
如果要添加适合矩形内的文本,为什么要使用底层方法?参见本教程的[第2章](http://developers.itextpdf.com/content/itext-7-building-blocks/chapter-2-working-rootelement)。是否有一个原因,你想以一种更简单的方式做一些艰难的事情? –