Ví dụ về Pdfkit nodejs

boleto. getLocaisDePagamento(). forEach(function(localDePagamento, indice) { if (indice > 1) { return; } pdf. phông chữ ('bình thường'). kích thước phông chữ (args. tamanhoDaFonteDoTitulo). văn bản (localDePagamento, args. ajusteX + margemDoSegundoBloco, lập luận. ajusteY + (terceiraLinha + 2 - args. tamanhoDaFonte + (chỉ số * args. tamanhoDaFonte)), { lineBreak. sai, chiều rộng. 400, căn chỉnh. 'bên trái' });

PDFKit là một thư viện tạo tài liệu PDF cho Node và trình duyệt giúp tạo các tài liệu phức tạp, nhiều trang, có thể in được dễ dàng. API bao gồm khả năng kết nối và bao gồm cả chức năng cấp thấp cũng như trừu tượng cho chức năng cấp cao hơn. API PDFKit được thiết kế đơn giản, vì vậy việc tạo các tài liệu phức tạp thường đơn giản bằng một vài lệnh gọi hàm

Kiểm tra một số tài liệu và ví dụ để xem cho chính mình. Bạn cũng có thể đọc hướng dẫn dưới dạng PDF tự tạo với đầu ra mẫu được hiển thị nội tuyến. Nếu bạn muốn xem nó được tạo như thế nào, hãy xem README trong thư mục tài liệu

Bạn cũng có thể dùng thử bản demo tương tác trong trình duyệt của PDFKit tại đây

Cài đặt

Cài đặt sử dụng trình quản lý gói npm. Chỉ cần gõ lệnh sau sau khi cài đặt npm

npm install pdfkit

Đặc trưng

  • Đồ họa vector
    • API giống như canvas HTML5
    • hoạt động đường dẫn
    • Trình phân tích đường dẫn SVG để tạo đường dẫn dễ dàng
    • phép biến hình
    • Độ dốc tuyến tính và xuyên tâm
  • Chữ
    • gói hàng
    • căn chỉnh văn bản
    • danh sách gạch đầu dòng
  • Nhúng phông chữ
    • Hỗ trợ TrueType (. ttf), OpenType (. otf), Bộ sưu tập WOFF, WOFF2, TrueType (. ttc) và Datafork TrueType (. dfont) phông chữ
    • Tập hợp phông chữ
    • Xem bộ phông chữ để biết thêm chi tiết về hỗ trợ bố cục glyph nâng cao
  • nhúng hình ảnh
    • Hỗ trợ các tệp JPEG và PNG (bao gồm cả PNG được lập chỉ mục và PNG có độ trong suốt)
  • Chú thích
    • liên kết
    • ghi chú
    • Điểm nổi bật
    • gạch chân
    • vân vân
  • AcroForms
  • phác thảo
  • bảo mật PDF
    • mã hóa
    • Đặc quyền truy cập (in, sao chép, sửa đổi, chú thích, điền biểu mẫu, truy cập nội dung, lắp ráp tài liệu)
  • Hỗ trợ khả năng truy cập (nội dung được đánh dấu, cấu trúc logic, PDF được gắn thẻ, PDF/UA)

Sắp có

  • Các mẫu lấp đầy
  • API cấp cao hơn để tạo bảng và sắp xếp nội dung
  • Nhiều tối ưu hóa hiệu suất hơn
  • Tuyệt vời hơn nữa, có lẽ được viết bởi bạn. Vui lòng rẽ nhánh kho lưu trữ này và gửi cho tôi các yêu cầu kéo

Thí dụ

const PDFDocument = require('pdfkit');
const fs = require('fs');

// Create a document
const doc = new PDFDocument();

// Pipe its output somewhere, like to a file or HTTP response
// See below for browser usage
doc.pipe(fs.createWriteStream('output.pdf'));

// Embed a font, set the font size, and render some text
doc
  .font('fonts/PalatinoBold.ttf')
  .fontSize(25)
  .text('Some text with an embedded font!', 100, 100);

// Add an image, constrain it to a given size, and center it vertically and horizontally
doc.image('path/to/image.png', {
  fit: [250, 300],
  align: 'center',
  valign: 'center'
});

// Add another page
doc
  .addPage()
  .fontSize(25)
  .text('Here is some vector graphics...', 100, 100);

// Draw a triangle
doc
  .save()
  .moveTo(100, 150)
  .lineTo(100, 250)
  .lineTo(200, 250)
  .fill('#FF3300');

// Apply some transforms and render an SVG path with the 'even-odd' fill rule
doc
  .scale(0.6)
  .translate(470, -380)
  .path('M 250,75 L 323,301 131,161 369,161 177,301 z')
  .fill('red', 'even-odd')
  .restore();

// Add some text with annotations
doc
  .addPage()
  .fillColor('blue')
  .text('Here is a link!', 100, 100)
  .underline(100, 100, 160, 27, { color: '#0000FF' })
  .link(100, 100, 160, 27, 'http://google.com/');

// Finalize PDF file
doc.end();

Đầu ra PDF từ ví dụ này (với một vài bổ sung) cho thấy sức mạnh của PDFKit — tạo ra các tài liệu phức tạp với một lượng mã rất nhỏ. Để biết thêm thông tin, hãy xem thư mục demo và hướng dẫn lập trình PDFKit

Sử dụng trình duyệt

Có ba cách để sử dụng PDFKit trong trình duyệt

  • Sử dụng Browserify. Xem mã nguồn demo và
  • sử dụng webpack. Xem ví dụ hoàn chỉnh
  • Sử dụng phiên bản dựng sẵn. Được phân phối dưới dạng tệp pdfkit.standalone.js trong bản phát hành hoặc trong thư mục gói js

Ngoài PDFKit, bạn sẽ cần một nơi nào đó để truyền đầu ra tới. HTML5 có đối tượng Blob có thể được sử dụng để lưu trữ dữ liệu nhị phân và nhận URL tới dữ liệu này để hiển thị đầu ra PDF bên trong khung nội tuyến hoặc tải lên máy chủ, v.v. Để lấy Blob từ đầu ra của PDFKit, bạn có thể sử dụng mô-đun blob-stream

Ví dụ sau sử dụng Browserify hoặc webpack để tải PDFKitblob-stream. Xem here và here để biết ví dụ về cách sử dụng phiên bản dựng sẵn

// require dependencies
const PDFDocument = require('pdfkit');
const blobStream = require('blob-stream');

// create a document the same way as above
const doc = new PDFDocument();

// pipe the document to a blob
const stream = doc.pipe(blobStream());

// add your content to the document here, as usual

// get a blob when you are done
doc.end();
stream.on('finish', function() {
  // get a blob you can do whatever you like with
  const blob = stream.toBlob('application/pdf');

  // or get a blob URL for display in the browser
  const url = stream.toBlobURL('application/pdf');
  iframe.src = url;
});

Bạn có thể xem bản demo tương tác trong trình duyệt của PDFKit tại đây

Lưu ý rằng để Trình duyệt dự án bằng PDFKit, bạn cần cài đặt mô-đun brfs với npm, được sử dụng để tải dữ liệu phông chữ tích hợp vào gói. Nó được liệt kê là devDependency trong PDFKit's

const PDFDocument = require('pdfkit');
const fs = require('fs');

// Create a document
const doc = new PDFDocument();

// Pipe its output somewhere, like to a file or HTTP response
// See below for browser usage
doc.pipe(fs.createWriteStream('output.pdf'));

// Embed a font, set the font size, and render some text
doc
  .font('fonts/PalatinoBold.ttf')
  .fontSize(25)
  .text('Some text with an embedded font!', 100, 100);

// Add an image, constrain it to a given size, and center it vertically and horizontally
doc.image('path/to/image.png', {
  fit: [250, 300],
  align: 'center',
  valign: 'center'
});

// Add another page
doc
  .addPage()
  .fontSize(25)
  .text('Here is some vector graphics...', 100, 100);

// Draw a triangle
doc
  .save()
  .moveTo(100, 150)
  .lineTo(100, 250)
  .lineTo(200, 250)
  .fill('#FF3300');

// Apply some transforms and render an SVG path with the 'even-odd' fill rule
doc
  .scale(0.6)
  .translate(470, -380)
  .path('M 250,75 L 323,301 131,161 369,161 177,301 z')
  .fill('red', 'even-odd')
  .restore();

// Add some text with annotations
doc
  .addPage()
  .fillColor('blue')
  .text('Here is a link!', 100, 100)
  .underline(100, 100, 160, 27, { color: '#0000FF' })
  .link(100, 100, 160, 27, 'http://google.com/');

// Finalize PDF file
doc.end();
0, vì vậy nó không được cài đặt theo mặc định cho người dùng Node. Nếu bạn quên cài đặt, Browserify sẽ in thông báo lỗi

Làm cách nào để sử dụng PDFKit trong Nút?

Chỉ cần yêu cầu mô-đun pdfkit trong tệp nguồn JavaScript của bạn và tạo một phiên bản của lớp PDFDocument . const PDFDocument = require('pdfkit'); .

Làm cách nào để tạo PDF bằng NodeJS?

Làm theo các bước sau để chuyển đổi HTML sang PDF .
Bước 1 - cài đặt gói tạo pdf bằng lệnh sau. .
Bước 2 - Thêm các gói cần thiết và đọc mẫu HTML. .
Bước 3 - Tạo Mẫu HTML của bạn. .
Bước 4 - Cung cấp định dạng và định hướng theo nhu cầu của bạn. .
Bước 5 - Cung cấp HTML, dữ liệu người dùng và đường dẫn PDF cho đầu ra

Làm cách nào để chuyển đổi đối tượng PDFKit thành bộ đệm bằng NodeJS?

let pdf = new pdfkit(); . on('dữ liệu', bộ đệm. đẩy. bind(buffer)); . .

PDFKit hoạt động như thế nào?

PDFKit là thư viện tạo tài liệu PDF cho Node và trình duyệt giúp tạo các tài liệu phức tạp, nhiều trang, có thể in được dễ dàng . API bao gồm khả năng kết nối và bao gồm cả chức năng cấp thấp cũng như trừu tượng cho chức năng cấp cao hơn.