Sys*_*147 2 javascript pdf-generation node-pdfkit
是否可以使用 PDFKit 在矩形上呈现文本。也许可以使用 hack,用不透明度填充矩形 - 但我不想那样使用它。我的文本被矩形隐藏(我通过交替使用不同颜色的矩形来创建表格)。
更新
我发现文本在某种程度上与矩形颜色相同,这可能就是我看不到它的原因。但为什么 ?
var doc = new PDFDocument({
size: 'A4',
margin: 25
});
doc.fontSize(11);
doc.lineWidth(0.5);
const projects = Projects.find().fetch();
const rectXOffset = 25;
const rectYOffset = 25;
let rectPosition = 25;
let counter = 0;
for (var project of projects) {
if (counter % 2 == 0)
{
doc.rect(rectXOffset, rectPosition, doc.page.width - rectXOffset * 2, 25).fill("#ddd");
}
else
{
doc.rect(rectXOffset, rectPosition, doc.page.width - rectXOffset * 2, 25).fill("#c9c9c9");
}
rectPosition += rectYOffset;
counter++;
doc.text(project.projectName,100,100).fillColor("red");
}
doc.write(process.env.PWD + '/PDFKitExampleServerSide.pdf');
Run Code Online (Sandbox Code Playgroud)
您需要使用填充和/或笔触方法来实际绘制矩形,然后重新定义即将出现的文本的颜色。这适用于我在具有黑色边框的灰色框中绘制红色文本:
doc.rect(45, 165, 240, 22).fillAndStroke('#ddd', '#000');
doc.fill('#F00').stroke();
doc.fontSize(16);
doc.text("Sample text", 50, 170, {lineBreak: false} );
Run Code Online (Sandbox Code Playgroud)
这是因为 doc.text 不传递颜色,所以它使用旧的。
小智 0
来这里寻找类似问题的答案...我想我已经弄清楚了。
var doc = new PDFDocument({
size: 'A4',
margin: 25
});
doc.fontSize(11);
doc.lineWidth(0.5);
const projects = Projects.find().fetch();
const rectXOffset = 25;
const rectYOffset = 25;
let rectPosition = 25;
let counter = 0;
for (var project of projects) {
//here
doc.save
if (counter % 2 == 0)
{
doc.rect(rectXOffset, rectPosition, doc.page.width - rectXOffset * 2, 25).fill("#ddd");
}
else
{
doc.rect(rectXOffset, rectPosition, doc.page.width - rectXOffset * 2, 25).fill("#c9c9c9");
}
rectPosition += rectYOffset;
counter++;
//and here
doc.restore
doc.text(project.projectName,100,100).fillColor("red");
}
doc.write(process.env.PWD + '/PDFKitExampleServerSide.pdf');
Run Code Online (Sandbox Code Playgroud)