PDFKit с облачными функциями Firebase NodeJS v6.x пустой документ успешно завершился неудачей текста
Моя цель состоит в том, чтобы, когда я делаю QR-коды и загружаю их, они добавляются в файл PDF в виде изображения с некоторым текстом и затем сохраняются. Вся моя логика QR работает, когда я добавляю pdf позже, но теперь я не могу заставить PDFKit работать, когда буквально каждый пример, который я могу найти, говорит мне "это должно работать".
Вот код:
const pdfdoc = require('pdfkit')
const fs = require('fs')
const os = require('os')
const path = require('path')
doc = new pdfdoc()
doc.text('hello world')**
filepath = path.join(os.tmpdir(), 'test.pdf')
doc.pipe(fs.createWriteStream(filepath))
doc.text('hello world')**
doc.end()
Для строк **, если я помещу это в любом месте, это все еще не работает. Официальное руководство говорит, чтобы поставить его после doc.pipe()
Команда и другие примеры, которые я нашел, имеют его перед командой. Ни одна из них не работает.
Я понятия не имею, как выяснить, почему это не работает. Я сталкивался с некоторыми проблемами с Firebase, используя более старую версию LTS Node. Если это так, я не знаю, как это решить. Если это не так, то я не знаю, почему это не работает.
Этот код находится в функции, которая возвращает обещание, потому что мне нужно, чтобы некоторый асинхронный код выполнялся синхронно. Насколько я могу судить, это не должно иметь никакого значения.
[Редактировать] В Ubuntu, если я использую pdfinfo file.pdf
это говорит мне:
Syntax Error: Coulnd't find trailer dictionary
Syntax Error: Couldn't read xref table
Если я создаю пустой файл PDF, и он работает, это то, что я получаю, открывая файл в Блокноте:
%PDF-1.3
%ÿÿÿÿ
5 0 obj
<<
/Type /Page
/Parent 1 0 R
/MediaBox [0 0 612 792]
/Contents 3 0 R
/Resources 4 0 R
>>
endobj
4 0 obj
<<
/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
>>
endobj
6 0 obj
<<
/Producer (PDFKit)
/Creator (PDFKit)
/CreationDate (D:20171205214225Z)
>>
endobj
2 0 obj
<<
/Type /Catalog
/Pages 1 0 R
>>
endobj
1 0 obj
<<
/Type /Pages
/Count 1
/Kids [5 0 R]
>>
endobj
3 0 obj
<<
/Length 23
/Filter /FlateDecode
>>
stream
xœ3T0 B]C ani¤�œË� �I�\
endstream
endobj
xref
0 7
0000000000 65535 f
0000000327 00000 n
0000000278 00000 n
0000000384 00000 n
0000000119 00000 n
0000000015 00000 n
0000000186 00000 n
trailer
<<
/Size 7
/Root 2 0 R
/Info 6 0 R
>>
startxref
478
%%EOF
Вот сломанный pdf, созданный с помощью строки doc.text ('hello world') в коде:
%PDF-1.3
%ÿÿÿÿ
5 0 obj
<<
/Type /Page
/Parent 1 0 R
/MediaBox [0 0 612 792]
/Contents 3 0 R
/Resources 4 0 R
>>
endobj
4 0 obj
<<
/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/XObject <<
/I1 6 0 R
>>
>>
endobj
7 0 obj
<<
/Producer (PDFKit)
/Creator (PDFKit)
/CreationDate (D:20171205205103Z)
>>
endobj
2 0 obj
<<
/Type /Catalog
/Pages 1 0 R
>>
endobj
1 0 obj
<<
/Type /Pages
/Count 1
/Kids [5 0 R]
>>
endobj
Почему эта разница?