fix: 增强DOCX字体实际使用门禁

This commit is contained in:
SkyJourney
2026-08-03 11:32:06 +08:00
parent f0fff7f726
commit a094dabf02
7 changed files with 226 additions and 9 deletions
+23 -2
View File
@@ -20,6 +20,7 @@ import {
} from "../packages/preview-engine/dist/index.js";
import {
createDocxLayoutVisualMatrixCases,
getDocxFontGateFailures,
readBundledThemeMatrixDefinitions,
summarizeDocxLayoutVisualMatrix
} from "./docx-layout-visual-matrix-cases.mjs";
@@ -568,14 +569,26 @@ for (const caseDefinition of selectedCases) {
writeReportArtifacts(rasterDirectory, "wps", wpsReport);
writeReportArtifacts(rasterDirectory, "office", officeReport);
const currentFailures = [
const currentFailures = [...new Set([
...pageGeometryFailures(chromium, caseDefinition, "Chromium"),
...pageGeometryFailures(word, caseDefinition, "Microsoft Word"),
...pageGeometryFailures(wps, caseDefinition, "WPS Writer"),
...getDocxFontGateFailures({
theme: themeDefinitions.find((theme) => theme.id === caseDefinition.themeId),
inspection: result.docx.inspection,
renderedFonts: word.fonts,
engine: "word"
}),
...getDocxFontGateFailures({
theme: themeDefinitions.find((theme) => theme.id === caseDefinition.themeId),
inspection: result.docx.inspection,
renderedFonts: wps.fonts,
engine: "wps"
}),
...reportGateFailures(wordReport, "Chromium/Word"),
...reportGateFailures(wpsReport, "Chromium/WPS"),
...reportGateFailures(officeReport, "Word/WPS")
];
])];
gateFailures.push(
...currentFailures.map((failure) => `${caseDefinition.id}: ${failure}`)
);
@@ -595,6 +608,14 @@ for (const caseDefinition of selectedCases) {
word: word.pageCount,
wps: wps.pageCount
},
fonts: {
declared: themeDefinitions.find((theme) => theme.id === caseDefinition.themeId)?.docxFontFaces ?? [],
embeddedNames: result.docx.inspection.embeddedFontNames,
embeddedPartCount: result.docx.inspection.embeddedFontPartCount,
chromium: chromium.fonts,
word: word.fonts,
wps: wps.fonts
},
editableParagraphCount: editable.paragraphs.length,
reports: {
word: reportSummary(wordReport),