Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 1x 1x 166x 1x 3x 3x 3x 3x 3x 3x 3x 3x 160x 160x 160x 160x 4x 2x 4x 4x 4x 4x 156x 3x 3x | const {verticalMax, horizontalMax, verticalMargin, leftMarginEnd, lineSpacing, fontPath} = require('../config')
const writeLine = (pageCtx, text, font, fontFactor, horizontalBegin, verticalBegin) => {
pageCtx.BT()
.k(0,0,0,1)
.Tf(font, fontFactor)
.Tm(30,0,0,30, horizontalBegin, verticalBegin)
.Tj(text)
.ET()
}
module.exports = (writer, text, customFont = null) => {
const font = writer.getFontForFile(customFont ? customFont : fontPath, 0)
let page = writer.createPage(0,0,horizontalMax,verticalMax)
let pageCtx = writer.startPageContentContext(page)
const verticalTextStart = verticalMax - verticalMargin
writeLine(pageCtx, 'Contents', font, 1, leftMarginEnd, verticalTextStart)
writeLine(pageCtx, 'Page', font, .8, 470, verticalTextStart)
let pageSize = 0
// Courier = .4
// Monofur = .47
// Monkey = .63, with heading of 1 and .8
text.forEach(({line}, idx) => {
const pageIndex = pageSize ? idx % pageSize : idx
const verticalOffset = lineSpacing * (pageIndex + 1)
const verticalLineStart = verticalTextStart - verticalOffset
if (verticalLineStart <= verticalMargin) {
if (!pageSize) {
pageSize = idx + 1
}
writer.writePage(page)
page = writer.createPage(0,0,horizontalMax,verticalMax)
pageCtx = writer.startPageContentContext(page)
writeLine(pageCtx, line, font, .63, leftMarginEnd, verticalTextStart)
} else {
writeLine(pageCtx, line, font, .63, leftMarginEnd, verticalLineStart)
}
})
writer.writePage(page)
return pageSize
}
|