使用低級方法(如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)。是否有一個原因,你想以一種更簡單的方式做一些艱難的事情? –