Как я могу создать linearGradient с помощью pdfkit

Я искал пример использования linearGradient с pdfkit — см. https://github.com/devongovett/pdfkit/issues/95 "Используйте doc.linearGradient и doc.radialGradient, чтобы создать объект градиента, передав необходимые параметры. Затем вызовите метод stop для объекта, чтобы добавить точки цвета. Наконец, установите fillColor к объекту градиента."

Это пример, который я создал:

doc.rect(50, 50, 100, 100)
.linearGradient(60, 60, 90, 90)
.stop([100, 100], "синий")
.fillColor("красный ", 1)

Но я получаю ошибку компиляции:

node.js:201
throw e; // ошибка process.nextTick или событие "ошибка" при первом тике
TypeError: Object #‹PDFLinearGradient› не имеет метода fillColor

'

Спасибо!


person user2420507    schedule 25.05.2013    source источник
comment
см. также c-sharpcorner.com/uploadfile/mahesh/wpf-lineargradientbrush для С# с помощью wpf   -  person Rachel Gallen    schedule 25.05.2013
comment
и посмотрите на gist.github.com/mattbaker/1509145   -  person Rachel Gallen    schedule 25.05.2013


Ответы (1)


Вы находитесь рядом. Ошибка заключалась в том, что функция linearGradient возвращает объект PDFLinearGradient, и, поскольку вы связали все в цепочку, метод fillColor вызывается для градиента, а не для документа, как вы предполагали.

Кроме того, метод градиента stop принимает процентное значение (от 0 до 1) вдоль линии, созданной между двумя точками (x1, y1) и (x2, y2), а не явное положение.

Вот рабочий пример:

var grad = doc.linearGradient(x1, y1, x2, y2);
grad.stop(0, '#000');
grad.stop(1, '#fff');
doc.fillColor(grad);
person devongovett    schedule 18.01.2014