Loops 如何在Aspose.PDF中循环TextFragment

Loops 如何在Aspose.PDF中循环TextFragment,loops,for-loop,aspose.pdf,Loops,For Loop,Aspose.pdf,在将文本写入PDF的过程中,我使用TextFragment设置各个字段的属性。如何使用循环,而不是单独设置每个字段 我现在的代码是: TextFragment a = new TextFragment("Hi!"); tf.setPosition(dropDown); tf.getTextState().setFont(new FontRepository().findFont("Arial")); tf.getTextState().setFon

在将文本写入PDF的过程中,我使用TextFragment设置各个字段的属性。如何使用循环,而不是单独设置每个字段

我现在的代码是:

TextFragment a = new TextFragment("Hi!");
        tf.setPosition(dropDown);
        tf.getTextState().setFont(new FontRepository().findFont("Arial"));
        tf.getTextState().setFontSize(10.0F);
            .
            .
            .
    TextFragment n = new TextFragment("n");
            tf.setPosition(dropDown);
            tf.getTextState().setFont(new FontRepository().findFont("Arial"));
            tf.getTextState().setFontSize(10.0F);
我需要这样的东西:

some loop {
.
.
TextFragment txtFrag = new TextFragment(A);
        tf.setPosition(dropDown);
        tf.getTextState().setFont(new FontRepository().findFont("Arial"));
        tf.getTextState().setFontSize(10.0F);

} //This should set properties for all fields

文本片段(“字符串”)
中的字符串对于所有字段都不相同。不同表单字段的属性不同。

您只需在PDF文件中添加文本片段,添加完文本后,您可以使用以下代码获取或设置PDF文件中所有文本片段的不同属性:

// Load document
Document document = new Document( dataDir + "input.pdf");

// Create TextAbsorber object to extract all textFragments
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber();

// Accept the absorber for first page of document
document.getPages().accept(textFragmentAbsorber);

// Get the extracted text fragments into collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Loop through the Text fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
    // Iterate through text fragments
    System.out.println("Text :- " + textFragment.getText());
    textFragment.getTextState().setFont(new FontRepository().findFont("Arial"));
    textFragment.getTextState().setFontSize(10.0F);
    System.out.println("Position :- " + textFragment.getPosition());
    System.out.println("XIndent :- " + textFragment.getPosition().getXIndent());
    System.out.println("YIndent :- " + textFragment.getPosition().getYIndent());
    System.out.println("Font - Name :- " + textFragment.getTextState().getFont().getFontName());
}

// Save generated document
document.save(dataDir + "input_17.12.pdf");
//加载文档
文档=新文档(dataDir+“input.pdf”);
//创建TextAbsorb对象以提取所有TextFragment
text碎片吸收体text碎片吸收体=新的text碎片吸收体();
//接受文档第一页的吸收器
document.getPages().accept(textFragmentAbsor);
//将提取的文本片段获取到集合中
TextFragmentCollection TextFragmentCollection=textFragment吸收体.getTextFragments();
//循环浏览文本片段
for(TextFragment TextFragment:(Iterable)textFragmentCollection){
//遍历文本片段
System.out.println(“Text:-”+textFragment.getText());
textFragment.getTextState().setFont(新FontRepository().findFont(“Arial”));
textFragment.getTextState().setFontSize(10.0F);
System.out.println(“Position:-”+textFragment.getPosition());
System.out.println(“XIndent:-”+textFragment.getPosition().getXIndent());
System.out.println(“YIndent:-”+textFragment.getPosition().getYIndent());
System.out.println(“Font-Name:-”+textFragment.getTextState().getFont().getFontName());
}
//保存生成的文档
保存(dataDir+“input_17.12.pdf”);
有关这方面的更多信息,请访问。我希望这会有帮助。如果您需要任何进一步的帮助,请告诉我们


我与Aspose合作,担任开发人员福音传道者。

这对所有领域都适用。如果我只想在PDF的不同位置添加某些字段,该怎么办?有多种方法可以从PDF文档中搜索和检索文本片段。您可以使用文本短语和正则表达式。TextFragmentAbsorb类的构造函数允许传递正则表达式或文本短语。//创建TextAbsorb对象以查找输入搜索短语TextFragmentAbsorb TextFragmentAbsorb=new TextFragmentAbsorb(“\\d{4}-\\d{4}”);//例如1999-2000年'