首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TextFragment中循环Aspose.PDF

如何在TextFragment中循环Aspose.PDF
EN

Stack Overflow用户
提问于 2018-01-22 14:53:23
回答 1查看 669关注 0票数 1

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

我现在的代码是:

代码语言:javascript
复制
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);

我需要这样的东西:

代码语言:javascript
复制
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")中的字符串并不相同。对于不同形式的字段,这是不同的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-22 21:18:34

您可以简单地在PDF文件中添加文本片段,一旦添加完文本,您可以使用以下代码获得或设置PDF文件中所有文本片段的不同属性:

代码语言:javascript
复制
// 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");

有关这方面的更多信息,您可以访问处理文本。我希望这会有所帮助。如果您需要进一步的帮助,请告诉我们。

我和Aspose合作,做开发人员的布道者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48384324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档