具有填充、描边和不透明度的 PDFKit 路径

PDFKit Paths with fill, stroke and opacity

我一直在使用 PDFKit 和 NodeJS 为我们正在开发的应用程序生成 PDF,但我无法为路径设置描边不透明度和填充不透明度。

这张图片应该是这样的:

这是它在 PDF 中的显示方式:(请忽略某些区域的浅灰色,这是水印)

两者的不透明度值都应为 0.6。这就是我尝试应用填充描边和不透明度的方式:

pdfDocument.path(pathString);
pdfDocument.lineCap('butt');
pdfDocument.lineJoin('miter');
pdfDocument.lineWidth(strokeWidth);

pdfDocument.fillOpacity(opacity);
pdfDocument.strokeOpacity(opacity);

pdfDocument.fillAndStroke(fillColor, strokeColor, fillRule);

pdfDocument.stroke();

我不明白为什么不对描边和填充应用不透明度。我已经尝试仅使用不透明度函数并移动两组不透明度但没有任何反应。

调试库后发现这个问题是2014年的

Opacity #259

原来我们需要在设置fillAndStroke.

之前设置fillColor不透明度和strokeColor不透明度
pdfDocument.path(pathString);
pdfDocument.lineCap('butt');
pdfDocument.lineJoin('miter');
pdfDocument.lineWidth(strokeWidth);

// HERE IS THE TRICK.
pdfDocument.fillColor(fillColor, opacity);
pdfDocument.strokeColor(strokeColor, opacity);

pdfDocument.fillAndStroke(fillColor, strokeColor, fillRule);

pdfDocument.stroke();