Skip to content

Commit

Permalink
fix(node-14): Add support for node 14 (#13)
Browse files Browse the repository at this point in the history
Co-authored-by: Paul Senechko <[email protected]>
  • Loading branch information
tlhunter and Paul Senechko committed Feb 11, 2021
1 parent 65cda96 commit cff85d0
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12.13.1
14.15.4
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:12.13.1-alpine3.10
FROM node:14.15.4-alpine3.10

ARG NODE_ENV=production
ENV NODE_ENV=$NODE_ENV
Expand Down
26 changes: 14 additions & 12 deletions src/pdffonts.cc
Original file line number Diff line number Diff line change
Expand Up @@ -67,36 +67,38 @@ class FontsWorker : public Nan::AsyncWorker {
const Ref fontRef = font->getRef();

v8::Local<v8::Object> fontObj = Nan::New<v8::Object>();
v8::Local<v8::Context> context = Nan::GetCurrentContext();


if (font->getName() == NULL) {
fontObj->Set(Nan::New("name").ToLocalChecked(), Nan::Null());
fontObj->Set(context, Nan::New("name").ToLocalChecked(), Nan::Null());
} else {
fontObj->Set(Nan::New("name").ToLocalChecked(), Nan::New(font->getName()->getCString()).ToLocalChecked());
fontObj->Set(context, Nan::New("name").ToLocalChecked(), Nan::New(font->getName()->getCString()).ToLocalChecked());
}

fontObj->Set(Nan::New("type").ToLocalChecked(), Nan::New(fontTypeNames[font->getType()]).ToLocalChecked());
fontObj->Set(Nan::New("encoding").ToLocalChecked(), Nan::New(font->getEncoding()->getCString()).ToLocalChecked());
fontObj->Set(Nan::New("embedded").ToLocalChecked(), Nan::New(font->getEmbedded()));
fontObj->Set(Nan::New("subset").ToLocalChecked(), Nan::New(font->getSubset()));
fontObj->Set(Nan::New("unicode").ToLocalChecked(), Nan::New(font->getToUnicode()));
fontObj->Set(context, Nan::New("type").ToLocalChecked(), Nan::New(fontTypeNames[font->getType()]).ToLocalChecked());
fontObj->Set(context, Nan::New("encoding").ToLocalChecked(), Nan::New(font->getEncoding()->getCString()).ToLocalChecked());
fontObj->Set(context, Nan::New("embedded").ToLocalChecked(), Nan::New(font->getEmbedded()));
fontObj->Set(context, Nan::New("subset").ToLocalChecked(), Nan::New(font->getSubset()));
fontObj->Set(context, Nan::New("unicode").ToLocalChecked(), Nan::New(font->getToUnicode()));

// Invalid object generation number should set object metadata to null
// Logic taken from pdffonts.cc
// See: https://cgit.freedesktop.org/poppler/poppler/tree/utils/pdffonts.cc?id=eb1291f86260124071e12226294631ce685eaad6#n207
if (fontRef.gen >= 100000) {
fontObj->Set(Nan::New("object").ToLocalChecked(), Nan::Null());
fontObj->Set(context, Nan::New("object").ToLocalChecked(), Nan::Null());
} else {
// PDF object reference metadata
// For context see: http://www.printmyfolders.com/understanding-pdf
v8::Local<v8::Object> objectObj = Nan::New<v8::Object>();

objectObj->Set(Nan::New("number").ToLocalChecked(), Nan::New(fontRef.num));
objectObj->Set(Nan::New("generation").ToLocalChecked(), Nan::New(fontRef.gen));
objectObj->Set(context, Nan::New("number").ToLocalChecked(), Nan::New(fontRef.num));
objectObj->Set(context, Nan::New("generation").ToLocalChecked(), Nan::New(fontRef.gen));

fontObj->Set(Nan::New("object").ToLocalChecked(), objectObj);
fontObj->Set(context, Nan::New("object").ToLocalChecked(), objectObj);
}

fontArray->Set(i, fontObj);
fontArray->Set(context, i, fontObj);
delete font;
}

Expand Down

0 comments on commit cff85d0

Please sign in to comment.