PDFKit - 矩形文本

时间:2016-09-24 14:55:50

标签: 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');

2 个答案:

答案 0 :(得分:0)

来到这里寻找类似问题的答案...... 我想我已经明白了。

String binaryString = "";
for(int i = 0; i <= set.length(); i++) {
    if(set.get(i)) {
        binaryString += "1";
    } else {
        binaryString += "0";
    }
}

答案 1 :(得分:0)

您需要使用fill和/或stroke方法实际绘制矩形,然后重新定义要显示的文本的颜色。 这对我来说可以在带有黑色边框的灰色框中绘制红色文本:

    doc.rect(45, 165, 240, 22).fillAndStroke('#ddd', '#000');
    doc.fill('#F00').stroke();
    doc.fontSize(16);
    doc.text("Sample text", 50, 170, {lineBreak: false} );

这是因为doc.text没有传递颜色,所以它使用了旧的颜色。