我可以成功地将文本添加到pdf并以这种方式存储对象的ID:
int ID = theDoc.AddText(ItemText);
但是,当我尝试以下列方式更新pdf上的项目文本时,它不起作用。
theDoc.SetInfo(ID, ":Text", ItemText);
以下是关于SetInfo函数的文档:http://www.websupergoo.com/helppdfnet/source/5-abcpdf/doc/1-methods/setinfo.htm
该函数接收pdf对象的ID,类型和要插入的数据。我相信我的错误是在第二个参数(类型),但我不知道如何使类型更具描述性。
任何想法或输入都会很棒。
答案 0 :(得分:2)
如果您使用AddText添加文本,那么您将获得一个ID。要更改文本,请在ID上调用Doc.Delete,然后添加新文本。
在提取现有PDF文档中的文本方面,您应该使用TextOperation类。像这样:
TextOperation op = new TextOperation(theDoc);
op.PageContents.AddPages();
string text = op.GetText();
返回的文本是在已选择的页面上找到的文本 - 在本例中是文档中的所有页面。
然后,您可以使用与string.Substring相同的操作选择文本的位。所以如果你的文字是“Hello World!”您可以使用以下内容选择Hello位:
IList<TextFragment> frags = op.Select(0, 5);
TextFragments列表表示文本在PDF中的存储方式。因此,您可以获取每个片段,找出它在内容流中的位置,并根据需要对其进行操作。