com.aspose.pdf

Interfaces

Classes

Enums

Exceptions

com.aspose.pdf

Class TextFragment

  • All Implemented Interfaces:
    com.aspose.ms.System.ICloneable
    Direct Known Subclasses:
    Heading


    public class TextFragment
    extends BaseParagraph

    Represents fragment of Pdf text.


     The example demonstrates how to find text on the first PDF document page and replace the text and it's font.
    
    
      // Open document
      Document doc = new Document("D:\\Tests\\input.pdf");
    
      // Find font that will be used to change document text font
      Font font = FontRepository.findFont("Arial");
    
      // Create TextFragmentAbsorber object to find all "hello world" text occurrences
      TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
    
      // Accept the absorber for first page
      doc.getPages().get(1).accept(absorber);
    
      // Change text and font of the first text occurrence
      absorber.getTextFragments().get_Item(1).setText ( "hi world");
      absorber.getTextFragments().get_Item(1).getTextState().setFont ( font);
    
      // Save document
      doc.save("D:\\Tests\\output.pdf");
      

     In a few words,  TextFragment object contains list of  TextSegment objects.
    
     In details: Text of pdf document in  com.aspose.pdf is represented by two basic objects:
      TextFragment and  TextSegment The differences between them is mostly
     context-dependent.
    
     Let's consider following scenario. User searches text "hello world" to operate with it, change
     it's properties, look etc.
    
    
      Document doc = new Document(docFile);
      TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
      doc.getPages().get(1).accept(absorber);
      
    Phisycally pdf text's representation is very complex. The text "hello world" may consist of several phisycally independent text segments. The Aspose.Pdf text model basically establishes that TextFragment object provides single logic operation set over physical TextSegment objects set that represent user's query. In text search scenario, TextFragment is logical "hello world" text representation, and TextSegment object collection represents all physical segments that construct "hello world" text object. So, TextFragment is close to logical text representation. And TextSegment is close to physical text representation. Obviously each TextSegment object may have it's own font, coloring, positioning properties. TextFragment provides simple way to change text with it's properties: set font, set font size, set font color etc. Meanwhile TextSegment objects are accessible and users are able to operate with TextSegment objects independently.

    Note that changing TextFragment properties may change inner Segments collection because TextFragment is an aggregate object and it may rearrange internal segments or merge them into single segment. If your requirement is to leave the Segments collection unchanged, please change inner segments individually.

    • Constructor Detail

      • TextFragment

        public TextFragment()

        Initializes new instance of the TextFragment object.

      • TextFragment

        public TextFragment(TabStops tabStops)

        Initializes new instance of the TextFragment object with predefined TabStops positions.

        Parameters:
        tabStops - Tabulation positions
      • TextFragment

        public TextFragment(String text)

        Creates TextFragment object with single TextSegment object inside. Specifies text string inside the segment.

        Parameters:
        text - Text fragment's text.
      • TextFragment

        public TextFragment(String text,
                            TabStops tabStops)

        Creates TextFragment object with single TextSegment object inside and predefined TabStops positions.

        Parameters:
        text - Text fragment's text.
        tabStops - Tabulation positions
    • Method Detail

      • getText

        public String getText()

        Gets string text object that the TextFragment object represents.

        Returns:
        String value
          The example demonstrates how to search a text and replace first occurrence represented with 
          TextFragment object .
        
          // Open document
          Document doc = new Document("D:\\Tests\\input.pdf");
        
          // Create TextFragmentAbsorber object to find all "hello world" text occurrences
          TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
          // Accept the absorber for first page
          doc.getPages().get(1).accept(absorber);
        
          // Change font of the first text occurrence
          absorber.getTextFragments().get_Item(1).setText ( "hi world");
        
          // Save document
          doc.save("D:\\Tests\\output.pdf");
                
        See Also:
        TextFragmentAbsorber, IDocument
      • setText

        public void setText(String value)

        Sets string text object that the TextFragment object represents.

        Parameters:
        value - String value
                               The example demonstrates how to search a text and replace first occurrence represented with
                                TextFragment object .
        
                               // Open document
                               Document doc = new Document("D:\\Tests\\input.pdf");
        
                               // Create TextFragmentAbsorber object to find all "hello world" text occurrences
                               TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
                               // Accept the absorber for first page
                               doc.getPages().get(1).accept(absorber);
        
                               // Change font of the first text occurrence
                               absorber.getTextFragments().get_Item(1).setText ( "hi world");
        
                               // Save document
                               doc.save("D:\\Tests\\output.pdf");
                                
        See Also:
        TextFragmentAbsorber, IDocument
      • getVerticalAlignment

        public int getVerticalAlignment()

        Gets a vertical alignment of text fragment.

        Overrides:
        getVerticalAlignment in class BaseParagraph
        Returns:
        int value
        See Also:
        VerticalAlignment
      • setVerticalAlignment

        public void setVerticalAlignment(int value)

        Sets a vertical alignment of text fragment.

        Overrides:
        setVerticalAlignment in class BaseParagraph
        Parameters:
        value - int value
        See Also:
        VerticalAlignment
      • getHorizontalAlignment

        public int getHorizontalAlignment()

        Gets a horizontal alignment of text fragment.

        Overrides:
        getHorizontalAlignment in class BaseParagraph
        Returns:
        HorizontalAlignment value
        See Also:
        HorizontalAlignment
      • setHorizontalAlignment

        public void setHorizontalAlignment(int value)

        Sets a horizontal alignment of text fragment.

        Overrides:
        setHorizontalAlignment in class BaseParagraph
        Parameters:
        value - HorizontalAlignment value
        See Also:
        HorizontalAlignment
      • setHyperlink

        public void setHyperlink(Hyperlink value)

        Sets the fragment hyperlink

        Overrides:
        setHyperlink in class BaseParagraph
        Parameters:
        value - hyperlink(for pdf generator).
      • getTextState

        public TextFragmentState getTextState()

        Gets or sets text state for the text that TextFragment object represents.

        Returns:
        TextFragmentState object
          The example demonstrates how to change text color and font size of the text with  TextState object.
        
          // Open document
          Document doc = new Document("D:\\Tests\\input.pdf");
        
          // Create TextFragmentAbsorber object to find all "hello world" text occurrences
          TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
          // Accept the absorber for first page
          doc.getPages().get(1).accept(absorber);
        
          // Change foreground color of the first text occurrence
          absorber.getTextFragments().get_Item(1).getTextState().setForegroundColor(Color.RED);
        
          // Change font size of the first text occurrence
          absorber.getTextFragments().get_Item(1).getTextState().setFontSize ( 15);
        
          // Save document
          doc.save("D:\\Tests\\output.pdf");
                

        Provides a way to change following properties of the text: Font FontSize FontStyle ForegroundColor BackgroundColor

        See Also:
        TextFragmentAbsorber, IDocument
      • getSegments

        public TextSegmentCollection getSegments()

        Gets text segments for current TextFragment.

        Returns:
        TextSegmentCollection value
          The example demonstrates how to navigate all  TextSegment objects inside  TextFragment.
        
          // Open document
          Document doc = new Document("D:\\Tests\\input.pdf");
        
          // Create TextFragmentAbsorber object to find all "hello world" text occurrences
          TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
          // Accept the absorber for first page
          doc.getPages().get(1).accept(absorber);
        
          // Navigate all text segments and out their text and placement info
          for (TextSegment segment : ( Iterable<TextSegment>)absorber.getTextFragments().get_Item(1).getSegments())
          {
              System.out.println("segment text: "+ segment.getText()));
              System.out.println("segment X indent: "+ segment.getPosition().getXIndent()));
              System.out.println("segment Y indent: "+ segment.getPosition().getYIndent()));
          }
        
         

        In a few words, TextSegment objects are children of TextFragment object. Advanced users may access segments directly to perform more complex text edit scenarios. For details, please look at TextFragment object description.

        See Also:
        TextFragmentAbsorber, IDocument, TextSegment
      • setSegments

        public void setSegments(TextSegmentCollection value)

        Represent setSegments method

        Parameters:
        value - TextSegmentCollection value
      • getPosition

        public Position getPosition()

        Gets text position for text, represented with TextFragment object.

        Returns:
        Position value
          The example demonstrates how to view placement of a text, represented by  TextFragment object.
        
           // Open document
           Document doc = new Document("D:\\Tests\\input.pdf");
        
           // Create TextFragmentAbsorber object to find all "hello world" text occurrences
           TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
           // Accept the absorber for first page
           doc.getPages().get(1).accept(absorber);
        
           // View text and placement info of first text occurrence
           TextFragment firstOccurrence = absorber.getTextFragments().get_Item(1);
        
           System.out.println("fragment text: " + firstOccurrence.getText()));
           System.out.println("fragment X indent: "+ firstOccurrence.getPosition().getXIndent()));
           System.out.println("fragment Y indent: "+ firstOccurrence.getPosition().getYIndent()));
        
         
        See Also:
        TextFragmentAbsorber, IDocument, TextSegment
      • setPosition

        public void setPosition(Position value)

        Sets text position for text, represented with TextFragment object.

        Parameters:
        value - Position value
                               The example demonstrates how to view placement of a text, represented by 
                               TextFragment
                               object.
        
                                // Open document
                                Document doc = new Document("D:\\Tests\\input.pdf");
        
                                // Create TextFragmentAbsorber object to find all "hello world" text occurrences
                                TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
        
                                // Accept the absorber for first page
                                doc.getPages().get(1).accept(absorber);
        
                                // View text and placement info of first text occurrence
                                TextFragment firstOccurrence = absorber.getTextFragments().get_Item(1);
        
                                System.out.println("fragment text: " + firstOccurrence.getText()));
                                System.out.println("fragment X indent: "+ firstOccurrence.getPosition().getXIndent()));
                                System.out.println("fragment Y indent: "+ firstOccurrence.getPosition().getYIndent()));
        
                              
        See Also:
        TextFragmentAbsorber, IDocument, TextSegment
      • getBaselinePosition

        public Position getBaselinePosition()

        Gets text position for text, represented with TextFragment object. The YIndent of the Position structure represents baseline coordinate of the text fragment.

        Returns:
        Position value
      • setBaselinePosition

        public void setBaselinePosition(Position value)

        Sets text position for text, represented with TextFragment object. The YIndent of the Position structure represents baseline coordinate of the text fragment.

        Parameters:
        value - Position value
      • getRectangle

        public Rectangle getRectangle()

        Gets rectangle of the TextFragment

        Returns:
        Rectangle object
      • setRectangle

        public void setRectangle(Rectangle value)

        Gets rectangle of the TextFragment

        Parameters:
        value - Rectangle instance
      • getPage

        public Page getPage()

        Gets page that contains the TextFragment
        The value can be null in case the TextFragment object doesn't belong to any page.

        Returns:
        Page object
      • getForm

        public XForm getForm()

        Gets form object that contains the TextFragment
        The value can be null in case the TextFragment object doesn't belong to a form.

        Returns:
        XForm value
      • getWrapLinesCount

        public int getWrapLinesCount()

        Gets wrap lines count for this paragraph(for pdf generation only)

        Returns:
        int value
      • setWrapLinesCount

        public void setWrapLinesCount(int value)

        Sets wrap lines count for this paragraph(for pdf generation only)

        Parameters:
        value - int value
      • getEndNote

        public Note getEndNote()

        Gets the paragraph end note.(for pdf generation only)

        Returns:
        Note value
      • setEndNote

        public void setEndNote(Note value)

        Sets the paragraph end note.(for pdf generation only)

        Parameters:
        value - Note value
      • getFootNote

        public Note getFootNote()

        Gets the paragraph foot note.(for pdf generation only)

        Returns:
        Note value
      • setFootNote

        public void setFootNote(Note value)

        Sets the paragraph foot note.(for pdf generation only)

        Parameters:
        value - Note value
      • isolateTextSegments

        public TextSegmentCollection isolateTextSegments(int startIndex,
                                                         int length)

        Gets TextSegment(s) representing specified part of the TextFragment text.

        Parameters:
        startIndex - Position in text from which new TextSegment(s) will start.
        length - Length of the text that will isolated into TextSegment(s).
        Returns:
        TextSegmentCollection containing text segments represeting text substring starting at a specifing position and having a specified length.
      • setMarkedContentProperties

        public void setMarkedContentProperties(String name,
                                               int id)
      • deepClone

        public Object deepClone()

        Clone the fragment.

        Specified by:
        deepClone in interface com.aspose.ms.System.ICloneable
        Overrides:
        deepClone in class BaseParagraph
        Returns:
        The cloned object
      • cloneWithSegments

        public Object cloneWithSegments()

        Clone the fragment with all segments.

        Returns:
        The cloned object