تغيير الخط على الأحرف اليونيكود المحددة فقط عند الحفظ إلى PDF باستخدام Node.js عبر C++

مثال

الصورة المرفقة تقارن بين ملفي PDF الناتجين من الشفرة النموذجية التالية.

يتم إنشاء أحد الملفين بدون ضبط خاصية PdfSaveOptions.isFontSubstitutionCharGranularity والآخر بعد تعيينها على true.

كما ترى في أول ملف PDF، تغير خط الجملة بأكملها من Times New Roman إلى Arial Unicode MS بسبب الهايبن غير القابل للكسر. بينما في الملف الثاني، تغير خط الهايبن غير القابل للكسر فقط.

ملف PDF الأول
todo:image_alt_text
ملف PDF الثاني
todo:image_alt_text

الكود المثالي

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");

// Create workbook object
const workbook = new AsposeCells.Workbook();

// Access the first worksheet
const worksheet = workbook.getWorksheets().get(0);

// Access cells
const cell1 = worksheet.getCells().get("A1");
const cell2 = worksheet.getCells().get("B1");

// Set the styles of both cells to Times New Roman
let 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" + String.fromCharCode(8209) + " with Non-Breaking Hyphen");

// Autofit the columns
worksheet.autoFitColumns();

// Save to Pdf without setting PdfSaveOptions.IsFontSubstitutionCharGranularity
workbook.save(path.join(dataDir, "SampleOutput_out.pdf"));

// Save to Pdf after setting PdfSaveOptions.IsFontSubstitutionCharGranularity to true
const opts = new AsposeCells.PdfSaveOptions();
opts.setIsFontSubstitutionCharGranularity(true);
workbook.save(path.join(dataDir, "SampleOutput2_out.pdf"), opts);