`;
var opissan = `День рождения журнала «Крокодил»`;
var text1 = newMessage
.replace(/"/g, '"')
.replace(/ /g, '')
.replace(/«/g, '"')
.replace(/»/g, '"')
.replace(/—/g, '-')
.replace(/–/g, '-')
.replace(/“/g, '"')
.replace(/„/g, '"')
.replace(/…/g, '...')
.replace(/•/g, '•')
.replace(/ /g, '')
.replace(/<\/b>/g, '')
.replace(/≈/g, '≈')
.replace(/&sup/g, '^')
.replace(//g, '')
.replace(/<\/strong>/g, '')
.replace(//g, '')
.replace(/×/g, '×')
.replace(/&rho/g, 'ρ')
.replace(//g, '')
.replace(/<\/p>$/, '')
.replace(/ <\/p>/g, '')
.replace(/<\/span>/g, '');
var regex = /<(?!\/?(b|\/p))[^>]+>/g;
var text = text1.replace(regex, '');
const lineWidth = 630; // Ширина листа в пикселях
const lines = calculateLines(newMessage, lineWidth);
var brCount = (text.match(/ /g) || []).length;
var pCount = (text.match(/<\/p>/g) || []).length;
function calculateLines(text, lineWidth) {
let lineCount = 1;
let currentLineWidth = 0;
const words = text.split(' ');
words.forEach(word => {
if (word === '') {
lineCount++;
currentLineWidth = 0;
} else {
const wordWidth = word.length * 8; // assuming average character width is 8px (adjust as needed)
if (currentLineWidth + wordWidth > lineWidth) {
lineCount++;
currentLineWidth = wordWidth;
} else {
currentLineWidth += wordWidth + 8; // adding space width (adjust as needed)
}
}
});
return lineCount;
}
var imageContainers = [];
for (var i = 1; i <= 8; i++) {
imageContainers.push(document.getElementById('image-container' + i));
}
var canvasWidth = 850; // Ширина каждого холста
var canvasHeight = (lines + pCount + 1) * 33; // Высота каждого холста
var lineHeight = 30; // Высота строки
var linesPerCanvas = lines + 1 + brCount + pCount; // Количество строк на одном холсте
var lineCount = 0; // Счетчик строк
var canvasIndex = 0; // Индекс текущего холста
var currentX = 10; // Текущая X-координата
var currentY = 30; // Текущая Y-координата
// Массив для хранения изображений
var images = [];
function createNewCanvas() {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = canvasWidth;
canvas.height = canvasHeight;
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.font = '22px Arial';
var wordHeight = 20;
var columns = Math.ceil(canvas.width / wordWidth);
var rows = Math.ceil(canvas.height / wordHeight);
var originalAlpha = ctx.globalAlpha;
ctx.globalAlpha = originalAlpha;
return { canvas: canvas, ctx: ctx };
}
function addParagraph(container, text) {
var p = document.createElement('p');
p.innerHTML = text;
container.appendChild(p);
}
var canvasData = createNewCanvas();
var canvas = canvasData.canvas;
var ctx = canvasData.ctx;
var paragraphs = text.split(' ');
for (var i = 0; i < paragraphs.length; i++) {
var paragraph = paragraphs[i].trim(); // Удаляем пробельные символы из абзаца
if (paragraph.trim() !== '') { // Пропускаем пустые абзацы
var words = paragraph.split(' ');
for (var l = 0; l < words.length; l++) {
var word = words[l];
var wordWidth = ctx.measureText(word).width;
if (currentX + wordWidth > canvasWidth - 10) {
currentX = 10;
currentY += lineHeight; // Переносим на новую строку
lineCount++; // Увеличиваем счетчик строк
if (lineCount % linesPerCanvas === 0) {
images.push(canvas.toDataURL());
canvasData = createNewCanvas();
canvas = canvasData.canvas;
ctx = canvasData.ctx;
currentY = 30; // Сбрасываем текущую Y-координату
canvasIndex++;
}
}
ctx.fillText(word, currentX, currentY);
currentX += wordWidth + ctx.measureText(' ').width;
}
}
currentX = 10; // Сбрасываем текущую X-координату в начало строки
currentY += lineHeight; // Переносим на новую строку после каждого абзаца
lineCount++; // Увеличиваем счетчик строк за каждый абзац
if (lineCount % linesPerCanvas === 0 && paragraphs.length > i + 1) {
images.push(canvas.toDataURL());
canvasData = createNewCanvas();
canvas = canvasData.canvas;
ctx = canvasData.ctx;
currentY = 30; // Сбрасываем текущую Y-координату
canvasIndex++;
}
}
images.push(canvas.toDataURL()); // Добавляем последнее изображение
// Вставляем изображения в соответствующие контейнеры div
for (var i = 0; i < images.length; i++) {
var ind = i + 1;
imageContainers[i].innerHTML = ' ';
}
Из данного материала вы узнаете Когда День рождения журнала «Крокодил» и какие мероприятия подготовлены в этот день.
|