Java’da dosyalardan, akışlardan ve bayt dizilerinden yazı tiplerini yükleme
Aspose.Font for Java kullanarak TrueType (TTF), OpenType (OTF), WOFF/WOFF2, Embedded OpenType (EOT), Type1 ve Compact Font Format (CFF) yazı tiplerini programlı olarak yükleyin ve başlatın. Yerel Java AWT’ye veya işletim sistemine bağlı yazı tipi yüklemesine ihtiyaç duymadan yazı tiplerini disk yollarından, sistem dosyalarından, bayt akışlarından veya bellekteki dizilerden sorunsuz bir şekilde yükleyin.
Aspose.Font for Java’da herhangi bir yazı tipini açmak ve üzerinde çalışmak için iki temel parametre gereklidir:
- Yazı Tipi Biçimi (FontType): Genel kategoriyi tanımlar (örneğin, FontType.TTF, FontType.Type1, FontType.CFF).
- Yazı Tipi İkili Kaynağı (StreamSource/FontFileDefinition): Diskte, bir veritabanında veya belge akışlarının içinde (örneğin, PDF/DOCX) bulunmasından bağımsız olarak temel ikili akışı kapsüller.
- Temel
FontDefinitionsınıfı bu parametreleri birbirine bağlayarakFont.open(fontDefinition) yönteminin birleşik bircom.aspose.font.Fontnesnesi döndürmesini sağlar.
java.io.File kullanarak yazı tipi nasıl yüklenir?
Yerel disk sürücülerinde depolanan yazı tiplerini FontFileDefinition(File file) kullanarak yüklemenin en kolay yoludur.
import com.aspose.font.*;
import java.io.File;
import java.nio.file.Paths;
public class LoadFontFromFile {
public static void main(String[] args) {
// Step 1: Define path to font file
String fontPath = Paths.get("data", "Montserrat-Regular.ttf").toString();
// Step 2: Create FontFileDefinition from java.io.File
FontFileDefinition fileDef = new FontFileDefinition(new File(fontPath));
// Step 3: Create FontDefinition (extension is auto-detected from FontFileDefinition)
FontDefinition fontDef = new FontDefinition(FontType.TTF, fileDef);
// Step 4: Open and load font instance
Font font = Font.open(fontDef);
System.out.println("Successfully loaded font: " + font.getFontName());
}
}FileSystemStreamSource kullanarak yazı tipi nasıl yüklenir?
Yazı tiplerini disk yollarından yüklerken biçimin doğru şekilde algılanması için dosya uzantılarının açıkça işlenmesini sağlar.
import com.aspose.font.*;
import java.nio.file.Paths;
public class LoadFontFromStreamSource {
public static void main(String[] args) {
String fontPath = Paths.get("data", "Montserrat-Regular.ttf").toString();
// Pass 'ttf' explicitly to ensure proper format mapping
FontFileDefinition fileDef = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));
FontDefinition fontDef = new FontDefinition(FontType.TTF, fileDef);
Font font = Font.open(fontDef);
System.out.println("Loaded Font Name: " + font.getFontName());
}
}Doğrudan bir akış kaynağından (FontFileDefinition olmadan) yazı tipi nasıl yüklenir?
Yükleme işlemini basitleştirmek için FileSystemStreamSource öğesini doğrudan FontDefinition öğesine aktarın.
import com.aspose.font.*;
import java.nio.file.Paths;
public class LoadFontDirectStream {
public static void main(String[] args) {
String fontPath = Paths.get("data", "Montserrat-Regular.ttf").toString();
// Provide FontType, file extension, and StreamSource directly
FontDefinition fontDef = new FontDefinition(FontType.TTF, "ttf", new FileSystemStreamSource(fontPath));
Font font = Font.open(fontDef);
System.out.println("Loaded Font Name: " + font.getFontName());
}
}Bellekteki bir bayt dizisinden (byte[]) yazı tipi nasıl yüklenir?
Veritabanlarından, ağ isteklerinden, bulut depolama alanından veya gömülü PDF/DOCX varlıklarından alınan yazı tiplerini ByteContentStreamSource kullanarak yüklemek için idealdir.
import com.aspose.font.*;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LoadFontFromByteArray {
public static void main(String[] args) throws Exception {
String fontPath = Paths.get("data", "Montserrat-Regular.ttf").toString();
// Read font binary data into byte array
byte[] fontBytes = Files.readAllBytes(Paths.get(fontPath));
// Initialize FontDefinition with ByteContentStreamSource
FontDefinition fontDef = new FontDefinition(FontType.TTF, "ttf", new ByteContentStreamSource(fontBytes));
// Open font from memory
Font font = Font.open(fontDef);
System.out.println("Loaded Font from Memory: " + font.getFontName());
}
}Kurulum ve Ayarlar
Aspose.Font for Java’yı Maven aracılığıyla projenize ekleyin.
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-font</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Yazı tiplerini yüklerken neden hem FontType hem de fileExtension parametrelerini iletmem gerekiyor?
FontType genel biçim ailesini (örneğin FontType.TTF) temsil eder, ancak bu aileye birden fazla farklı dosya biçimi (.ttf, .eot ve .ttc gibi) dahildir. fileExtension değerinin belirtilmesi, kitaplığın söz konusu kapsayıcı biçimi için doğru ayrıştırıcıyı kullanmasını sağlar.
2. Yazı tiplerini doğrudan veritabanı BLOB alanlarından yükleyebilir miyim?
Evet. BLOB verilerini byte[] dizisi olarak alın ve verileri diske yazmadan FontDefinition öğesini başlatmak için ByteContentStreamSource kullanın.
3. İkili veriler bir dosyanın içinde belirli bir uzaklıkta başladığında yazı tipini nasıl yükleyebilirim?
FontFileDefinition(String fileExtension, StreamSource streamSource, long offset) constructor öğesini kullanarak yazı tipi verilerinin başladığı bayt uzaklığını iletin.