c# - 使用 iTextSharp 为文本部分加下划线

标签 c# wpf pdf itext

我有一个应用程序使用 itextsharp 来填写 PDF 表单域。

其中一个字段有一些带有标签的文本。例如:

<U>This text should be underlined</>. 

我希望 .. 中结束的文本必须加下划线。

我该怎么做?

例如,我如何使用 HTMLWorker 来处理它?<​​/p>

这是我编写描述的代码部分:

for (int i = 0; i < linesDescription.Count; i++)
{
         int count = linesDescription[i].Count();
         int countTrim = linesDescription[i].Trim().Count();
         Chunk cnk = new Chunk(linesDescription[i] + GeneralPurpose.ReturnChar, TextStyle);

         if (firstOpe && i > MaxLinePerPage - 1)
               LongDescWrapped_dt_extra.Add(cnk);
         else
               LongDescWrapped_dt.Add(cnk);
}

最佳答案

普通文本字段不支持富文本。如果您希望字段保持交互,您将需要 RichText 字段。这些字段以接受 RV 值的方式进行标记。这在这里解释:Set different parts of a form field to have different fonts using iTextSharp (请注意,我没有成功让这个工作,但你可能有更好的运气。)

如果您可以扁平化表单(即删除所有交互性),请查看 FillWithUnderline示例:

public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    stamper.setFormFlattening(true);
    AcroFields form = stamper.getAcroFields();
    FieldPosition pos = form.getFieldPositions("Name").get(0);
    ColumnText ct = new ColumnText(stamper.getOverContent(pos.page));
    ct.setSimpleColumn(pos.position);
    ElementList elements = XMLWorkerHelper.parseToElementList("<div>Bruno <u>Lowagie</u></div>", null);
    for (Element element : elements) {
        ct.addElement(element);
    }
    ct.go();
    stamper.close();
}

在这个例子中,我们没有填写字段,但我们得到了字段位置(一个页码和一个矩形)。然后我们使用 ColumnText 在此位置添加内容。当我们输入 HTML 时,我们使用 XML Worker 将 HTML 解析为可以添加到 ColumnText 对象的 iText 对象。

这是一个 Java 示例,但如果您知道如何用 C# 编写代码(我不知道),那么将它移植到 C# 应该很容易。

关于c# - 使用 iTextSharp 为文本部分加下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579382/

相关文章:

c# - WPF 祖先绑定(bind)

c# - XmlSerialization - 读取结束元素标签?

c# - 为来自远程 api 的字典定义 Elasticsearch 映射

java - Grails 从 REST Web 服务端点下载 pdf 文件

c# - 如何突出显示 DataGridView 行或使其暂时发光?

c# - 如何使用触发器来同步列表框选择?

基于XSD的WPF表单

wpf - 委托(delegate)命令抛出 "Specified cast is not valid"

javascript - 如何使用 Angular 和 Java 在浏览器的另一个页面中打开预览文件(pdf、docx、txt 等)

python - 从Linux服务器将.txt重写为.pdf代码,以在Windows Enterprise 2008服务器上工作