PDF ye kaydederken belirli Unicode karakterlerinin yazı tipini değiştirin
Bazı Unicode karakterleri, kullanıcı tarafından belirtilen font tarafından görüntülenemez. Bu tür bir Unicode karakter Bilinmeyen Kesme (U+2011)‘dır ve Unicode numarası 8209’dur. Bu karakter Times New Roman ile görüntülenemez, ancak Arial Unicode MS gibi diğer fontlarla görüntülenebilir.
Böyle bir karakter belirli bir fontta, örneğin Times New Roman’da meydana geldiğinde, Aspose.Cells bu karakteri görüntüleyebilen Arial Unicode MS gibi bir fonta değiştirir. Ancak, bu, bazı kullanıcılar için istenmeyen bir davranıştır ve yalnızca belirli karakterin fontunu değiştirmek istemektedirler.
Bu sorunu ele almak için, Aspose.Cells {0} özelliğini sağlar ve yalnızca görüntülenemeyen özel karakterin fontunun değiştirilmesi ve kelimenin/paragrafın geri kalanı için aynı fontun kalması gerektiği için true olarak ayarlanmalıdır.
Örnek
Örnek
Aşağıdaki ekran görüntüsü, aşağıdaki örnek kod tarafından oluşturulan iki çıktı PDF’yi karşılaştırır. Birincisi PdfSaveOptions.setFontSubstitutionCharGranularity() özelliği ayarlanmadan oluşturulmuştu ve diğeri PdfSaveOptions.setFontSubstitutionCharGranularity() özelliğine true olarak ayarlandıktan sonra oluşturulmuştu. Önceki PDF’de, Tüm cümle Times New Roman’dan Arial Unicode MS’ye dönüştü çünkü Bilinmeyen Kesme nedeniyle. İkinci PDF’de ise, yalnızca Bilinmeyen Kesme’nin fontu değişmişti.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(ChangeFontonspecificUnicodecharacters.class); | |
// Create workbook object | |
Workbook workbook = new Workbook(); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Access cells | |
Cell cell1 = worksheet.getCells().get("A1"); | |
Cell cell2 = worksheet.getCells().get("B1"); | |
// Set the styles of both cells to Times New Roman | |
Style style = cell1.getStyle(); | |
style.getFont().setName("Times New Roman"); | |
cell1.setStyle(style); | |
cell2.setStyle(style); | |
// Put the values inside the cell | |
cell1.putValue("Hello without Non-Breaking Hyphen"); | |
cell2.putValue("Hello" + (char) (8209) + " with Non-Breaking Hyphen"); | |
// Autofit the columns | |
worksheet.autoFitColumns(); | |
// Save to Pdf without setting PdfSaveOptions.IsFontSubstitutionCharGranularity | |
workbook.save(dataDir + "output.pdf"); | |
// Save to Pdf after setting PdfSaveOptions.IsFontSubstitutionCharGranularity to true | |
PdfSaveOptions opts = new PdfSaveOptions(); | |
opts.setFontSubstitutionCharGranularity(true); | |
workbook.save(dataDir + "output2.pdf", opts); | |