{"id":108815,"date":"2025-05-13T14:31:16","date_gmt":"2025-05-13T11:01:16","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%db%8c%da%a9-%d8%b3%d8%a7%d8%b2%d9%86%d8%af%d9%87-pdf-%d8%a8%d8%a7-react-%d8%8c-tailwind-%d8%8c-mammoth-js-%d9%88-pdfkit-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/"},"modified":"2025-05-13T14:31:16","modified_gmt":"2025-05-13T11:01:16","slug":"%db%8c%da%a9-%d8%b3%d8%a7%d8%b2%d9%86%d8%af%d9%87-pdf-%d8%a8%d8%a7-react-%d8%8c-tailwind-%d8%8c-mammoth-js-%d9%88-pdfkit-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%db%8c%da%a9-%d8%b3%d8%a7%d8%b2%d9%86%d8%af%d9%87-pdf-%d8%a8%d8%a7-react-%d8%8c-tailwind-%d8%8c-mammoth-js-%d9%88-pdfkit-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/","title":{"rendered":"\u06cc\u06a9 \u0633\u0627\u0632\u0646\u062f\u0647 PDF \u0628\u0627 React \u060c Tailwind \u060c Mammoth.js \u0648 PDFKIT \u0628\u0633\u0627\u0632\u06cc\u062f"},"content":{"rendered":"<div data-article-id=\"2483846\" id=\"article-body\">\n<p>\u0633\u0644\u0627\u0645 \u062f\u0648\u0633\u062a\u0627\u0646! <br \/>\u0645\u0646 \u0641\u0642\u0637 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062a\u0645\u0627\u0645 \u067e\u0634\u062a\u0647 \u0631\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u0645 \u06a9\u0647 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc DOCX \u0631\u0627 \u0628\u0647 PDF \u0647\u0627\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u0642\u0627\u0628\u0644 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f-\u0647\u0645\u0647 \u0627\u0632 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u0648\u0628 \u0645\u062f\u0631\u0646.<\/p>\n<p>\u067e\u0634\u062a\u0647 \u0641\u0646\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a: <br \/>Frontend: React + Tailwind CSS<br \/>Backend: node.js + \u0627\u06a9\u0633\u067e\u0631\u0633<\/p>\n<p>\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627:<br \/>mammoth.js &#8211; \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c HTML \u062a\u0645\u06cc\u0632 \u0627\u0632 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc .docx<br \/>PDFKIT &#8211; \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f PDF \u0647\u0627\u06cc \u062d\u0631\u0641\u0647 \u0627\u06cc<br \/>\u0645\u0648\u0644\u062a\u0631 &#8211; \u0628\u0631\u0627\u06cc \u0622\u067e\u0644\u0648\u062f\u0647\u0627\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0627\u0642\u062f\u0627\u0645<\/p>\n<p>\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc:<br \/>\u0641\u0627\u06cc\u0644\u0647\u0627\u06cc docx \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f<br \/>\u0645\u062d\u062a\u0648\u0627\u06cc \u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 HTML \u062a\u0645\u06cc\u0632 (\u0628\u062f\u0648\u0646 \u0633\u0628\u06a9 \u06a9\u0644\u0645\u0627\u062a \u06a9\u062b\u06cc\u0641)<br \/>PDF \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0632\u06cc\u0628\u0627 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u0648 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<br \/>UI \u067e\u0627\u0633\u062e\u06af\u0648 \u0645\u0648\u0628\u0627\u06cc\u0644<br \/>UX \u0628\u062f\u0648\u0646 \u062f\u0631\u0632 \u0628\u0627 React \u0648 Tailwind<\/p>\n<p>repo repo github:<br \/>\u06a9\u062f \u06a9\u0627\u0645\u0644 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<br \/>https:\/\/github.com\/rou-nak-cloud\/pdf-maker<\/p>\n<p>\u0622\u0646\u0686\u0647 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u0645 &#8230;<\/p>\n<ol>\n<li>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0628\u0627 \u0645\u0648\u0644\u062a\u0631 \u062f\u0631 \u0627\u06a9\u0633\u067e\u0631\u0633<\/li>\n<li>\u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc docx \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 mammoth.js<\/li>\n<li>\u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u062a\u0648\u0644\u06cc\u062f \u0633\u0631\u0648\u0631 PDFS \u0628\u0627 PDFKIT<\/li>\n<li>\u0633\u0627\u062e\u062a \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 React \u0628\u0627 Tailwind \u0648 Axios<\/li>\n<li>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0637\u0631\u0627\u062d\u06cc \u067e\u0627\u0633\u062e\u06af\u0648 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u062a\u0627 \u0627\u0646\u062a\u0647\u0627<\/li>\n<\/ol>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9 !! \ud83d\udd27<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0633\u0644\u0627\u0645 \u062f\u0648\u0633\u062a\u0627\u0646! \u0645\u0646 \u0641\u0642\u0637 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062a\u0645\u0627\u0645 \u067e\u0634\u062a\u0647 \u0631\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u0645 \u06a9\u0647 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc DOCX \u0631\u0627 \u0628\u0647 PDF \u0647\u0627\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u0642\u0627\u0628\u0644 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f-\u0647\u0645\u0647 \u0627\u0632 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u0648\u0628 \u0645\u062f\u0631\u0646. \u067e\u0634\u062a\u0647 \u0641\u0646\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a: Frontend: React + Tailwind CSSBackend: node.js + \u0627\u06a9\u0633\u067e\u0631\u0633 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627:mammoth.js &#8211; \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c HTML \u062a\u0645\u06cc\u0632 \u0627\u0632 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":108816,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkj5sn4ubc6xq10so5e6u.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-108815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=108815"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108815\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/108816"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=108815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=108815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=108815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}