PDF'e kaydederken Yazı Tipini yalnızca belirli Unicode karakterlerinde değiştirin
Bazı Unicode karakterler, kullanıcı tarafından belirlenen yazı tipi tarafından görüntülenemez. Böyle bir Unicode karakterBölünemez Tire (U+2011) ve Unicode numarası 8209’dur. Bu karakter ile görüntülenemez.Times New Roman , ancak diğer yazı tipleriyle birlikte görüntülenebilir.Arial Unicode MS.
Böyle bir karakter, Times New Roman gibi belirli bir yazı tipindeki bir kelime veya cümlenin içinde geçtiğinde, Aspose.Cells, tüm kelimenin veya cümlenin yazı tipini, bu karakteri Arial Unicode gibi MS’e görüntüleyebilecek yazı tipine değiştirir.
Ancak bu, bazı kullanıcılar için istenmeyen bir davranıştır ve tüm kelime veya cümlenin yazı tipini değiştirmek yerine yalnızca belirli bir karakterin yazı tipinin değiştirilmesini isterler.
Bu sorunu çözmek için Aspose.Cells, PdfSaveOptions.IsFontSubstitutionCharGranularity özelliğini sağlar; bu özellik, yalnızca görüntülenemeyen belirli bir karakterin yazı tipinin görüntülenebilir yazı tipine dönüştürülmesi ve kelimenin veya cümlenin geri kalanının orijinal yazı tipinde kalması için doğru olarak ayarlanması gerekir.
Örnek vermek
Aşağıdaki ekran görüntüsü, aşağıdaki örnek kod tarafından oluşturulan iki çıktı PDF’sini karşılaştırır.
Biri PdfSaveOptions.IsFontSubstitutionCharGranularity özelliği ayarlanmadan, diğeri ise PdfSaveOptions.IsFontSubstitutionCharGranularity özelliği true olarak ayarlandıktan sonra oluşturuldu.
İlk Pdf’de görebileceğiniz gibi, tüm cümlenin yazı tipi, Kırılmayan Tire nedeniyle Times New Roman’dan Arial Unicode MS’ye değişti. İkinci Pdf’de ise sadece Kırılmaz Tire’nin yazı tipi değişmiştir.
İlk Pdf Dosyası |
---|
![]() |
İkinci Pdf Dosyası |
---|
![]() |
Basit 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); |