【发布时间】:2017-11-14 03:41:51
【问题描述】:
要求:附上截图。我必须在 pdf 中写两行文本,然后画一条线,然后再次开始写一些文本。
因此,我的算法是这样的:
contentStream = new PDPageContentStream(doc, page);
contentStream.setFont(font, fontSize);
contentStream.beginText();
创建了一个新的 PDPageContentStream 并触发了函数 beginText()。我可以写出所附图像中显示的上部文本部分。
下面是上面的文本和行的以下代码行:
contentStream.showText("Entry Form – Header");
yCordinate -= fontHeight; //This line is to track the yCordinate
contentStream.newLineAtOffset(0, -leading);
yCordinate -= leading;
contentStream.showText("Date Generated: " + dateFormat.format(date));
yCordinate -= fontHeight;
contentStream.newLineAtOffset(0, -leading);
yCordinate -= leading;
contentStream.endText(); // End of text mode
我不得不结束这个文本模式,因为下面的 3 行代码(画线)不会在文本模式下执行:
contentStream.moveTo(startX, yCordinate);
contentStream.lineTo(endX, yCordinate);
contentStream.stroke();
现在在这行代码之后,如果我写:
contentStream.beginText();
contentStream.showText("Name: XXXXX");
名称显示在页面的左下角。我希望这条线在下图中显示的线之后。
【问题讨论】:
-
beginText()... 显示前两行文本 ...endText()... 描边图形线 ...beginText()... 为下一个文本行定位文本矩阵 ...显示剩余的文本行。 -
在绘制线条后放置下一个文本行的文本矩阵时遇到问题。我试过
contentStream.newLineAtOffset(0, yCordinate);,但没用。