【问题标题】:Draw line after the paragraph using iText 7 C#使用 iText 7 C# 在段落后画线
【发布时间】:2018-06-06 06:29:21
【问题描述】:

如何在可访问的 pdf 中使用 iText7 在段落后画一条线?

【问题讨论】:

  • 这和accessibility有什么关系?
  • 我将使用 iText7 创建可访问的 pdf。在 pdf 中添加了段落,之后我需要画一条线。为此,我想获得当前的 Y 位置。这就是问题所在。

标签: c# itext7


【解决方案1】:

请转至iText 7: Building Blocks 教程中的chapter 4,然后向下滚动到它显示的位置:使用 LineSeparator 对象绘制水平线

您已经创建了一个Document 对象,您正在向其中添加Paragraph 对象,现在您想要添加一行。使用LineSeparator 对象绘制该线。

首先您需要定义一条线。您可以通过选择ILineDrawer 接口的实现来做到这一点,例如DashedLineDottedLineSolidLine。假设您想要一条宽度为 1 个用户单位的红色实线。这样做是这样的:

SolidLine line = new SolidLine(1f);
line.setColor(Color.RED);

现在你有了一条线,你可以用它来创建一个LineSeparator 对象:

LineSeparator ls = new LineSeparator(line);

你可以定义不同的参数,比如宽度百分比:

ls.setWidthPercent(50);

上面的线将绘制一条仅占可用宽度 50% 的线。

你也可以定义一些边距:

ls.setMarginTop(5);

以上行将确保实线上方有 5 个用户单位的可用空间。

请查阅教程和API documentation,了解您可以设置哪些其他参数。

我不确定您的问题为何被否决,但正如您所见,您要求的是您不需要的东西。您想在Paragraph 下画一条线,但您没有询问如何执行此操作,而是询问了 X 和 Y 位置。你不需要知道 X 和 Y 来满足画线的要求。因此,有人可能会争辩说你问错了问题。

【讨论】:

  • 非常感谢。我编辑了这个问题。我尝试如下。实线线 = 新实线(1f); line.setColor(Color.RED); LineSeparator ls = new LineSeparator(line); ls.setWidthPercent(50); ls.setMarginTop(5); doc.add(ls);但它不起作用。你能帮帮我吗?
  • @Briyatis “但它不起作用。” - 这个描述不足以帮助你。
  • 当人们说“它不起作用”时,他们不应该期待任何其他答案,而不是“但它对我有用!”我不能让已经对我有用的东西工作。它只是工作。
  • 很抱歉给您带来不便。由于线宽不正确,没有在 pdf 中绘制线。终于成功了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多