Ändern Sie die Schriftart nur für die spezifischen Unicode-Zeichen, während Sie auf PDF speichern
Einige Unicode-Zeichen können von der benutzerdefinierten Schriftart nicht angezeigt werden. Ein solches Unicode-Zeichen istNicht brechender Bindestrich (U+2011) und seine Unicode-Nummer ist 8209. Dieses Zeichen kann nicht mit dargestellt werdenTimes New Roman , aber es kann mit anderen Schriftarten wie angezeigt werdenArial Unicode-MS.
Wenn ein solches Zeichen in einem Wort oder Satz in einer bestimmten Schriftart wie Times New Roman vorkommt, ändert Aspose.Cells die Schriftart des gesamten Worts oder Satzes in eine Schriftart, die dieses Zeichen wie Arial Unicode für MS anzeigen könnte.
Dies ist jedoch für einige Benutzer ein unerwünschtes Verhalten, und sie möchten, dass nur die Schriftart dieses bestimmten Zeichens geändert werden muss, anstatt die Schriftart des gesamten Worts oder Satzes zu ändern.
Um dieses Problem zu lösen, stellt Aspose.Cells die PdfSaveOptions.IsFontSubstitutionCharGranularity-Eigenschaft bereit, die auf „true“ gesetzt werden sollte, sodass nur die Schriftart eines bestimmten Zeichens, das nicht anzeigbar ist, in eine anzeigbare Schriftart geändert werden kann und der Rest des Wortes oder Satzes in der ursprünglichen Schriftart bleiben soll.
Beispiel
Der folgende Screenshot vergleicht die beiden Ausgabe-PDFs, die durch den unten stehenden Beispielcode generiert wurden.
Eine wird generiert, ohne die PdfSaveOptions.IsFontSubstitutionCharGranularity-Eigenschaft festzulegen, und die andere wurde generiert, nachdem die PdfSaveOptions.IsFontSubstitutionCharGranularity-Eigenschaft auf „true“ festgelegt wurde.
Wie Sie im ersten Pdf sehen können, hat sich die Schriftart des gesamten Satzes aufgrund von Non-Breaking Hyphen von Times New Roman zu Arial Unicode MS geändert. Während sich im zweiten Pdf nur die Schriftart von Non-Breaking Hyphen geändert hat.
Erste Pdf-Datei |
---|
![]() |
Zweite PDF-Datei |
---|
![]() |
Beispielcode
// 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); |