PDF ye kaydederken belirli Unicode karakterlerinin yazı tipini değiştirin
Bazı Unicode karakterleri, kullanıcı tarafından belirtilen yazı tipiyle gösterilemez. Bu tür bir Unicode karakteri Non-breaking Hyphen (U+2011) adında ve Unicode numarası 8209’dur. Bu karakter Times New Roman ile görüntülenemez, ancak Arial Unicode MS gibi diğer yazı tipleriyle görüntülenebilir.
Böyle bir karakter, belirli bir yazı tipinde (örneğin Times New Roman) bulunursa, Aspose.Cells, bu karakterin görüntülenemeyen yazı tipi gibi Arial Unicode MS gibi bir yazı tipine değiştirir.
Ancak, bazı kullanıcılar için bu istenmeyen bir davranıştır ve yalnızca belirli karakterin yazı tipinin tüm kelimenin veya cümlenin yazı tipini değiştirmek yerine yalnızca değişmesini isterler.
Bu sorunla başa çıkmak için Aspose.Cells, yalnızca görüntülenemeyen belirli karakterin yazı tipinin değiştirilmesi için PdfSaveOptions.IsFontSubstitutionCharGranularity özelliğini true olarak ayarlamalıdır. Kelimenin geri kalanının veya cümlenin orijinal yazı tipinde kalması gerekir.
Örnek
Aşağıdaki ekran görüntüsü, aşağıdaki örnek kodu ile oluşturulan iki PDF’yi karşılaştırır.
Birincisi PdfSaveOptions.IsFontSubstitutionCharGranularity özelliğini ayarlamadan oluşturulmuştur ve diğeri PdfSaveOptions.IsFontSubstitutionCharGranularity özelliğini true olarak ayarladıktan sonra oluşturulmuştur.
İlk Pdf’de, tüm cümlenin yazı tipi Non-Breaking Hyphen yüzünden Times New Roman’dan Arial Unicode MS’ye değişmiştir. İkinci Pdf’de ise yalnızca Non-Breaking Hyphen’ın yazı tipi değişmiştir.
İlk Pdf Dosyası |
---|
![]() |
İkinci Pdf Dosyası |
---|
![]() |
Örnek Kod
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook object | |
Workbook workbook = new Workbook(); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Access cells | |
Cell cell1 = worksheet.Cells["A1"]; | |
Cell cell2 = worksheet.Cells["B1"]; | |
// Set the styles of both cells to Times New Roman | |
Style style = cell1.GetStyle(); | |
style.Font.Name = "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" + Convert.ToChar(8209) + " with Non-Breaking Hyphen"); | |
// Autofit the columns | |
worksheet.AutoFitColumns(); | |
// Save to Pdf without setting PdfSaveOptions.IsFontSubstitutionCharGranularity | |
workbook.Save(dataDir + "SampleOutput_out.pdf"); | |
// Save to Pdf after setting PdfSaveOptions.IsFontSubstitutionCharGranularity to true | |
PdfSaveOptions opts = new PdfSaveOptions(); | |
opts.IsFontSubstitutionCharGranularity = true; | |
workbook.Save(dataDir + "SampleOutput2_out.pdf", opts); |