编辑PDF文本对象给出其ID-ABCPDF

时间:2013-07-10 13:37:01

标签: c# asp.net .net pdf abcpdf

我可以成功地将文本添加到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,类型和要插入的数据。我相信我的错误是在第二个参数(类型),但我不知道如何使类型更具描述性。

任何想法或输入都会很棒。

1 个答案:

答案 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中的存储方式。因此,您可以获取每个片段,找出它在内容流中的位置,并根据需要对其进行操作。