0

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

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

4

1 回答 1

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

于 2013-07-12T13:32:25.107 回答