首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AcroFields中,Libre标签不显示为“iTextSharp”?

在AcroFields中,Libre标签不显示为“iTextSharp”?
EN

Stack Overflow用户
提问于 2019-03-13 13:38:51
回答 1查看 226关注 0票数 0

所以我一直想写一份报告。我已经试过很多东西了,但似乎总是有问题。我目前正在尝试iTextSharp 4.1.6。

我目前的策略是使用LibreOffice创建一个包含可编辑pdf字段的文档,或者我猜它们被称为"AcroFields“。我不确定,因为我找不到定义。但无论如何,我认为所有这些都是"AcroFields":

但是,如果我将所有这些都放入表单中并导出为pdf格式,那么其中只有一些显示为AcroFields:

代码语言:javascript
复制
var reader = new PdfReader(File.ReadAllBytes("abc.pdf"));
foreach(var field in reader.AcroFields.Fields)
{
    Console.WriteLine(((DictionaryEntry)field).Key);
}

> Text Box 1
  Check Box 1
  Numeric Field 1
  Formatted Field 1
  Date Field 1
  List Box 1
  Combo Box 1
  Push Button 1
  Option Button 1

注意Label Field 1是如何不存在的。如果它是,那么做一个文本替换可能很容易。除了它不存在,所以它看起来就像连iText都不能在pdf中做一个简单的文本替换。这是真的吗?如何使用iTextSharp替换pdf文档中的文本?

EN

回答 1

Stack Overflow用户

发布于 2019-03-13 16:35:50

注意标签字段1是如何不存在的。

由于没有AcroForm表单字段类型"label",表单标签通常被绘制为PDF文件中的常规页面内容。

如果它是存在的,那么做一个文本替换可能很容易。除了它不存在,所以它看起来就像连iText都不能在pdf中做一个简单的文本替换。这是真的吗?

实际上,在PDF中通常没有简单的文本替换。

如何使用iTextSharp替换pdf文档中的文本?

我将使用iText文本提取功能来确定文本的边界框坐标,以返回文本加坐标的扩展。然后,通过使用iText的PdfCleanUp...类进行编辑来删除该文本。最后,我将在开始时确定的边界框中添加替换文本作为新文本。

不幸的是,好的文本提取和编辑都没有出现在您的4.1.6版本中;对于这种方法,您应该至少更新到5.5.x。

或者,由于您一直试图生成一个报告,我假设模板设计掌握在您的手中。在这种情况下,您可以将标签放入可以更改的只读文本字段(只对GUI用户进行只读)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55143251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档