Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/embedpre.../assets/pdf/build
File: pdf.worker.js
if (flag & Y_SHORT_VECTOR) {
[26000] Fix | Delete
const y = glyf.getUint8(pos++);
[26001] Fix | Delete
lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;
[26002] Fix | Delete
yCoordinates.push(lastCoordinate);
[26003] Fix | Delete
} else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {
[26004] Fix | Delete
yCoordinates.push(lastCoordinate);
[26005] Fix | Delete
} else {
[26006] Fix | Delete
lastCoordinate += glyf.getInt16(pos);
[26007] Fix | Delete
pos += 2;
[26008] Fix | Delete
yCoordinates.push(lastCoordinate);
[26009] Fix | Delete
}
[26010] Fix | Delete
pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE);
[26011] Fix | Delete
if (endPtsOfContours[endPtsOfContoursIndex] === i) {
[26012] Fix | Delete
xCoordinates = allXCoordinates[endPtsOfContoursIndex];
[26013] Fix | Delete
endPtsOfContoursIndex++;
[26014] Fix | Delete
contours.push(new Contour({
[26015] Fix | Delete
flags: pointFlags,
[26016] Fix | Delete
xCoordinates,
[26017] Fix | Delete
yCoordinates
[26018] Fix | Delete
}));
[26019] Fix | Delete
yCoordinates = [];
[26020] Fix | Delete
pointFlags = [];
[26021] Fix | Delete
}
[26022] Fix | Delete
}
[26023] Fix | Delete
return new SimpleGlyph({
[26024] Fix | Delete
contours,
[26025] Fix | Delete
instructions
[26026] Fix | Delete
});
[26027] Fix | Delete
}
[26028] Fix | Delete
getSize() {
[26029] Fix | Delete
let size = this.contours.length * 2 + 2 + this.instructions.length;
[26030] Fix | Delete
let lastX = 0;
[26031] Fix | Delete
let lastY = 0;
[26032] Fix | Delete
for (const contour of this.contours) {
[26033] Fix | Delete
size += contour.flags.length;
[26034] Fix | Delete
for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {
[26035] Fix | Delete
const x = contour.xCoordinates[i];
[26036] Fix | Delete
const y = contour.yCoordinates[i];
[26037] Fix | Delete
let abs = Math.abs(x - lastX);
[26038] Fix | Delete
if (abs > 255) {
[26039] Fix | Delete
size += 2;
[26040] Fix | Delete
} else if (abs > 0) {
[26041] Fix | Delete
size += 1;
[26042] Fix | Delete
}
[26043] Fix | Delete
lastX = x;
[26044] Fix | Delete
abs = Math.abs(y - lastY);
[26045] Fix | Delete
if (abs > 255) {
[26046] Fix | Delete
size += 2;
[26047] Fix | Delete
} else if (abs > 0) {
[26048] Fix | Delete
size += 1;
[26049] Fix | Delete
}
[26050] Fix | Delete
lastY = y;
[26051] Fix | Delete
}
[26052] Fix | Delete
}
[26053] Fix | Delete
return size;
[26054] Fix | Delete
}
[26055] Fix | Delete
write(pos, buf) {
[26056] Fix | Delete
const spos = pos;
[26057] Fix | Delete
const xCoordinates = [];
[26058] Fix | Delete
const yCoordinates = [];
[26059] Fix | Delete
const flags = [];
[26060] Fix | Delete
let lastX = 0;
[26061] Fix | Delete
let lastY = 0;
[26062] Fix | Delete
for (const contour of this.contours) {
[26063] Fix | Delete
for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {
[26064] Fix | Delete
let flag = contour.flags[i];
[26065] Fix | Delete
const x = contour.xCoordinates[i];
[26066] Fix | Delete
let delta = x - lastX;
[26067] Fix | Delete
if (delta === 0) {
[26068] Fix | Delete
flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;
[26069] Fix | Delete
xCoordinates.push(0);
[26070] Fix | Delete
} else {
[26071] Fix | Delete
const abs = Math.abs(delta);
[26072] Fix | Delete
if (abs <= 255) {
[26073] Fix | Delete
flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR;
[26074] Fix | Delete
xCoordinates.push(abs);
[26075] Fix | Delete
} else {
[26076] Fix | Delete
xCoordinates.push(delta);
[26077] Fix | Delete
}
[26078] Fix | Delete
}
[26079] Fix | Delete
lastX = x;
[26080] Fix | Delete
const y = contour.yCoordinates[i];
[26081] Fix | Delete
delta = y - lastY;
[26082] Fix | Delete
if (delta === 0) {
[26083] Fix | Delete
flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;
[26084] Fix | Delete
yCoordinates.push(0);
[26085] Fix | Delete
} else {
[26086] Fix | Delete
const abs = Math.abs(delta);
[26087] Fix | Delete
if (abs <= 255) {
[26088] Fix | Delete
flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR;
[26089] Fix | Delete
yCoordinates.push(abs);
[26090] Fix | Delete
} else {
[26091] Fix | Delete
yCoordinates.push(delta);
[26092] Fix | Delete
}
[26093] Fix | Delete
}
[26094] Fix | Delete
lastY = y;
[26095] Fix | Delete
flags.push(flag);
[26096] Fix | Delete
}
[26097] Fix | Delete
buf.setUint16(pos, xCoordinates.length - 1);
[26098] Fix | Delete
pos += 2;
[26099] Fix | Delete
}
[26100] Fix | Delete
buf.setUint16(pos, this.instructions.length);
[26101] Fix | Delete
pos += 2;
[26102] Fix | Delete
if (this.instructions.length) {
[26103] Fix | Delete
new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);
[26104] Fix | Delete
pos += this.instructions.length;
[26105] Fix | Delete
}
[26106] Fix | Delete
for (const flag of flags) {
[26107] Fix | Delete
buf.setUint8(pos++, flag);
[26108] Fix | Delete
}
[26109] Fix | Delete
for (let i = 0, ii = xCoordinates.length; i < ii; i++) {
[26110] Fix | Delete
const x = xCoordinates[i];
[26111] Fix | Delete
const flag = flags[i];
[26112] Fix | Delete
if (flag & X_SHORT_VECTOR) {
[26113] Fix | Delete
buf.setUint8(pos++, x);
[26114] Fix | Delete
} else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {
[26115] Fix | Delete
buf.setInt16(pos, x);
[26116] Fix | Delete
pos += 2;
[26117] Fix | Delete
}
[26118] Fix | Delete
}
[26119] Fix | Delete
for (let i = 0, ii = yCoordinates.length; i < ii; i++) {
[26120] Fix | Delete
const y = yCoordinates[i];
[26121] Fix | Delete
const flag = flags[i];
[26122] Fix | Delete
if (flag & Y_SHORT_VECTOR) {
[26123] Fix | Delete
buf.setUint8(pos++, y);
[26124] Fix | Delete
} else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {
[26125] Fix | Delete
buf.setInt16(pos, y);
[26126] Fix | Delete
pos += 2;
[26127] Fix | Delete
}
[26128] Fix | Delete
}
[26129] Fix | Delete
return pos - spos;
[26130] Fix | Delete
}
[26131] Fix | Delete
scale(x, factor) {
[26132] Fix | Delete
for (const contour of this.contours) {
[26133] Fix | Delete
if (contour.xCoordinates.length === 0) {
[26134] Fix | Delete
continue;
[26135] Fix | Delete
}
[26136] Fix | Delete
for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {
[26137] Fix | Delete
contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor);
[26138] Fix | Delete
}
[26139] Fix | Delete
}
[26140] Fix | Delete
}
[26141] Fix | Delete
}
[26142] Fix | Delete
class CompositeGlyph {
[26143] Fix | Delete
constructor({
[26144] Fix | Delete
flags,
[26145] Fix | Delete
glyphIndex,
[26146] Fix | Delete
argument1,
[26147] Fix | Delete
argument2,
[26148] Fix | Delete
transf,
[26149] Fix | Delete
instructions
[26150] Fix | Delete
}) {
[26151] Fix | Delete
this.flags = flags;
[26152] Fix | Delete
this.glyphIndex = glyphIndex;
[26153] Fix | Delete
this.argument1 = argument1;
[26154] Fix | Delete
this.argument2 = argument2;
[26155] Fix | Delete
this.transf = transf;
[26156] Fix | Delete
this.instructions = instructions;
[26157] Fix | Delete
}
[26158] Fix | Delete
static parse(pos, glyf) {
[26159] Fix | Delete
const spos = pos;
[26160] Fix | Delete
const transf = [];
[26161] Fix | Delete
let flags = glyf.getUint16(pos);
[26162] Fix | Delete
const glyphIndex = glyf.getUint16(pos + 2);
[26163] Fix | Delete
pos += 4;
[26164] Fix | Delete
let argument1, argument2;
[26165] Fix | Delete
if (flags & ARG_1_AND_2_ARE_WORDS) {
[26166] Fix | Delete
if (flags & ARGS_ARE_XY_VALUES) {
[26167] Fix | Delete
argument1 = glyf.getInt16(pos);
[26168] Fix | Delete
argument2 = glyf.getInt16(pos + 2);
[26169] Fix | Delete
} else {
[26170] Fix | Delete
argument1 = glyf.getUint16(pos);
[26171] Fix | Delete
argument2 = glyf.getUint16(pos + 2);
[26172] Fix | Delete
}
[26173] Fix | Delete
pos += 4;
[26174] Fix | Delete
flags ^= ARG_1_AND_2_ARE_WORDS;
[26175] Fix | Delete
} else {
[26176] Fix | Delete
if (flags & ARGS_ARE_XY_VALUES) {
[26177] Fix | Delete
argument1 = glyf.getInt8(pos);
[26178] Fix | Delete
argument2 = glyf.getInt8(pos + 1);
[26179] Fix | Delete
} else {
[26180] Fix | Delete
argument1 = glyf.getUint8(pos);
[26181] Fix | Delete
argument2 = glyf.getUint8(pos + 1);
[26182] Fix | Delete
}
[26183] Fix | Delete
pos += 2;
[26184] Fix | Delete
}
[26185] Fix | Delete
if (flags & WE_HAVE_A_SCALE) {
[26186] Fix | Delete
transf.push(glyf.getUint16(pos));
[26187] Fix | Delete
pos += 2;
[26188] Fix | Delete
} else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {
[26189] Fix | Delete
transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));
[26190] Fix | Delete
pos += 4;
[26191] Fix | Delete
} else if (flags & WE_HAVE_A_TWO_BY_TWO) {
[26192] Fix | Delete
transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6));
[26193] Fix | Delete
pos += 8;
[26194] Fix | Delete
}
[26195] Fix | Delete
let instructions = null;
[26196] Fix | Delete
if (flags & WE_HAVE_INSTRUCTIONS) {
[26197] Fix | Delete
const instructionLength = glyf.getUint16(pos);
[26198] Fix | Delete
pos += 2;
[26199] Fix | Delete
instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);
[26200] Fix | Delete
pos += instructionLength;
[26201] Fix | Delete
}
[26202] Fix | Delete
return [pos - spos, new CompositeGlyph({
[26203] Fix | Delete
flags,
[26204] Fix | Delete
glyphIndex,
[26205] Fix | Delete
argument1,
[26206] Fix | Delete
argument2,
[26207] Fix | Delete
transf,
[26208] Fix | Delete
instructions
[26209] Fix | Delete
})];
[26210] Fix | Delete
}
[26211] Fix | Delete
getSize() {
[26212] Fix | Delete
let size = 2 + 2 + this.transf.length * 2;
[26213] Fix | Delete
if (this.flags & WE_HAVE_INSTRUCTIONS) {
[26214] Fix | Delete
size += 2 + this.instructions.length;
[26215] Fix | Delete
}
[26216] Fix | Delete
size += 2;
[26217] Fix | Delete
if (this.flags & 2) {
[26218] Fix | Delete
if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {
[26219] Fix | Delete
size += 2;
[26220] Fix | Delete
}
[26221] Fix | Delete
} else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {
[26222] Fix | Delete
size += 2;
[26223] Fix | Delete
}
[26224] Fix | Delete
return size;
[26225] Fix | Delete
}
[26226] Fix | Delete
write(pos, buf) {
[26227] Fix | Delete
const spos = pos;
[26228] Fix | Delete
if (this.flags & ARGS_ARE_XY_VALUES) {
[26229] Fix | Delete
if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {
[26230] Fix | Delete
this.flags |= ARG_1_AND_2_ARE_WORDS;
[26231] Fix | Delete
}
[26232] Fix | Delete
} else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {
[26233] Fix | Delete
this.flags |= ARG_1_AND_2_ARE_WORDS;
[26234] Fix | Delete
}
[26235] Fix | Delete
buf.setUint16(pos, this.flags);
[26236] Fix | Delete
buf.setUint16(pos + 2, this.glyphIndex);
[26237] Fix | Delete
pos += 4;
[26238] Fix | Delete
if (this.flags & ARG_1_AND_2_ARE_WORDS) {
[26239] Fix | Delete
if (this.flags & ARGS_ARE_XY_VALUES) {
[26240] Fix | Delete
buf.setInt16(pos, this.argument1);
[26241] Fix | Delete
buf.setInt16(pos + 2, this.argument2);
[26242] Fix | Delete
} else {
[26243] Fix | Delete
buf.setUint16(pos, this.argument1);
[26244] Fix | Delete
buf.setUint16(pos + 2, this.argument2);
[26245] Fix | Delete
}
[26246] Fix | Delete
pos += 4;
[26247] Fix | Delete
} else {
[26248] Fix | Delete
buf.setUint8(pos, this.argument1);
[26249] Fix | Delete
buf.setUint8(pos + 1, this.argument2);
[26250] Fix | Delete
pos += 2;
[26251] Fix | Delete
}
[26252] Fix | Delete
if (this.flags & WE_HAVE_INSTRUCTIONS) {
[26253] Fix | Delete
buf.setUint16(pos, this.instructions.length);
[26254] Fix | Delete
pos += 2;
[26255] Fix | Delete
if (this.instructions.length) {
[26256] Fix | Delete
new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);
[26257] Fix | Delete
pos += this.instructions.length;
[26258] Fix | Delete
}
[26259] Fix | Delete
}
[26260] Fix | Delete
return pos - spos;
[26261] Fix | Delete
}
[26262] Fix | Delete
scale(x, factor) {}
[26263] Fix | Delete
}
[26264] Fix | Delete
[26265] Fix | Delete
;// CONCATENATED MODULE: ./src/core/opentype_file_builder.js
[26266] Fix | Delete
[26267] Fix | Delete
[26268] Fix | Delete
[26269] Fix | Delete
[26270] Fix | Delete
[26271] Fix | Delete
[26272] Fix | Delete
[26273] Fix | Delete
[26274] Fix | Delete
[26275] Fix | Delete
function writeInt16(dest, offset, num) {
[26276] Fix | Delete
dest[offset] = num >> 8 & 0xff;
[26277] Fix | Delete
dest[offset + 1] = num & 0xff;
[26278] Fix | Delete
}
[26279] Fix | Delete
function writeInt32(dest, offset, num) {
[26280] Fix | Delete
dest[offset] = num >> 24 & 0xff;
[26281] Fix | Delete
dest[offset + 1] = num >> 16 & 0xff;
[26282] Fix | Delete
dest[offset + 2] = num >> 8 & 0xff;
[26283] Fix | Delete
dest[offset + 3] = num & 0xff;
[26284] Fix | Delete
}
[26285] Fix | Delete
function writeData(dest, offset, data) {
[26286] Fix | Delete
if (data instanceof Uint8Array) {
[26287] Fix | Delete
dest.set(data, offset);
[26288] Fix | Delete
} else if (typeof data === "string") {
[26289] Fix | Delete
for (let i = 0, ii = data.length; i < ii; i++) {
[26290] Fix | Delete
dest[offset++] = data.charCodeAt(i) & 0xff;
[26291] Fix | Delete
}
[26292] Fix | Delete
} else {
[26293] Fix | Delete
for (const num of data) {
[26294] Fix | Delete
dest[offset++] = num & 0xff;
[26295] Fix | Delete
}
[26296] Fix | Delete
}
[26297] Fix | Delete
}
[26298] Fix | Delete
const OTF_HEADER_SIZE = 12;
[26299] Fix | Delete
const OTF_TABLE_ENTRY_SIZE = 16;
[26300] Fix | Delete
class OpenTypeFileBuilder {
[26301] Fix | Delete
constructor(sfnt) {
[26302] Fix | Delete
this.sfnt = sfnt;
[26303] Fix | Delete
this.tables = Object.create(null);
[26304] Fix | Delete
}
[26305] Fix | Delete
static getSearchParams(entriesCount, entrySize) {
[26306] Fix | Delete
let maxPower2 = 1,
[26307] Fix | Delete
log2 = 0;
[26308] Fix | Delete
while ((maxPower2 ^ entriesCount) > maxPower2) {
[26309] Fix | Delete
maxPower2 <<= 1;
[26310] Fix | Delete
log2++;
[26311] Fix | Delete
}
[26312] Fix | Delete
const searchRange = maxPower2 * entrySize;
[26313] Fix | Delete
return {
[26314] Fix | Delete
range: searchRange,
[26315] Fix | Delete
entry: log2,
[26316] Fix | Delete
rangeShift: entrySize * entriesCount - searchRange
[26317] Fix | Delete
};
[26318] Fix | Delete
}
[26319] Fix | Delete
toArray() {
[26320] Fix | Delete
let sfnt = this.sfnt;
[26321] Fix | Delete
const tables = this.tables;
[26322] Fix | Delete
const tablesNames = Object.keys(tables);
[26323] Fix | Delete
tablesNames.sort();
[26324] Fix | Delete
const numTables = tablesNames.length;
[26325] Fix | Delete
let i, j, jj, table, tableName;
[26326] Fix | Delete
let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;
[26327] Fix | Delete
const tableOffsets = [offset];
[26328] Fix | Delete
for (i = 0; i < numTables; i++) {
[26329] Fix | Delete
table = tables[tablesNames[i]];
[26330] Fix | Delete
const paddedLength = (table.length + 3 & ~3) >>> 0;
[26331] Fix | Delete
offset += paddedLength;
[26332] Fix | Delete
tableOffsets.push(offset);
[26333] Fix | Delete
}
[26334] Fix | Delete
const file = new Uint8Array(offset);
[26335] Fix | Delete
for (i = 0; i < numTables; i++) {
[26336] Fix | Delete
table = tables[tablesNames[i]];
[26337] Fix | Delete
writeData(file, tableOffsets[i], table);
[26338] Fix | Delete
}
[26339] Fix | Delete
if (sfnt === "true") {
[26340] Fix | Delete
sfnt = string32(0x00010000);
[26341] Fix | Delete
}
[26342] Fix | Delete
file[0] = sfnt.charCodeAt(0) & 0xff;
[26343] Fix | Delete
file[1] = sfnt.charCodeAt(1) & 0xff;
[26344] Fix | Delete
file[2] = sfnt.charCodeAt(2) & 0xff;
[26345] Fix | Delete
file[3] = sfnt.charCodeAt(3) & 0xff;
[26346] Fix | Delete
writeInt16(file, 4, numTables);
[26347] Fix | Delete
const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);
[26348] Fix | Delete
writeInt16(file, 6, searchParams.range);
[26349] Fix | Delete
writeInt16(file, 8, searchParams.entry);
[26350] Fix | Delete
writeInt16(file, 10, searchParams.rangeShift);
[26351] Fix | Delete
offset = OTF_HEADER_SIZE;
[26352] Fix | Delete
for (i = 0; i < numTables; i++) {
[26353] Fix | Delete
tableName = tablesNames[i];
[26354] Fix | Delete
file[offset] = tableName.charCodeAt(0) & 0xff;
[26355] Fix | Delete
file[offset + 1] = tableName.charCodeAt(1) & 0xff;
[26356] Fix | Delete
file[offset + 2] = tableName.charCodeAt(2) & 0xff;
[26357] Fix | Delete
file[offset + 3] = tableName.charCodeAt(3) & 0xff;
[26358] Fix | Delete
let checksum = 0;
[26359] Fix | Delete
for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {
[26360] Fix | Delete
const quad = readUint32(file, j);
[26361] Fix | Delete
checksum = checksum + quad >>> 0;
[26362] Fix | Delete
}
[26363] Fix | Delete
writeInt32(file, offset + 4, checksum);
[26364] Fix | Delete
writeInt32(file, offset + 8, tableOffsets[i]);
[26365] Fix | Delete
writeInt32(file, offset + 12, tables[tableName].length);
[26366] Fix | Delete
offset += OTF_TABLE_ENTRY_SIZE;
[26367] Fix | Delete
}
[26368] Fix | Delete
return file;
[26369] Fix | Delete
}
[26370] Fix | Delete
addTable(tag, data) {
[26371] Fix | Delete
if (tag in this.tables) {
[26372] Fix | Delete
throw new Error("Table " + tag + " already exists");
[26373] Fix | Delete
}
[26374] Fix | Delete
this.tables[tag] = data;
[26375] Fix | Delete
}
[26376] Fix | Delete
}
[26377] Fix | Delete
[26378] Fix | Delete
;// CONCATENATED MODULE: ./src/core/type1_parser.js
[26379] Fix | Delete
[26380] Fix | Delete
[26381] Fix | Delete
[26382] Fix | Delete
[26383] Fix | Delete
[26384] Fix | Delete
[26385] Fix | Delete
[26386] Fix | Delete
[26387] Fix | Delete
[26388] Fix | Delete
[26389] Fix | Delete
[26390] Fix | Delete
const HINTING_ENABLED = false;
[26391] Fix | Delete
const COMMAND_MAP = {
[26392] Fix | Delete
hstem: [1],
[26393] Fix | Delete
vstem: [3],
[26394] Fix | Delete
vmoveto: [4],
[26395] Fix | Delete
rlineto: [5],
[26396] Fix | Delete
hlineto: [6],
[26397] Fix | Delete
vlineto: [7],
[26398] Fix | Delete
rrcurveto: [8],
[26399] Fix | Delete
callsubr: [10],
[26400] Fix | Delete
flex: [12, 35],
[26401] Fix | Delete
drop: [12, 18],
[26402] Fix | Delete
endchar: [14],
[26403] Fix | Delete
rmoveto: [21],
[26404] Fix | Delete
hmoveto: [22],
[26405] Fix | Delete
vhcurveto: [30],
[26406] Fix | Delete
hvcurveto: [31]
[26407] Fix | Delete
};
[26408] Fix | Delete
class Type1CharString {
[26409] Fix | Delete
constructor() {
[26410] Fix | Delete
this.width = 0;
[26411] Fix | Delete
this.lsb = 0;
[26412] Fix | Delete
this.flexing = false;
[26413] Fix | Delete
this.output = [];
[26414] Fix | Delete
this.stack = [];
[26415] Fix | Delete
}
[26416] Fix | Delete
convert(encoded, subrs, seacAnalysisEnabled) {
[26417] Fix | Delete
const count = encoded.length;
[26418] Fix | Delete
let error = false;
[26419] Fix | Delete
let wx, sbx, subrNumber;
[26420] Fix | Delete
for (let i = 0; i < count; i++) {
[26421] Fix | Delete
let value = encoded[i];
[26422] Fix | Delete
if (value < 32) {
[26423] Fix | Delete
if (value === 12) {
[26424] Fix | Delete
value = (value << 8) + encoded[++i];
[26425] Fix | Delete
}
[26426] Fix | Delete
switch (value) {
[26427] Fix | Delete
case 1:
[26428] Fix | Delete
if (!HINTING_ENABLED) {
[26429] Fix | Delete
this.stack = [];
[26430] Fix | Delete
break;
[26431] Fix | Delete
}
[26432] Fix | Delete
error = this.executeCommand(2, COMMAND_MAP.hstem);
[26433] Fix | Delete
break;
[26434] Fix | Delete
case 3:
[26435] Fix | Delete
if (!HINTING_ENABLED) {
[26436] Fix | Delete
this.stack = [];
[26437] Fix | Delete
break;
[26438] Fix | Delete
}
[26439] Fix | Delete
error = this.executeCommand(2, COMMAND_MAP.vstem);
[26440] Fix | Delete
break;
[26441] Fix | Delete
case 4:
[26442] Fix | Delete
if (this.flexing) {
[26443] Fix | Delete
if (this.stack.length < 1) {
[26444] Fix | Delete
error = true;
[26445] Fix | Delete
break;
[26446] Fix | Delete
}
[26447] Fix | Delete
const dy = this.stack.pop();
[26448] Fix | Delete
this.stack.push(0, dy);
[26449] Fix | Delete
break;
[26450] Fix | Delete
}
[26451] Fix | Delete
error = this.executeCommand(1, COMMAND_MAP.vmoveto);
[26452] Fix | Delete
break;
[26453] Fix | Delete
case 5:
[26454] Fix | Delete
error = this.executeCommand(2, COMMAND_MAP.rlineto);
[26455] Fix | Delete
break;
[26456] Fix | Delete
case 6:
[26457] Fix | Delete
error = this.executeCommand(1, COMMAND_MAP.hlineto);
[26458] Fix | Delete
break;
[26459] Fix | Delete
case 7:
[26460] Fix | Delete
error = this.executeCommand(1, COMMAND_MAP.vlineto);
[26461] Fix | Delete
break;
[26462] Fix | Delete
case 8:
[26463] Fix | Delete
error = this.executeCommand(6, COMMAND_MAP.rrcurveto);
[26464] Fix | Delete
break;
[26465] Fix | Delete
case 9:
[26466] Fix | Delete
this.stack = [];
[26467] Fix | Delete
break;
[26468] Fix | Delete
case 10:
[26469] Fix | Delete
if (this.stack.length < 1) {
[26470] Fix | Delete
error = true;
[26471] Fix | Delete
break;
[26472] Fix | Delete
}
[26473] Fix | Delete
subrNumber = this.stack.pop();
[26474] Fix | Delete
if (!subrs[subrNumber]) {
[26475] Fix | Delete
error = true;
[26476] Fix | Delete
break;
[26477] Fix | Delete
}
[26478] Fix | Delete
error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);
[26479] Fix | Delete
break;
[26480] Fix | Delete
case 11:
[26481] Fix | Delete
return error;
[26482] Fix | Delete
case 13:
[26483] Fix | Delete
if (this.stack.length < 2) {
[26484] Fix | Delete
error = true;
[26485] Fix | Delete
break;
[26486] Fix | Delete
}
[26487] Fix | Delete
wx = this.stack.pop();
[26488] Fix | Delete
sbx = this.stack.pop();
[26489] Fix | Delete
this.lsb = sbx;
[26490] Fix | Delete
this.width = wx;
[26491] Fix | Delete
this.stack.push(wx, sbx);
[26492] Fix | Delete
error = this.executeCommand(2, COMMAND_MAP.hmoveto);
[26493] Fix | Delete
break;
[26494] Fix | Delete
case 14:
[26495] Fix | Delete
this.output.push(COMMAND_MAP.endchar[0]);
[26496] Fix | Delete
break;
[26497] Fix | Delete
case 21:
[26498] Fix | Delete
if (this.flexing) {
[26499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function