在指定位置放置文本(数字)
Placing text (numbers) at indicated positions
使用 for 循环迭代存储在矩阵 X 中的一组坐标,并在指定位置绘制圆圈(使用 itextpdf):
...
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(fileName));
Document document = new Document(pdfDoc, new PageSize(one));
PdfCanvas canvas = new PdfCanvas(pdfDoc.addNewPage());
for (int i = 0; i < total; i++) {
canvas.circle(X[d * i + axisX], X[d * i + axisY], 1.0);
canvas.fillStroke();
// -- numbers (i+1) should be drawn beside the circles
}
如何使用上面的 for 循环并在圆圈旁边写下数字,如上所示?
使用 iText 7 在绝对位置添加文本有许多不同的方法。
因为您已经有了一个 PdfCanvas
对象,您可以使用非常低级的方法,包括逐行编写 PDF 语法:
canvas.beginText();
canvas.moveText(x, y);
canvas.showText("1");
canvas.endText();
这在 chapter 3 of the iText 7 jump-start tutorial 中有解释。
当您不了解 PDF 参考时,编写低级 PDF 语法很容易出错。还有一个更简单的方法:
document.showTextAligned(new Paragraph("1"), x, y, TextAlignment.CENTER);
现在您不必担心使用 beginText()
和 endText()
构建文本对象; iText 处理所有低级语法。
使用 for 循环迭代存储在矩阵 X 中的一组坐标,并在指定位置绘制圆圈(使用 itextpdf):
...
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(fileName));
Document document = new Document(pdfDoc, new PageSize(one));
PdfCanvas canvas = new PdfCanvas(pdfDoc.addNewPage());
for (int i = 0; i < total; i++) {
canvas.circle(X[d * i + axisX], X[d * i + axisY], 1.0);
canvas.fillStroke();
// -- numbers (i+1) should be drawn beside the circles
}
如何使用上面的 for 循环并在圆圈旁边写下数字,如上所示?
使用 iText 7 在绝对位置添加文本有许多不同的方法。
因为您已经有了一个 PdfCanvas
对象,您可以使用非常低级的方法,包括逐行编写 PDF 语法:
canvas.beginText();
canvas.moveText(x, y);
canvas.showText("1");
canvas.endText();
这在 chapter 3 of the iText 7 jump-start tutorial 中有解释。
当您不了解 PDF 参考时,编写低级 PDF 语法很容易出错。还有一个更简单的方法:
document.showTextAligned(new Paragraph("1"), x, y, TextAlignment.CENTER);
现在您不必担心使用 beginText()
和 endText()
构建文本对象; iText 处理所有低级语法。