如何在 Aspose.PDF 中循环 TextFragment

How to loop TextFragment in Aspose.PDF

在将文本写入 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

TextFragment("String") 中的字符串并非所有字段都相同。不同的表单域是不同的。

您可以简单地在 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");

您可以访问 Working with Text 了解更多信息。我希望这会有所帮助。如果您需要任何进一步的帮助,请告诉我们。

我在 Aspose 工作,担任开发人员布道师。