Добавил отступ слева и справа
This commit is contained in:
@@ -50,6 +50,7 @@ class TextPage extends Vue {
|
|||||||
this.canvas.height = this.$refs.main.clientHeight;
|
this.canvas.height = this.$refs.main.clientHeight;
|
||||||
this.lineHeight = this.fontSize + this.lineInterval;
|
this.lineHeight = this.fontSize + this.lineInterval;
|
||||||
this.pageLineCount = Math.floor(this.canvas.height/this.lineHeight);
|
this.pageLineCount = Math.floor(this.canvas.height/this.lineHeight);
|
||||||
|
this.w = this.canvas.width - 2*this.indent;
|
||||||
}
|
}
|
||||||
|
|
||||||
showBook() {
|
showBook() {
|
||||||
@@ -69,9 +70,10 @@ class TextPage extends Vue {
|
|||||||
this.fontStyle = '';// 'bold','italic'
|
this.fontStyle = '';// 'bold','italic'
|
||||||
this.fontSize = 20;// px
|
this.fontSize = 20;// px
|
||||||
this.fontName = 'arial';
|
this.fontName = 'arial';
|
||||||
this.lineInterval = 5;// px
|
this.lineInterval = 5;// px, межстрочный интервал
|
||||||
this.textAlignJustify = true;// выравнивание по ширине
|
this.textAlignJustify = true;// выравнивание по ширине
|
||||||
this.p = 30;// px, отступ параграфа
|
this.p = 30;// px, отступ параграфа
|
||||||
|
this.indent = 20;// px, отступ всего текста слева и справа
|
||||||
|
|
||||||
this.calcDrawProps();
|
this.calcDrawProps();
|
||||||
this.drawPage();// пока не загрузили, очистим канвас
|
this.drawPage();// пока не загрузили, очистим канвас
|
||||||
@@ -97,7 +99,7 @@ class TextPage extends Vue {
|
|||||||
this.calcDrawProps();
|
this.calcDrawProps();
|
||||||
const parsed = this.book.parsed;
|
const parsed = this.book.parsed;
|
||||||
parsed.p = this.p;
|
parsed.p = this.p;
|
||||||
parsed.w = this.canvas.width;// px, ширина страницы
|
parsed.w = this.w;// px, ширина текста
|
||||||
parsed.font = this.font;
|
parsed.font = this.font;
|
||||||
parsed.measureText = (text, style) => {// eslint-disable-line no-unused-vars
|
parsed.measureText = (text, style) => {// eslint-disable-line no-unused-vars
|
||||||
return this.context.measureText(text).width;
|
return this.context.measureText(text).width;
|
||||||
@@ -156,7 +158,7 @@ class TextPage extends Vue {
|
|||||||
text += part.text;
|
text += part.text;
|
||||||
}
|
}
|
||||||
|
|
||||||
let indent = (line.first ? this.p : 0);
|
let indent = this.indent + (line.first ? this.p : 0);
|
||||||
y += this.lineHeight;
|
y += this.lineHeight;
|
||||||
|
|
||||||
let filled = false;
|
let filled = false;
|
||||||
@@ -164,7 +166,7 @@ class TextPage extends Vue {
|
|||||||
const words = text.split(' ');
|
const words = text.split(' ');
|
||||||
if (words.length > 1) {
|
if (words.length > 1) {
|
||||||
const spaceCount = words.length - 1;
|
const spaceCount = words.length - 1;
|
||||||
const space = (canvas.width - line.width + spaceWidth*spaceCount)/spaceCount;
|
const space = (this.w - line.width + spaceWidth*spaceCount)/spaceCount;
|
||||||
|
|
||||||
let x = indent;
|
let x = indent;
|
||||||
for (const word of words) {
|
for (const word of words) {
|
||||||
|
|||||||
Reference in New Issue
Block a user