gpt4 book ai didi

javascript - 我想使用 pdflayer 将原始 html 转换为 pdf

转载 作者:行者123 更新时间:2023-11-30 00:09:50 25 4
gpt4 key购买 nike

对不起,我的英语不好。

我想将 html 转换为 pdf。所以我使用“pdflayer”。
我写了这段代码。但不起作用。
我期待 pdf 格式的“hello world”。
但是pdf是白皮书。不显示“ Hello World ”。
怎么了??

var request = require('request');
var fs = require('fs');

var baseUrl = 'http://api.pdflayer.com/api/convert';
var accessKey = '****';
var documentHtml = `<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8">

<title>The HTML5 Herald</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
</head>

<body>
hello world
</body>
</html>`;

request.post(`${baseUrl}?access_key=${accessKey}`, {form: {document_html: documentHtml }},function (err, response, body) {
fs.writeFile('./download.pdf', response.body, function(err) {
if (err) console.log('error: ', err);
})
})

--添加--
返回 response.body (console.log)

%PDF-1.4
%����
1 0 obj
<<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Kids [2 0 R]
/Type /Pages
/Count 1
>>
endobj
3 0 obj
<<
/CA 1.0
/ca 1.0
/SA true
/AIS false
/SM 0.02
/Type /ExtGState
/SMask /None
>>
endobj
4 0 obj [/Pattern /DeviceRGB]
endobj
2 0 obj
<<
/Annots 5 0 R
/Resources 6 0 R
/Contents 7 0 R
/Parent 1 0 R
/Type /Page
/MediaBox [0 0 595 842]
>>
endobj
8 0 obj
<<
/Encoding /Identity-H
/ToUnicode 9 0 R
/Subtype /Type0
/Type /Font
/DescendantFonts [10 0 R]
/BaseFont /DejaVuSans
>>
endobj
11 0 obj
<<
/Type /Catalog
/Pages 1 0 R
>>
endobj
7 0 obj
<<
/Filter /FlateDecode
/Length 276
>>
stream
x���MK�0���+�,l�I�4�x���A(
xK��.�=����,�Z\�:������_�����ācۃ�������
������蠋��Pn&���?�-���������ǘ}�Xm��%�
��FhȊ�J����$��洤�_�i��.p��J��1b�G�ߍ.��`8�z㡺�H�+��.�����k�[ )HK�L)Der)����M��Dg�j�#u�f21B2��-��:G���
�P�ݛ��֧�������o���灳�
endstream
endobj
6 0 obj
<<
/Font
<<
/F6 8 0 R
>>
/XObject
<<
>>
/ExtGState
<<
/GSa 3 0 R
>>
/ColorSpace
<<
/PCSp 4 0 R
/CSpg /DeviceGray
/CSp /DeviceRGB
>>
/Pattern
<<
>>
>>
endobj
5 0 obj []
endobj
12 0 obj
<<
/StemV 43.9453125
/ItalicAngle 0
/Ascent 928.222656
/FontName /QMAAAA+DejaVuSans
/Type /FontDescriptor
/FontFile2 13 0 R
/Flags 4
/FontBBox [-1020.50781 -415.039062 1680.66406 1166.50390]
/CapHeight 928.222656
/Descent -235.839843
>>
endobj
13 0 obj
<<
/Length1 16672
/Filter /FlateDecode
/Length 4786
>>
stream
x��;l�y�HZV�7�e�ː��N�cc(O�L^�P%ѡH�<R��f>����$��;JV,�:,1R˲8����a���mu2`k�[f��C���0 ú̖�����)J�%�ǀ���������3EBH/�@d��C�_xv�����R����uX���ЯUM7�RHHX����x��]ח���J�=諑q����Z%-��p
���״�
r?9��5�k5����7 �|��/�%�[�m����;~��s�3�O���� �{#�P�_I}������#���)'u�a++=������)?:C����"��K���o��; ���H�c��=R��N�go|�|i���?�{�����=�d?��;�w���=;{��r����ǟ�?ѯ)_����
ŷ�=��»�R��7��re&�<{�[7_���yE�EY8Ϲ7V~y!���!r��{h<9���C�����������[tg���7��U)�4Js��yv���yEy�wo��7~���\��o�����=�Ws�������
�W._V���[o*����_?}z��7�yޖ@������^����ɇ\��@�&���y�����s�@�C ���s�`r^+���^-�P|��_R��.���/^|1��}�=�u������q������~���\���U�/_9�������{��r >P������ז�������ș��g�����t�,��9����s�>p�0r�$;p���ȩo�=�կ������t�};E/��ͷ"g�SOD"�֧���Q�_0�1Ps�V��=!|�z�ډ�S�_��?j��ߪ�W_)�j��Wsj��C�~���C�իJ��{��ѡ��������8Mµ����x�W>�K��n�����c �BzZ[�����0!��ʅ�=ǐR����ߓ��=��ȇ���/�w#���`��I1|�����<p�ȗ���"���E�(_BJ����&�Ӫ���/��O�k��R~$�!Q>��0����G�z�?tF�{
}]�{I_�-��E{2<���ç�z7y�Ĝ\?Hv����#�
��}�v���B��r"���u���:BBQ��A>������u/��~K�w��������F��ݤ2��\?HN�.�}���_�1b�Y"61�<��0r����"G�5�9�`d`\���M����n��>���\���W|���:@�
p=�����up������8���,�I J�!514Ԉ�:�7f�����ޣ��Y�%ۜ���p�:zt��-�Q�u\��j1����,Q���rX�p{���t�q��j��V}��j�5Ǎ�Z��J�>o8L�
f�Y�9W5KL�j�Y��Ụ�l��V��QP�"�`aY�6���"Z�Yh�!��0yn�cZu6~��T�n��HM�ԕ��-[u0�'�w�6B��K@#�|��I����8�5�T\�128�хfܱ�v�([���p{" �#^���~�ǝ��k@Yd`y�nO�qJ�pg `*�i½��b�s�و���S]��d�~~5��k-m(���.b@�U�j�3��Ƿ����_�����ل;W.��(�������4Y�f3H����l2Q�
�3�^�ȥ.��~��D��x��\z���
����T]c��
iKSI�E):㩄p<u����X60�E�EQE�q\?��8�ԏb� BkH��;�}ʰ��L:ܒ�����߅���9�6�;
�8�ۓFG
\��9���]����!&���5����"�@��+-Sý�F�v[T
i�h�X�;|]C
_�@q;������XAR� h�Ҫ��__k�rB�F+�]�ˏ:_�E�GmC�l(cU�K
�G�9�~rK���0��xWee�<TB�:JlJIG0;U)�-����ȷ��JPxWf�����o�`
�1�YC�)���X�g���?-<��}
?���_�x��U���,�.�ɒ<[wn�2ʨ�H�b�ڭ!)���y0��T��ĚQ�+��HGI���k̷����WC5���N�8���'%�����6.A;�N{t�-&�]E<s�jN[ޱ��jXW|�ގӊH/_:OC�9��8-�V:�G���іޝ�y�m4e"g�������)�����kv��AΣ��2������ha�.d�vh�L�`�g��H
����īu�j��'A��W7�Ҁ��>�l�:X5����6/�x�Pm���h����>���c�<�QE[U�vV�����9����ܲ�I"�,��瓅+��B��{)�c����N��aw���;�~�q֜b������wN��p������Z7I�AI��ɲ�洧a7
�I �1�`��|=Ix*�eK���x\!�
�>�v�R�ѓl�r@J�M����ǰ?�댔SX.�Թ�8eNs$J��-����ў �YH�A&���%�O���sxs�I�KE+pN�����>��Ϲ>�PB���2_�T�ҖBn�b�s�OË��*�������z�3����Q@�h�,rE8nEn�t+�r�����߸���)��w�ģ�N���-��_-�F�<�1 ��֎���:&m-h��1�Xwu���2pMʘJ��ڵ�~�E�}-��},`3���]O9�]�2���D��:�ʑ ��i)y�a~
(��̶$k���G�Fj����n��8�SZJ�oYC@�u��ڕ�s���9n�n�������F�}g,Pk����[���w�Ӓ8��g�`��� �{:�����݇����(���؟��iu%��V�3YĻ��ސ���9�s��쏵xyg�OK��v���Śk�PtՓa�{�e׮�L�~M �����4��V��u���K��!h�ݐ�R&Z���qI�&�s�on1w�uxݏ>Nm�tN�
���hkJ����X���ݟ:m���^�ѶyPg�u��A��<���y��<���/d�g��&��&,��͕ت����R`��O�oΕh� {��J���ڽ0W�]�J�Fwf�Dיܙ�%�:W���i;�J~��ϕ�:}מ.��s�I�k�%JڧKݧwf�Dױ.X�ޞ2Q����̝�2�{x�D;�L��2�O�2�;6e��0eb�m�D�E�z��N��;7;�]}~�fGt���ݵ�]sv�πn������h=��wv�UֵO�����OpJ�������g��M|h`����a;&4�*�O�@���2�_��_U�_vk}?�v��Uk�H�m��mq6Y]jTf���:+�V�%lcA~ ���_�k�/��P�s/�Ƅh�o��������������ΦC5�ښn�4��ʝT(�1������L�U�^��V�c�;�h`1{ވ1�bZ}�5�k���`��@h
�n���T*Y��s����F��E�$�#@Lg��X%S~T�J͚Qw5��S6���Ü""��Uv���#(�m4lKo�$����9�t
.mC���Kզ�%Y4݊�tA��)q�0%�m:�Չ����� N%��<-�9��MU����d��.�CF��U�
��]�"�s�s�sg���w�~e�
��*Yu��z8#��@N���@D

�����˽��#@�cNE�V��!�b@�hmzZu���,���6s�FYFq!T�ݚ����Y6y�iUB@T�u�\��'�f�\ͪfS�H7s��b̋\$�Z �8Ó����IR`�Ӫ� HO��W�.13攫c�O6�/nH�/=�9�F�E��m�a���n�(O�(�<���2g@&q�M��ɂe�3λ�1Lk4 �����o݁2_P�)�e��F��&<����Y��K�}Q)
'4\ϫ�U�Y�n�N�X�W�����i���aݢ<To-��XA��j�5�dٌ��� u6�K�T������xr�Ey����lJ��T�DF=Ų,�9ŞNe�c,��L.���l���gҩ$��2c��x*3�F/�UY:5�R���ETI*��sb����\&FS��z*F'Rjh�p9�`3���+�96S��d�I�1d3��D�$����Μʥ&�� ���j.1��N䞎1 ��sA� %�`�"G�O%�i6�R�j.�����:���t�Nd�����f�hTI���B6Pe,�HM��xb:1����p0��o�&��d.����Lr,�`�T.9�"$�,�FqDz�|���8�E��N%�(��c(��u95�S[�̦��K�Ry\����N`���y)/��[ű����D���A�`!���KF���-�[�F,��v�0jE���C��=\±�����n��͏��(�X> ��$�W_0�:��X6�x1Y4�t8k�8���U�`�,B(��ZМ��m E�ða���h�.�5a�6�&�a[S��5�\�� ��
����`T��k��%1�eˮI��|%w�k\6��u˥�=g�bǵ��i���=}}�LD�>�m���� Y�KH��Ό.
�߰Э�J������+Q����+Q��[���6�J����&{%��l�W�k�Jl��
�J��mk��<�"�]����R�D������n�h�b[n�趶LT�Ll�-�l��fZ&ڵeb��2Q5Q�>��b'�6�Q_��tG����V�#��ئ�#ڵ;b[��x��%J���k6>��~��6��Pl|�{�Ooh\�)lh>�[���A�۝��A�����zq������o��a8�h�3M(V���JcPV���-��6EL0
endstream
endobj
10 0 obj
<<
/CIDToGIDMap /Identity
/CIDSystemInfo
<<
/Ordering (Identity)
/Registry (Adobe)
/Supplement 0
>>
/Subtype /CIDFontType2
/Type /Font
/W [0 [595 629 610 276 607 315 811 408 630]]
/FontDescriptor 12 0 R
/BaseFont /DejaVuSans
>>
endobj
9 0 obj
<<
/Length 420
>>
stream
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
2 beginbfrange
<0000> <0000> <0000>
<0001> <0008> [<0068> <0065> <006C> <006F> <0020> <0077> <0072> <0064> ]
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
end

endstream
endobj
14 0 obj
<<
/CreationDate (D:20160501161245Z)
/Title (��The HTML5 Herald)
/Creator (pdflayer.com)
/Producer (��Qt 4.8.6)
>>
endobj xref
0 15
0000000000 65535 f
0000000015 00000 n
0000000248 00000 n
0000000112 00000 n
0000000210 00000 n
0000001081 00000 n
0000000909 00000 n
0000000558 00000 n
0000000368 00000 n
0000006480 00000 n
0000006233 00000 n
0000000506 00000 n
0000001100 00000 n
0000001355 00000 n
0000006954 00000 n
trailer

<<
/Info 14 0 R
/Root 11 0 R
/Size 15
>>
startxref
7110
%%EOF

最佳答案

你应该添加

encoding: null

到您的 reqeust.post 方法。

这是必需的,因为 post 请求返回二进制数据 (base64)。例如,您可以在此处查看数据类型:

在postman上可以看到你的请求是返回二进制数据:/image/QTB18.png

下载窗口显示数据类型为“base64二进制”:/image/QTB18.png

如果您的请求返回二进制数据,您应该使用encoding: null。那么变量将不会被编码。它将是一个缓冲变量。

encoding - Encoding to be used on setEncoding of response data. If null, the body is returned as a Buffer. Anything else (including the default value of undefined) will be passed as the encoding parameter to toString() (meaning this is effectively utf8 by default). (Note: if you expect binary data, you should set encoding: null.)

来源:https://github.com/request/request

所以你的完整代码是:

    var request = require('request');
var fs = require('fs');

var baseUrl = 'http://api.pdflayer.com/api/convert';
var accessKey = '*****';
var documentHtml = `<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8">

<title>The HTML5 Herald</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
</head>

<body>
hello world
</body>
</html>`;

request.post(`${baseUrl}?access_key=${accessKey}`, {
form: {
document_html: documentHtml
},
//Set the encoding to buffer object
encoding: null
}, function (err, response, body) {
fs.writeFile('c://temp//myfile.pdf', response.body, function (err) {
if (err) console.log('error: ', err);
})
})

替换写入文件的方法。

fs.writeFile 已删除。最好使用 writeStream。这是我的代码:

 let request = require("request");
let fs = require('fs');


request({
method: "POST",
url: 'http://api.pdflayer.com/api/convert',
qs: {
access_key: '****',
page_size: 'A4',
test: '1'
},
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
form: {document_html: documentHTML, '': ''},
encoding: null
}, function (error, response, body) {
if (error) {
throw error
} else {
console.log(body); // `body` is a Buffer because we told Request
// to not make it a string


var stream = fs.createWriteStream("c:\\Temp\\write.pdf");
stream.once('open', function (fd) {
stream.write(body);
stream.end();
});

console.log('File written')


return;
} ;


})

或者您可以使用以下库。

您可以使用此库将 PDF 层与 Node 一起使用。 https://github.com/pmoelgaard/html-to-pdf-conversion

关于javascript - 我想使用 pdflayer 将原始 html 转换为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36965773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com