public final class Font extends Object implements Cloneable
Represents font object.
The example demonstrates how to search text on first page and change font of a first search occurrence. // Open document Document doc = new Document("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_Item(1).accept(absorber); // Create font and mark it to be embedded Font font = FontRepository.findFont("Arial"); font.isEmbedded(true); // Change font of the first text occurrence absorber.getTextFragments().get_Item(1).getTextState().setFont( font); // Save document doc.save("output.pdf");
TextFragmentAbsorber
,
FontRepository
,
IDocument
Modifier and Type | Method and Description |
---|---|
boolean |
doesFontContainAllCharacters(String value)
Determines if the font contains specified chars
|
String |
getDecodedFontName()
Sometimes PDF fonts(usually Chinese/Japanese/Korean fonts) could have specificical font name.
|
String |
getFontName()
Gets font name of the
Font object. |
IFontOptions |
getFontOptions()
Useful properties to tune Font behavior
|
com.aspose.fonts.IFont |
getIFont()
System font object.
|
com.aspose.pdf.engine.commondata.text.fonts.IPdfFont |
getIPdfFont()
Pdf font object.
|
String |
getLastFontEmbeddingError()
An objective of this method - to return description of error if an attempt to embed font was
failed.
|
String |
getType()
The font's type Name
|
boolean |
isAccessible()
Gets indicating whether the font is present (installed) in the system.
|
boolean |
isEmbedded()
Gets a value that indicates whether the font is embedded.
|
boolean |
isSubset()
Gets a value that indicates whether the font is a subset.
|
double |
measureString(String str,
float fontSize)
Measures the string.
|
void |
save(OutputStream stream)
Saves the font into the stream.
|
void |
setEmbedded(boolean value)
Sets a value that indicates whether the font is embedded.
|
void |
setSubset(boolean value)
Sets a value that indicates whether the font is a subset.
|
public String getType()
public String getFontName()
Gets font name of the Font
object.
The example demonstrates how to search text on first page and view font name of a first text occurrence. // 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_Item(1).accept(absorber); // View font name of first text occurrence System.out.println(absorber.getTextFragments().get_Item(1).getTextState().getFont().getFontName());
TextFragmentAbsorber
,
IDocument
public String getDecodedFontName()
Sometimes PDF fonts(usually Chinese/Japanese/Korean fonts) could have specificical font name.
This name is value of PDF font property "BaseFont" and sometimes this property
could be represented in hexademical form. If read this name directly it could be represented
in non-readable form. To get readable form it's necessary to decode font's name by
rules specifical for this font.
This property returns decoded font name, so use it for cases when you meet
with a non-readable FontName
.
If property FontName
has readable form this property will be the same as
FontName
, so you can use this property for any cases when you need to
get font name in a readable form.
public String getLastFontEmbeddingError()
An objective of this method - to return description of error if an attempt to embed font was failed. If there are no error cases it returns empty string.
public boolean isEmbedded()
Gets a value that indicates whether the font is embedded.
The following example demonstrates how to find a font, mark it as embedded, search text on the document's page and replace the text font. // Create font and mark it to be embedded com.aspose.pdf.Font font = com.aspose.pdf.FontRepository.findFont("Arial"); font.isEmbedded ( true); // open document com.aspose.pdf.Document doc = new com.aspose.pdf.Document("D:\\Tests\\input.pdf"); // create TextFragmentAbsorber object to find all "hello world" text occurrences com.aspose.pdf.TextFragmentAbsorber absorber = new com.aspose.pdf.TextFragmentAbsorber("hello world"); // accept the absorber for first page doc.getPages().get_Item(1).accept(absorber); // change font for the first text occurrence absorber.getTextFragments().get_Item(1).getTextState().setFont(font); // save document doc.save("D:\\Tests\\output.pdf");
TextFragmentAbsorber
,
FontRepository
,
IDocument
public void setEmbedded(boolean value)
Sets a value that indicates whether the font is embedded.
value
- boolean valuepublic boolean isSubset()
Gets a value that indicates whether the font is a subset.
The example demonstrates how to search text on first page and get the value that indicates whether the font is a subset. // 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_Item(1).accept(absorber); // View font's IsSubset value of first text occurrence if(absorber.TextFragments[1].TextState.Font.IsSubset) System.out.println("the font is a subset");
TextFragmentAbsorber
,
IDocument
public void setSubset(boolean value)
Sets a value that indicates whether the font is a subset.
value
- boolean valuepublic boolean isAccessible()
Gets indicating whether the font is present (installed) in the system.
The example demonstrates how to search text on first page and get the value that indicates whether the font is installed in the system. // 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_Item(1).accept(absorber); // View font's IsSubset value of first text occurrence if (absorber.getTextFragments().get_Item(1).getTextState().getFont() .isAccessible()) System.out.println("the font is installed in the system");
Some operations are not available with fonts that could not be found in the system.
public IFontOptions getFontOptions()
Useful properties to tune Font behavior
public com.aspose.pdf.engine.commondata.text.fonts.IPdfFont getIPdfFont()
Pdf font object.
For internal usage only
public com.aspose.fonts.IFont getIFont()
System font object.
For internal usage only
public void save(OutputStream stream)
Saves the font into the stream. Note that the font is saved to intermediate TTF format intended to be used in a converted copy of the original document only. The font file is not intended to be used outside the original document context.
stream
- OutputStream to save the font.public double measureString(String str, float fontSize)
Measures the string.
str
- The string.fontSize
- Font size.public boolean doesFontContainAllCharacters(String value)
Determines if the font contains specified chars
value
- String value