Java’da CFF yazı tiplerini yükleme ve kaydetme
Aspose.Font for Java ile PostScript tabanlı Compact Font Format (.cff) dosyalarını program aracılığıyla işleyin. CFF yazı tipi ikili verilerini yerel dosya yollarından veya bellekteki bayt dizilerinden açın, CffFont sınıfını kullanarak yazı tipi yapılarını inceleyin ve değiştirilmiş yazı tipi verilerini harici bağımlılıklar olmadan diske veya akışlara geri kaydedin.
Compact Font Format (CFF), PostScript Type 1 yazı tipi ana hatlarının kompakt bir gösterimidir ve PDF belgelerinde, OpenType CFF (.otf) yazı tiplerinde ve dijital yayıncılık iş akışlarında yaygın olarak kullanılır. Aspose.Font for Java ile geliştiriciler şunları yapabilir:
- Bellekte yazı tipi işleme: Geçici dosyaları diske yazmadan CFF yazı tipi baytlarını doğrudan veritabanı BLOB’larından, PDF akışlarından veya bulut depolama alanından yükleyin.
- Kompakt depolama yönetimi: Optimize edilmiş belge gömme işlemi için düşük alan kullanan PostScript ana hat yazı tipi yapılarını yönetin.
- Esnek Dosya İşlemleri: CFF yazı tipi dosyalarını
FileSystemStreamSourceveyaByteContentStreamSourcekullanarak okuyun veCffFont.save()aracılığıyla dışa aktarın.
CFF yazı tipi işleme iş akışı
CFF’yi diskten yükleme - (Dosya yolu (.cff)) ve FontDefinition + FileSystemStreamSource kullanır
CFF’yi bellekten yükleme - İkili bayt dizisi (byte[]) ve FontDefinition + ByteContentStreamSource kullanır
CFF verilerini inceleme/düzenleme - CffFont nesnesini ve CffFont.getFontName(), CffFont.getNumGlyphs() vb. kullanır.
CFF’yi diske kaydetme - CffFont nesnesini ve CffFont.getFontName(), CffFont.getNumGlyphs() vb. kullanır.
Java'da diskteki bir yazı tipinden CFF nasıl yüklenir?
FontType.CFF ve FileSystemStreamSource içeren bir FontDefinition tanımlayarak bir .cff yazı tipi dosyası yükleyin.
import com.aspose.font.*;
public class LoadCffFontFromDisk {
public static void main(String[] args) {
// Step 1: Specify path to the .cff font file
String fileName = "path/to/OpenSans-Regular.cff";
// Step 2: Initialize FontDefinition with CFF format and FileSystemStreamSource
FontDefinition fd = new FontDefinition(
FontType.CFF,
new FontFileDefinition("cff", new FileSystemStreamSource(fileName))
);
// Step 3: Open the CFF font
CffFont font = (CffFont) Font.open(fd);
// Step 4: Verify font properties
System.out.println("Font Name: " + font.getFontName());
System.out.println("Glyph Count: " + font.getNumGlyphs());
System.out.println("CFF Font successfully loaded from disk.");
}
}Bir bayt dizisinden (`byte[]`) CFF yazı tipi nasıl yüklenir?
Bir yazı tipini belleğe yükledikten ve veri ayıklama veya değiştirme işlemleri gerçekleştirdikten sonra, yazı tipini yerel disk depolama alanına geri kaydedebilir veya bir çıkış bayt akışına yazabilirsiniz.
import com.aspose.font.*;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LoadCffFontFromByteArray {
public static void main(String[] args) throws Exception {
String fileName = "path/to/OpenSans-Regular.cff";
// Step 1: Read font file bytes into memory
byte[] fontMemoryData = Files.readAllBytes(Paths.get(fileName));
// Step 2: Create FontDefinition using ByteContentStreamSource
FontDefinition fd = new FontDefinition(
FontType.CFF,
new FontFileDefinition("cff", new ByteContentStreamSource(fontMemoryData))
);
// Step 3: Open font instance from byte array
CffFont font = (CffFont) Font.open(fd);
System.out.println("Loaded CFF Font Name from memory: " + font.getFontName());
}
}CFF yazı tipleri nasıl değiştirilir ve diske kaydedilir?
Bir CffFont örneğini yükledikten ve üzerinde çalıştıktan sonra, save() yöntemini kullanarak yazı tipi dosyasını yeni bir konuma yazın.
import com.aspose.font.*;
import java.nio.file.Files;
import java.nio.file.Paths;
public class SaveCffFontToDisk {
public static void main(String[] args) throws Exception {
String inputPath = "path/to/OpenSans-Regular.cff";
String outputPath = "path/to/OpenSans-Regular_out.cff";
// Step 1: Load font from byte array
byte[] fontMemoryData = Files.readAllBytes(Paths.get(inputPath));
FontDefinition fd = new FontDefinition(
FontType.CFF,
new FontFileDefinition("cff", new ByteContentStreamSource(fontMemoryData))
);
CffFont font = (CffFont) Font.open(fd);
System.out.println("Loaded CFF Font: " + font.getFontName());
// Step 2: Work with font data (inspect metrics, glyphs, or update properties)
// Step 3: Save CFF font back to disk
font.save(outputPath);
System.out.println("CFF Font successfully saved to: " + outputPath);
}
}Kurulum ve Ayarlar
Aspose.Font for Java’yı Maven aracılığıyla projenize dahil edin.
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. OpenType CFF (.otf) ile bağımsız CFF (.cff) arasındaki fark nedir?
Bağımsız bir .cff dosyası, OpenType tablo sarmalayıcıları olmadan ham PostScript yazı tipi programı verilerini içerir. CFF ana hatlarına sahip bir .otf dosyası, .cff akışını standart OpenType tablo yapıları (CFF, cmap, head vb.) içine sarar. Aspose.Font for Java hem bağımsız CFF hem de OpenType CFF biçimlerini destekler.
2. CFF yazı tiplerini Java’da TTF veya WOFF gibi diğer yazı tipi biçimlerine dönüştürebilir miyim?
Evet. Bir CffFont örneğine yüklendikten sonra Aspose.Font for Java, yazı tipi verilerini TTF, WOFF veya WOFF2 gibi diğer hedef biçimlere dönüştürmenize olanak tanıyan işleme ve kodlama özellikleri sağlar.
3. Değiştirilmiş bir CffFont öğesini doğrudan bir OutputStream öğesine kaydedebilir miyim?
Evet. font.save(fileName) yöntemine bir dosya yolu dizesi iletmenin yanı sıra, ikili yazı tipi verilerini doğrudan ağ veya bellek akışlarına yazmak için bir java.io.OutputStream iletebilirsiniz.