{"id":32062,"date":"2026-11-07T00:56:07","date_gmt":"2026-11-07T00:56:07","guid":{"rendered":"https:\/\/umang.pk\/2026\/11\/07\/%d8%ac%d8%a7%d9%88%d8%a7-%d8%a7%d8%b3%da%a9%d8%b1%d9%be%d9%b9-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%be%db%8c-%da%88%db%8c-%d8%a7\/"},"modified":"2026-11-07T00:56:09","modified_gmt":"2026-11-07T00:56:09","slug":"%d8%ac%d8%a7%d9%88%d8%a7-%d8%a7%d8%b3%da%a9%d8%b1%d9%be%d9%b9-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%be%db%8c-%da%88%db%8c-%d8%a7","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/11\/07\/%d8%ac%d8%a7%d9%88%d8%a7-%d8%a7%d8%b3%da%a9%d8%b1%d9%be%d9%b9-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%be%db%8c-%da%88%db%8c-%d8%a7\/","title":{"rendered":"\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646\u0632\u060c \u0627\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0631\u067e\u0648\u0631\u0679\u0633\u060c \u06a9\u0648\u0631\u0633 \u06a9\u06d2 \u0645\u0648\u0627\u062f\u060c \u0645\u0632\u0627\u062d\u06cc\u06c1 \u0635\u0641\u062d\u0627\u062a \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0635\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u06cc\u06a9 \u0637\u0648\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0645\u06cc\u06ba \u0648\u0642\u062a \u0644\u06af \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0648\u0642\u062a \u0644\u06af \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0645\u0646\u0627\u0638\u0631\u060c \u0633\u0644\u0627\u0626\u06cc\u0688\u0632 \u06cc\u0627 \u0628\u0635\u0631\u06cc \u0645\u0648\u0627\u062f \u06a9\u06cc \u067e\u0648\u0631\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06d4<\/p>\n<p>\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0627\u0633 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0646\u0638\u0645 \u0637\u0631\u06cc\u0642\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0635\u0627\u0631\u0641 \u0645\u0646\u062a\u062e\u0628 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0634\u06cc\u0679 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u067e\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631\u060c \u06a9\u06cc\u067e\u0634\u0646\u060c \u0627\u0648\u0631 \u0627\u0635\u0644 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0628\u0635\u0631\u06cc \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0634\u0627\u0645\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba \u06c1\u0645 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679\u060c PDF.js\u060c \u0627\u0648\u0631 PDF-lib \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc PDF \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0633\u06d2 \u0635\u0641\u062d\u0627\u062a \u0644\u06cc\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u067e\u0631\u0646\u0679 \u0627\u06cc\u0628\u0644 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0645\u062e\u062a\u0644\u0641 \u062a\u0631\u062a\u06cc\u0628\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u06a9\u06cc\u067e\u0634\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0628\u0646\u0627\u0646\u0627\u060c \u0646\u062a\u0627\u0626\u062c \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0686\u0644\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u0633\u0631\u0648\u0631 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u0631\u0648\u0633\u06cc\u0633 \u06a9\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u0626\u06cc\u06d2 \u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0628\u0634\u0645\u0648\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u0627\u060c \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u0646\u0627\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u0627\u060c \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u0627\u060c \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0628\u0646\u0627\u0646\u0627\u060c \u0627\u0648\u0631 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<h3 id=\"heading-what-well-cover\">\u06c1\u0645 \u06a9\u06cc\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2:<\/h3>\n<h2 id=\"heading-what-is-a-pdf-storyboard-generator\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0633\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0633\u0627\u062e\u062a\u06cc \u0628\u0635\u0631\u06cc \u0634\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0641\u0631\u0636 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba 20 \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646 \u0633\u0644\u0627\u0626\u06cc\u0688\u0632 \u06c1\u06cc\u06ba\u06d4 \u062a\u0645\u0627\u0645 20 \u0633\u0644\u0627\u0626\u06cc\u0688\u0648\u06ba \u06a9\u0648 \u0627\u0644\u06af \u0627\u0644\u06af \u0634\u06cc\u0626\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u0627\u0646\u06c1\u06cc\u06ba \u062a\u06cc\u0646 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u062f\u0648 \u0642\u0637\u0627\u0631\u0648\u06ba \u0641\u06cc \u0634\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0631 \u067e\u06cc\u0646\u0644 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u0627 \u0648\u0631\u0698\u0646 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0646\u0645\u0628\u0631 \u06cc\u0627 \u0644\u06cc\u0628\u0644 \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u0627\u06cc\u06a9 \u0645\u062e\u062a\u0635\u0631 \u062a\u0641\u0635\u06cc\u0644 \u0644\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba \u0628\u06be\u06cc \u06cc\u06c1\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631\u0622\u0645\u062f \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646 \u0633\u0644\u0627\u0626\u06cc\u0688\u0632 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba\u06d4<\/li>\n<li>\u0645\u0632\u0627\u062d\u06cc\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0635\u0641\u0627\u0626\u06cc\u06d4<\/li>\n<li>\u0648\u06cc\u0688\u06cc\u0648 \u0645\u0646\u0638\u0631 \u06a9\u06cc \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc.<\/li>\n<li>\u0627\u06cc\u06a9 \u0628\u0635\u0631\u06cc \u0627\u0633\u06a9\u0631\u067e\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u067e\u0631\u0646\u0679 \u0627\u06cc\u0628\u0644 \u062a\u0631\u0628\u06cc\u062a\u06cc \u0645\u0648\u0627\u062f \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/li>\n<li>\u062a\u062e\u0644\u06cc\u0642\u06cc \u0645\u0646\u0635\u0648\u0628\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0641\u062d\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/li>\n<\/ul>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0646\u0626\u06d2 \u0645\u0646\u0627\u0638\u0631 \u0646\u06c1\u06cc\u06ba \u0628\u0646\u0627\u062a\u06cc \u0627\u0648\u0631 \u0646\u06c1 \u06c1\u06cc \u062a\u0635\u0648\u06cc\u0631\u06cc\u06ba \u06a9\u06be\u06cc\u0646\u0686\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-main-features-of-the-application\">\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0627\u06c1\u0645 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a<\/h2>\n<p>\u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u06a9\u0648\u0688 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u0626\u06cc\u06d2 \u0627\u0633 \u0641\u0646\u06a9\u0634\u0646\u0644\u0679\u06cc \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba \u062c\u0633\u06d2 \u06c1\u0645 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u062c\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-1-pdf-upload\">1. \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0648\u0627\u0626\u0633 \u0633\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0627\u0633\u06d2 \u06af\u06be\u0633\u06cc\u0679 \u06a9\u0631 \u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0645\u06cc\u06ba \u0686\u06be\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-2-multiple-storyboard-layouts\">2. \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679<\/h3>\n<p>\u06cc\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2:<\/p>\n<ul>\n<li>\u06af\u0631\u0688: \u0635\u0641\u062d\u0648\u06ba \u06a9\u0648 \u0642\u0637\u0627\u0631\u0648\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0646\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06cc\u0646\u0644: \u0635\u0641\u062d\u06c1 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0622\u06af\u06d2 \u0646\u0648\u0679 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06af\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0641\u0644\u0645 \u0627\u0633\u0679\u0631\u06cc\u067e: \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0641\u0644\u0645\u06cc \u067e\u0679\u06cc \u06a9\u06d2 \u0627\u0646\u062f\u0627\u0632 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/li>\n<\/ul>\n<h3 id=\"heading-3-page-selection-and-ordering\"><strong>3. \u0635\u0641\u062d\u0627\u062a \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0622\u0631\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong><\/h3>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c\u0632 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0622\u0631\u0688\u0631 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0622\u0631\u0688\u0631 \u0628\u06be\u06cc \u0628\u062a\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-4-captions\">4. \u06a9\u06cc\u067e\u0634\u0646<\/h3>\n<p>\u0635\u0627\u0631\u0641 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u062f\u0631\u062c \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062e\u0627\u0644\u06cc \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u0648 \u067e\u064f\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06a9\u0627\u0644\u06d2 \u06af\u0626\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0645\u062a\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06cc\u0627 \u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 OCR \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-5-customization\">5. \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a<\/h3>\n<p>\u0635\u0627\u0631\u0641 \u06a9\u0627\u063a\u0630 \u06a9\u06d2 \u0633\u0627\u0626\u0632\u060c \u0648\u0627\u0642\u0641\u06cc\u062a\u060c \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u060c \u0634\u06cc\u0679 \u06a9\u0627 \u0631\u0646\u06af\u060c \u06a9\u06cc\u067e\u0634\u0646 \u0641\u0648\u0646\u0679\u060c \u0679\u06cc\u06a9\u0633\u0679 \u0633\u0627\u0626\u0632\u060c \u0648\u0642\u0641\u06c1 \u06a9\u0627\u0631\u06cc\u060c \u0627\u0648\u0631 \u067e\u06cc\u0646\u0644 \u0641\u0631\u06cc\u0645 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-6-live-preview\">6. \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1<\/h3>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0641\u0627\u0626\u0646\u0644 \u0622\u0624\u0679 \u067e\u0679 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0646\u062a\u0638\u0627\u0645\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>7. \u0645\u062e\u062a\u0644\u0641 \u0628\u0631\u0622\u0645\u062f\u06cc \u0641\u0627\u0631\u0645\u06cc\u0679\u0633<\/strong><\/p>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u067e\u0646\u06d2 \u06a9\u0627\u0645 \u06a9\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688\u06d4<\/li>\n<li>PNG \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u06d4<\/li>\n<li>\u0632\u067e \u0641\u0627\u0626\u0644 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/li>\n<\/ul>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u062c\u0628 \u0645\u0645\u06a9\u0646 \u06c1\u0648 \u062a\u0648 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0627\u0635\u0644 \u0645\u0648\u0627\u062f \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06a9\u06d2 \u06a9\u0631\u06a9\u0631\u0627 \u0645\u062a\u0646 \u0627\u0648\u0631 \u06af\u0631\u0627\u0641\u06a9\u0633 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-understanding-the-browser-based-workflow\">\u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u06d4<\/h2>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0639\u0645\u0644 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<ol>\n<li>\u0635\u0627\u0631\u0641\u06cc\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0627\u0633\u06d2 \u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0645\u06cc\u06ba \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/li>\n<li>PDF.js \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688 \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/li>\n<li>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0635\u0641\u062d\u0627\u062a \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u062f\u0631\u062c \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/li>\n<li>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0648\u0631 \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/li>\n<li>JavaScript \u06c1\u0631 \u067e\u06cc\u0646\u0644 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u0627\u0648\u0631 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0622\u067e \u06a9\u06cc \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u067e \u0688\u06cc\u0679\u0633\u06d4<\/li>\n<li>PDF-lib \u0627\u0648\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u06d2 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<\/ol>\n<p><strong>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633<\/strong><\/p>\n<p><strong>\u067e\u06cc\u0646\u0644\u0632 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012966_316_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u0627\u06cc\u06a9 PDF \u0635\u0641\u062d\u06c1 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1\u060c \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688\u060c \u0627\u0648\u0631 OCR \u06a9\u0646\u0679\u0631\u0648\u0644\u0632 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4\" style=\"display: block;\" width=\"1239\" height=\"661\" loading=\"lazy\" title=\"\"><\/p>\n<p><strong>\u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_1_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0633\u06cc\u0679\u0646\u06af \u067e\u06cc\u0646\u0644 \u0644\u06d2 \u0622\u0624\u0679\u060c \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628\u060c \u06a9\u0627\u063a\u0630 \u06a9\u0627 \u0633\u0627\u0626\u0632\u060c \u0648\u0627\u0642\u0641\u06cc\u062a\u060c \u06a9\u06cc\u067e\u0634\u0646\u060c \u0627\u0648\u0631 \u0644\u0627\u0626\u06cc\u0648 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4\" style=\"display: block;\" width=\"1234\" height=\"854\" loading=\"lazy\" title=\"\"><\/p>\n<p><strong>\u0622\u062e\u0631\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_1_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"A4 \u0644\u06cc\u0646\u0688 \u0627\u0633\u06a9\u06cc\u067e \u0634\u06cc\u0679 \u067e\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0626\u06d2 \u06af\u0626\u06d2 \u062a\u06cc\u0646 \u0646\u0645\u0628\u0631 \u0648\u0627\u0644\u06d2 \u067e\u06cc\u0646\u0644\u0632 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062d\u062a\u0645\u06cc PDF \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u0627\u06cc\u06a9 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1\u06d4\" style=\"display: block;\" width=\"833\" height=\"828\" loading=\"lazy\" title=\"\"><\/p>\n<p><strong>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\u06d4<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_301_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc\u0627 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u06cc\u0646 \u0645\u0646\u0633\u0644\u06a9 \u067e\u06cc\u0646\u0644 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4\" style=\"display: block;\" width=\"1134\" height=\"803\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-project-setup\">\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a<\/h2>\n<p>JavaScript \u06a9\u06d2 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u06c1\u0648\u06af\u0627 \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u0633\u0627\u062e\u062a \u06a9\u06cc\u0633\u06d2 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644\u060c \u0633\u06cc \u0627\u06cc\u0633 \u0627\u06cc\u0633 \u0627\u0648\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0633\u06cc \u0627\u06cc\u0633 \u0627\u06cc\u0633 \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af\u060c \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1\u060c \u06a9\u06cc\u067e\u0634\u0646\u060c \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06d2 \u062d\u0633\u0627\u0628 \u06a9\u062a\u0627\u0628\u060c \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u0646\u06af \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u0679\u06cc\u0646\u0688 \u0644\u0648\u0646 \u0688\u0648\u06cc\u0644\u067e\u0645\u0646\u0679 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u0627\u067e\u0646\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0627\u0633 \u0637\u0631\u062d \u062a\u0631\u062a\u06cc\u0628 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-text\">pdf-storyboard-generator\/\n\u251c\u2500\u2500 index.html\n\u251c\u2500\u2500 style.css\n\u251c\u2500\u2500 script.js\n\u2514\u2500\u2500 assets\/\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>index.html<\/code> \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0627\u067e\u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627\u060c \u067e\u06cc\u062c \u067e\u06cc\u0646\u0644\u0632\u060c \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688\u0632\u060c \u0628\u0648\u0631\u0688 \u0633\u06cc\u0679\u0646\u06af\u0632 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0633\u0645\u06cc\u062a \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>style.css<\/code> \u0641\u0627\u0626\u0644\u06cc\u06ba \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633\u060c \u067e\u06cc\u0646\u0644 \u06af\u0631\u0688\u060c \u0641\u0627\u0631\u0645 \u06a9\u0646\u0679\u0631\u0648\u0644\u0632\u060c \u0628\u0679\u0646\u060c \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u06cc\u0631\u06cc\u0627\u060c \u0627\u0648\u0631 \u0631\u06cc\u0633\u067e\u0627\u0646\u0633\u06cc\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>script.js<\/code> \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u0646\u0637\u0642 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u060c \u0635\u0641\u062d\u0627\u062a \u067e\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba\u060c OCR \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0626\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>assets<\/code> \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0622\u067e \u06a9\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u06a9\u0627\u0631 \u0627\u0636\u0627\u0641\u06cc \u0645\u0642\u0627\u0645\u06cc \u0648\u0633\u0627\u0626\u0644 \u0631\u06a9\u06be \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 AllInOneTools \u06a9\u06d2 \u0646\u0641\u0627\u0630 \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0627\u062c\u0632\u0627\u0621 \u0622\u067e \u06a9\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u0679\u0648\u0644\u0632 \u067e\u06cc\u062c \u0645\u06cc\u06ba \u0686\u0627\u0631 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0636\u0645 \u06a9\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u06cc \u0648\u06c1\u06cc \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u0627\u0628 \u0628\u06be\u06cc \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-libraries-used\">\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0627\u06ba<\/h2>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u067e\u0646\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0648\u0631 \u0627\u0645\u06cc\u062c \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0646 \u0627\u06c1\u0645 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0648\u06ba \u06cc\u0627 \u0628\u0631\u0627\u0624\u0632\u0631 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-1-pdfjs\">1. PDF.js<\/h3>\n<p>\u06c1\u0645 PDF.js \u06a9\u0648 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 JavaScript \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0635\u0641\u062d\u06c1 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2\u060c \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2\u060c \u0627\u06cc\u06a9 \u0648\u06cc\u0648 \u067e\u0648\u0631\u0679 \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u0648 HTML \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u06a9\u06be\u06cc\u0646\u0686\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c PDF.js \u0627\u0635\u0644 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0630\u0645\u06c1 \u062f\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0633\u0627\u0626\u0632 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 PDF.js \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0635\u0627\u0631\u0641 \u0645\u06a9\u0645\u0644 \u0634\u06cc\u0679 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0648 \u06c1\u0631 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0628\u0635\u0631\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u062f\u06a9\u06be\u0627\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<h3 id=\"heading-2-pdf-lib\">2. PDF-lib<\/h3>\n<p>\u06c1\u0645 PDF-lib \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u060c \u062c\u0648 \u062d\u062a\u0645\u06cc PDF \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>PDF.js \u0627\u0648\u0631 PDF-lib \u06a9\u06cc \u0645\u062e\u062a\u0644\u0641 \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0627\u06ba \u06c1\u06cc\u06ba\u06d4 PDF.js \u0645\u0627\u062e\u0630 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628\u06a9\u06c1 PDF-lib \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 PDF \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0622\u0624\u0679 \u067e\u0679 \u067e\u06cc\u062c \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 PDF-lib \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u06af\u0631 \u0645\u0645\u06a9\u0646 \u06c1\u0648 \u062a\u0648 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u0627\u06cc\u0645\u0628\u06cc\u0688 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0627\u0633 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0635\u0644 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u0679\u06cc\u06a9\u0633\u0679 \u0627\u0648\u0631 \u0644\u0627\u0626\u0646 \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641 \u0628\u0631\u0622\u0645\u062f \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0628\u0691\u0627 \u06cc\u0627 \u067e\u0631\u0646\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0646\u0641\u0627\u0630 \u067e\u0627\u0633 \u0648\u0631\u0688 \u0633\u06d2 \u0645\u062d\u0641\u0648\u0638 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0627\u0633\u0679\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0641\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0627 \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u06cc\u0645\u0628\u06cc\u0688 \u067e\u0627\u062a\u06be \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u0648\u0688 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u06d2 \u062c\u0627 \u0633\u06a9\u062a\u06d2\u06d4<\/p>\n<h3 id=\"heading-3-tesseractjs\">3. Tesseract.js<\/h3>\n<p>\u06cc\u06c1 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0622\u067e\u0679\u06cc\u06a9\u0644 \u06a9\u0631\u06cc\u06a9\u0679\u0631 \u0631\u06cc\u06a9\u06af\u0646\u06cc\u0634\u0646 (OCR) \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u06ba \u0642\u0627\u0628\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062a\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06cc\u06ba \u0627\u0635\u0644 \u0679\u06cc\u06a9\u0633\u0679 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u067e\u0631\u0646\u0679 \u0634\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 OCR \u0622\u067e\u0634\u0646 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Tesseract.js \u0627\u0648\u0631 \u0627\u0633 \u06a9\u0627 \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc \u0688\u06cc\u0679\u0627 \u0644\u0648\u0688 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06cc\u06c1 \u0627\u06c1\u0644 \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>OCR \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 OCR \u0627\u0646\u062c\u0646 \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u0627\u06af\u0631 \u0648\u06c1 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0644\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u062b\u0627\u0644 \u0633\u06d2 \u067e\u062a\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0627\u0633\u0679\u06cc\u0646\u0688 \u0627\u0633\u0679\u0648\u0646 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba CDN \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0634\u0627\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-html\"><script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/4.4.168\/pdf.min.js\"\/>\n<script src=\"https:\/\/unpkg.com\/pdf-lib\/dist\/pdf-lib.min.js\"\/>\n<script src=\"script.js\"\/>\n<\/code><\/pre>\n<p>\u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0648\u0631\u0698\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0633 \u06a9\u0627 \u0622\u067e \u0646\u06d2 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u06a9\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 PDF.js \u0628\u0644\u0688 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0627\u06cc\u06a9 \u0645\u0645\u0627\u062b\u0644 PDF.js \u0648\u0631\u06a9\u0631 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-why-these-libraries-work-together\">\u06cc\u06c1 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0627\u06ba \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/h3>\n<p>\u06c1\u0631 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u06cc \u0627\u0644\u06af \u0627\u0644\u06af \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0627\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>PDF.js \u0633\u0648\u0631\u0633 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0635\u0641\u062d\u0627\u062a \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 Tesseract.js \u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u0637\u0648\u0631 \u067e\u0631 \u0646\u06a9\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4 PDF-lib \u062d\u062a\u0645\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>JavaScript \u0627\u0646 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u0648\u0632\u0631 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u0627\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1\u060c \u06a9\u0633\u06cc \u0627\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba \u062c\u0633\u06d2 \u062f\u0648\u0633\u0631\u06cc \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u06c1\u062a\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h2 id=\"heading-preparing-the-html-workspace\">\u0627\u067e\u0646\u0627 HTML \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u067e\u0648\u0631\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u0634\u0639\u0628\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06cc\u0646\u0644 \u0627\u06cc\u0631\u06cc\u0627 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688\u0632 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0631 \u0638\u0627\u06c1\u0631\u06cc \u06a9\u0646\u0679\u0631\u0648\u0644 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0627 \u0639\u0644\u0627\u0642\u06c1 \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0631\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u0633\u0627\u0646 HTML \u0688\u06be\u0627\u0646\u0686\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-html\"><section id=\"aiot-sb\">\n    <p>\n        <input type=\"file\" id=\"aiot-sb-file-input\" accept=\"application\/pdf,.pdf\"\/>\n        <button type=\"button\" data-act=\"browse\">\n            Select a PDF\n        <\/button>\n    <\/p>\n    \n    \n    \n<\/section>\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0645\u062b\u0627\u0644\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u062c\u0648 \u0645\u0631\u06a9\u0632\u06cc \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0639\u0644\u0627\u0642\u0648\u06ba \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06cc \u06a9\u0646\u0679\u0631\u0648\u0644\u0632\u060c \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a\u060c \u0627\u0648\u0631 \u0645\u062e\u062a\u0644\u0641 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u0646\u0627\u0635\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>aiot-sb<\/code> \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u062c\u0691 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 JavaScript \u067e\u0648\u0631\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u0631\u0648\u0679 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-selecting-the-main-dom-elements\">\u06a9\u0644\u06cc\u062f\u06cc DOM \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 JavaScript \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06d2\u060c \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0639\u0646\u0635\u0631 \u06a9\u06d2 \u062d\u0648\u0627\u0644\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u0679 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06a9\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u062c\u0627\u0646\u0686\u0646\u06d2 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u0628\u062a\u062f\u0627\u0621 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0646\u062c\u0627\u0645 \u067e\u0627 \u0686\u06a9\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var root = document.getElementById(\"aiot-sb\");\nif (!root || root.getAttribute(\"data-aiot-sb-ready\")) {\n    return;\n}\nroot.setAttribute(\"data-aiot-sb-ready\", \"1\");\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0628\u0627\u0631 \u0686\u0644\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06cc\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0646\u0641\u0627\u0630 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u0645\u062f\u062f\u06af\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">function q(selector) {\n    return root.querySelector(selector);\n}\n<\/code><\/pre>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>q('[data-act=\"browse\"]')<\/code> \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644 \u0686\u0646\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0628\u0679\u0646 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u0645\u06cc\u06ba \u062f\u0648\u0633\u0631\u06d2 \u0679\u0648\u0644\u0632 \u06cc\u0627 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0627\u062c\u0632\u0627\u0621 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062a\u0648 \u0631\u0648\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062e\u0635\u0648\u0635 \u0645\u062f\u062f\u06af\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0622\u067e \u06a9\u06d2 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648\u0688 \u06a9\u0648 \u0645\u0646\u0638\u0645 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-defining-important-configuration-values\">\u0627\u06c1\u0645 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0686\u06be \u0645\u0634\u062a\u0631\u06a9\u06c1 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0648\u06cc\u0644\u06cc\u0648\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u0639\u0627\u0648\u0646 \u06a9\u0627\u063a\u0630 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0641\u0648\u0646\u0679 \u0641\u06cc\u0645\u0644\u06cc\u0632 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">var MM = 72 \/ 25.4;\nvar PAPERS = {\n    a4: [595.28, 841.89],\n    letter: [612, 792],\n    a3: [841.89, 1190.55],\n    slide: [405, 720]\n};\nvar PAPER_NAMES = {\n    a4: \"A4\",\n    letter: \"Letter\",\n    a3: \"A3\",\n    slide: \"16:9 slide\"\n};\n<\/code><\/pre>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628\u06a9\u06c1 \u06a9\u0686\u06be \u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0633\u067e\u06cc\u0633\u0646\u06af \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0648 \u0645\u0644\u06cc \u0645\u06cc\u0679\u0631 \u0645\u06cc\u06ba \u0633\u0645\u062c\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>MM<\/code> \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06cc \u0642\u062f\u0631\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0627\u0646 \u0627\u06a9\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>PAPERS<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u06d2 \u0648\u0642\u062a \u0627\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>PAPER_NAMES<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0644\u06cc\u0628\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0645\u062a\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0648\u0646\u0679 \u0641\u06cc\u0645\u0644\u06cc\u0632 \u06a9\u06cc \u0628\u06be\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var FONTS = {\n    sans: \"Arial, 'Helvetica Neue', Helvetica, sans-serif\",\n    serif: \"Georgia, 'Times New Roman', serif\",\n    mono: \"'Courier New', Courier, monospace\",\n    hand: \"'Segoe Print', 'Bradley Hand', cursive\"\n};\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0642\u062f\u0627\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u067e\u0648\u0631\u06d2 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u0641\u0648\u0646\u0679 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641\u06cc\u06ba \u062f\u06c1\u0631\u0627\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u062a\u0646 \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0627\u0646\u062f\u0627\u0632 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-understanding-the-application-state\">\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u062d\u0627\u0644\u062a \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0644\u0648\u0688 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641\u060c \u0627\u0633 \u06a9\u06d2 \u0635\u0641\u062d\u0627\u062a\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632\u060c \u0645\u0646\u062a\u062e\u0628 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u0648\u0631 \u0628\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 \u06cc\u0627\u062f \u0631\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u067e\u0648\u0631\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062f\u06c1 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06af\u0631\u0648\u067e \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0631\u06cc\u0627\u0633\u062a\u06cc \u0627\u0634\u06cc\u0627\u0621 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u06cc\u0633\u06d2:<\/p>\n<ul>\n<li>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u06be\u0631\u06cc \u06c1\u0648\u0626\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06c1\u06d2\u06d4<\/li>\n<li>\u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0627\u0626\u0679\u0633\u06d4<\/li>\n<li>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645\u06d4<\/li>\n<li>\u0635\u0641\u062d\u06c1 \u06a9\u06cc\u067e\u0634\u0646\u06d4<\/li>\n<li>\u0635\u0641\u062d\u06c1 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0688\u06cc\u0679\u0627\u06d4<\/li>\n<li>\u0644\u0648\u0688 \u0627\u0648\u0631 \u0628\u0631\u0622\u0645\u062f \u06a9\u06cc \u062d\u06cc\u062b\u06cc\u062a\u06d4<\/li>\n<li>\u0627\u06af\u0631 OCR \u0641\u0639\u0627\u0644 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 OCR \u06a9\u0627\u0631\u06a9\u0646 \u06c1\u06d2\u06d4<\/li>\n<li>\u0645\u0646\u0633\u0648\u062e \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0679\u0648\u06a9\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/li>\n<\/ul>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u0646\u0641\u0627\u0630 \u0627\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0648 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u0646\u0638\u0645 \u06a9\u0631\u06d2 \u06af\u0627 \u0627\u0648\u0631 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0627\u0648\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0645\u06cc\u06ba \u0627\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u0648\u0642\u062a \u0627\u06c1\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06cc\u0627 \u0644\u06d2 \u0622\u0624\u0679 \u0633\u06cc\u0679\u0646\u06af\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u06cc\u06c1 \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06cc \u0642\u062f\u0631\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u0626\u06cc \u06c1\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0648 \u0645\u0627\u062e\u0630 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u06be\u0648\u0644\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<h2 id=\"heading-uploading-a-pdf\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u067e\u06c1\u0644\u0627 \u0642\u062f\u0645 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc \u062c\u0627\u0626\u06d2\u06d4 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u062f\u0648 \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0641\u0627\u0626\u0644 \u0686\u0646\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u0627 \u06cc\u0627 \u0627\u0646\u06c1\u06cc\u06ba \u06af\u06be\u0633\u06cc\u0679 \u06a9\u0631 \u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0645\u06cc\u06ba \u0686\u06be\u0648\u0691\u0646\u0627\u06d4<\/p>\n<p>\u0641\u0627\u0626\u0644 \u0627\u0646 \u067e\u0679 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-html\"><input type=\"file\" id=\"aiot-sb-file-input\" accept=\"application\/pdf,.pdf\"\/>\n<\/code><\/pre>\n<p>\u0622\u0626\u06cc\u06d2 \u0633\u0645\u062c\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>accept<\/code> \u0633\u06d2 \u0645\u0646\u0633\u0648\u0628:<\/p>\n<ul>\n<li><code>application\/pdf<\/code>    \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644 \u06a9\u06cc MIME \u0642\u0633\u0645\u06d4<\/li>\n<li><code>.pdf<\/code>    \u06cc\u06c1 \u0641\u0627\u0626\u0644 \u06a9\u06cc \u062a\u0648\u0633\u06cc\u0639 \u06c1\u06d2\u06d4<\/li>\n<\/ul>\n<p>MIME \u0642\u0633\u0645 (\u0645\u0644\u0679\u06cc \u067e\u0631\u067e\u0632 \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u0645\u06cc\u0644 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u0679\u0627\u0626\u067e) \u0641\u0627\u0626\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0628\u0631\u0627\u0624\u0632\u0631 MIME \u0627\u0642\u0633\u0627\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u06c1 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1 \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u0627 \u0645\u0648\u0627\u062f \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>application\/pdf<\/code> \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 MIME \u0642\u0633\u0645 \u0627\u0648\u0631 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u06cc \u062a\u0648\u0633\u06cc\u0639 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06a9\u0686\u06be \u0628\u0631\u0627\u0624\u0632\u0631 \u06cc\u0627 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u0645\u0646\u062a\u062e\u0628 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0627\u0644\u06cc \u06cc\u0627 \u063a\u0644\u0637 MIME \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0645\u062f\u062f\u06af\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2:<\/p>\n<pre><code class=\"language-javascript\">function isPdf(file) {\n    return file.type === 'application\/pdf' ||\n        \/.pdf$\/i.test(file.name || '');\n}\n<\/code><\/pre>\n<p>\u067e\u06c1\u0644\u06cc \u0634\u0631\u0637 \u0641\u0627\u0626\u0644 \u06a9\u06cc MIME \u0642\u0633\u0645 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u062f\u0648\u0633\u0631\u0627 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062e\u062a\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>.pdf<\/code>. \u06a9\u06c1 <code>i<\/code> \u062c\u06be\u0646\u0688\u0627 \u062a\u0648\u0633\u06cc\u0639\u06cc \u0686\u06cc\u06a9\u0646\u06af \u06a9\u0648 \u06a9\u06cc\u0633 \u063a\u06cc\u0631 \u062d\u0633\u0627\u0633 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0646\u0627\u0645 \u062c\u06cc\u0633\u06d2 <code>document.PDF<\/code> \u06a9\u06cc \u0628\u06be\u06cc \u0627\u062c\u0627\u0632\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u067e \u0644\u0648\u0688 \u06a9\u06d2 \u062f\u0648\u0646\u0648\u06ba \u0637\u0631\u06cc\u0642\u06d2 \u06cc\u06a9\u0633\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>handleFiles()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0645\u0631\u0627\u062d\u0644 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-javascript\">function handleFiles(list, password) {\n    var all = Array.prototype.slice.call(list || []);\n    ui.input.value=\"\";\n\n    if (!all.length) {\n        return Promise.resolve();\n    }\n\n    var file = all.filter(isPdf)[0];\n\n    if (!file) {\n        toast(\"That isn't a PDF. Choose a PDF file.\", 'error');\n        return Promise.resolve();\n    }\n\n    var note = all.length > 1\n        ? ' Only ' + file.name + ' was opened; a storyboard uses one PDF.'\n        : '';\n\n    var token = ++state.loadToken;\n    var hadDoc = !!state.doc;\n    var task, bytes;\n\n    if (hadDoc) {\n        ui.fileMeta.textContent=\"Opening \" + file.name + '\u2026';\n    }\n\n    setStatus('Opening ' + file.name + '\u2026', true);\n\n    \/\/ The remaining function loads and processes the selected PDF.\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u0641\u06c1\u0631\u0633\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0635\u0641 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06c1\u0644\u06cc \u062f\u0631\u0633\u062a \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u062f\u0631\u0633\u062a \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0646\u06c1\u06cc\u06ba \u0645\u0644\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0627\u06cc\u06a9 \u063a\u0644\u0637\u06cc \u06a9\u0627 \u067e\u06cc\u063a\u0627\u0645 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0631\u06a9 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>loadToken<\/code> \u0642\u062f\u0631 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0644\u0648\u0688 \u0622\u067e\u0631\u06cc\u0634\u0646 \u06a9\u0648 \u067e\u0686\u06be\u0644\u06d2 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u0633\u06d2 \u0645\u0645\u062a\u0627\u0632 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0648\u0642\u062a \u0627\u06c1\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0635\u0627\u0631\u0641 \u062f\u0648\u0633\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u06c1 \u067e\u0686\u06be\u0644\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u062c\u0627\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0648\u0646\u06d2 \u062a\u06a9 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0646\u062a\u062e\u0628 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u067e\u0691\u06be\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">return engine().then(function () {\n    return file.arrayBuffer();\n}).then(function (buf) {\n    bytes = buf;\n\n    var opts = {\n        data: new Uint8Array(buf.slice(0))\n    };\n\n    if (password) {\n        opts.password = password;\n    }\n\n    task = window.pdfjsLib.getDocument(pdfjsOptions(opts));\n    return task.promise;\n});\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>file.arrayBuffer()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u06ba \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>Uint8Array<\/code> \u0627\u0633\u06d2 PDF.js \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u06be\u06cc\u062c\u06cc\u06ba: <code>getDocument()<\/code>.<\/p>\n<p>\u0627\u06af\u0631 \u067e\u0627\u0633 \u0648\u0631\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u06d2 PDF.js \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u0635\u0644 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0631\u0627\u06cc\u062a \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0648\u063a\u06cc\u0631\u06c1\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631 \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4 \u0627\u0633\u06d2 \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u0633\u0631\u0648\u0631 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-loading-the-pdf-with-pdfjs\">PDF.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u0628 \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u0648 \u067e\u0691\u06be\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u0648 PDF.js \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>PDF.js \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0639\u0645\u0644 \u0627\u06cc\u06a9 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06d2 \u0635\u0641\u062d\u0627\u062a \u0627\u0648\u0631 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba\u060c PDF.js \u06a9\u0648 \u0641\u0627\u0626\u0644 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u06d2 \u0644\u0648\u0688 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0645\u0646\u062a\u062e\u0628 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u067e\u0691\u06be\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633 \u0688\u06cc\u0679\u0627 \u06a9\u0648 PDF.js \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">return engine().then(function () {\n    return file.arrayBuffer();\n}).then(function (buf) {\n    bytes = buf;\n\n    var opts = {\n        data: new Uint8Array(buf.slice(0))\n    };\n\n    if (password) {\n        opts.password = password;\n    }\n\n    task = window.pdfjsLib.getDocument(pdfjsOptions(opts));\n    return task.promise;\n});\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>engine()<\/code> \u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0636\u0631\u0648\u0631\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0627\u06ba \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0634\u0631\u0648\u0639 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>file.arrayBuffer()<\/code> \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u06ba \u0644\u0648\u0688 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u06a9\u06c1 <code>Uint8Array<\/code> \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u0641\u0627\u0626\u0644 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0627\u06cc\u06a9 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 PDF.js \u067e\u0631\u0648\u0633\u06cc\u0633 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u067e\u0627\u0633 \u0648\u0631\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u067e\u0627\u0633 \u0648\u0631\u0688 PDF.js \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>getDocument()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688\u0646\u06af \u06a9\u0627 \u0639\u0645\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 <code>task.promise<\/code> \u06cc\u06c1 \u0627\u0633 \u0648\u0642\u062a \u062d\u0644 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0628 PDF.js \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u0633\u06d2 \u06a9\u06be\u0648\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u062a\u06cc\u062c\u06c1 \u062e\u06cc\u0632 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0622\u0628\u062c\u06cc\u06a9\u0679 PDF \u0635\u0641\u062d\u0627\u062a \u0627\u0648\u0631 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0628\u0639\u062f \u06a9\u06d2 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u0646\u0627\u060c \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u0646\u0627\u060c \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0628\u0646\u0627\u0646\u0627\u06d4<\/p>\n<h2 id=\"heading-measuring-pdf-pages\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634<\/h2>\n<p>\u06a9\u0633\u06cc \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0627\u0633 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0645\u062e\u062a\u0644\u0641 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0648\u0627\u0642\u0641\u06cc\u062a \u06a9\u06d2 \u0635\u0641\u062d\u0627\u062a \u0634\u0627\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u062c\u0646 \u06a9\u0648 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062f\u0631\u0633\u062a \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0641\u0679 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2: <code>pageFacts()<\/code> \u0627\u06cc\u06a9 \u062e\u0635\u0648\u0635\u06cc\u062a \u062c\u0648 \u06c1\u0631 \u0635\u0641\u062d\u06d2 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0691\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u0642\u062a\u0627 \u0641\u0648\u0642\u062a\u0627 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function pageFacts(doc, token) {\n    var sizes = [];\n\n    for (var n = 1; n <= doc.numPages; n++) {\n        if (token !== state.loadToken) {\n            return null;\n        }\n\n        if (n % 25 === 0) {\n            setStatus(\n                'Measuring pages: ' + n + ' of ' + doc.numPages + '\u2026',\n                true\n            );\n            await nextFrame();\n        }\n\n        var p = await doc.getPage(n);\n        var vp = p.getViewport({ scale: 1 });\n\n        sizes.push([vp.width, vp.height]);\n    }\n\n    return sizes;\n}\n<\/code><\/pre>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1 \u0628\u0646\u0627 \u06a9\u0631 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>sizes<\/code> \u0635\u0641 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0639\u0627\u062f\u06c1 \u06a9\u0631\u06cc\u06ba: <code>doc.numPages<\/code> \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 <code>doc.getPage(n)<\/code>.<\/p>\n<p>\u06a9\u06c1 <code>getViewport({ scale: 1 })<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0627\u0635\u0644 \u0633\u0627\u0626\u0632 \u067e\u0631 \u0645\u0627\u067e\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u0686\u0648\u0691\u0627\u0626\u06cc \u0627\u0648\u0631 \u0627\u0648\u0646\u0686\u0627\u0626\u06cc \u06a9\u0648 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>sizes<\/code> \u0635\u0641<\/p>\n<p>\u06a9\u06c1 <code>token<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u067e\u0631\u0627\u0646\u06d2 \u0644\u0648\u0688 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0679\u0648\u06a9\u0646 \u0645\u0632\u06cc\u062f \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>state.loadToken<\/code>\u0641\u0646\u06a9\u0634\u0646 \u0631\u06a9 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0648\u0627\u067e\u0633 \u0622\u062a\u0627 \u06c1\u06d2\u06d4 <code>null<\/code>.<\/p>\n<p>\u0628\u0691\u06cc PDFs \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 25 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u0644\u0648\u0688 \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>nextFrame()<\/code> \u06cc\u06c1 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0645\u0648\u0642\u0639 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u0641\u0646\u06a9\u0634\u0646 \u062a\u0645\u0627\u0645 \u0646\u0627\u067e\u06d2 \u06c1\u0648\u0626\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u0627\u06cc\u06a9 \u0635\u0641 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u067e\u06cc\u0645\u0627\u0626\u0634\u06cc\u06ba \u0628\u0639\u062f \u0645\u06cc\u06ba \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u06d2 \u062d\u0633\u0627\u0628 \u06a9\u062a\u0627\u0628 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-rendering-pdf-pages-on-canvas\">\u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u067e\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06af\u0644\u0627 \u06a9\u0627\u0645 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u0645\u06cc\u06ba \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>PDF.js \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 HTML \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06cc\u0646\u0648\u0633 \u0627\u06cc\u06a9 \u0628\u0635\u0631\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0635\u0641\u062d\u06c1 \u06a9\u0627\u0631\u0688\u0632 \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688\u0632 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-javascript\">async function renderPage(n, w, h) {\n    var page = await state.doc.getPage(n);\n    var b = page.getViewport({ scale: 1 });\n\n    var vp = page.getViewport({\n        scale: Math.min(w \/ b.width, h \/ b.height)\n    });\n\n    var c = document.createElement('canvas');\n    c.width = Math.max(1, Math.round(vp.width));\n    c.height = Math.max(1, Math.round(vp.height));\n\n    var g = c.getContext('2d');\n    g.fillStyle=\"#FFFFFF\";\n    g.fillRect(0, 0, c.width, c.height);\n\n    await page.render({\n        canvas: c,\n        canvasContext: g,\n        viewport: vp\n    }).promise;\n\n    return c;\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u062a\u06cc\u0646 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>n<\/code> \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06c1\u06d2\u060c <code>w<\/code> \u0627\u0648\u0631 <code>h<\/code> \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0686\u0648\u0691\u0627\u0626\u06cc \u0627\u0648\u0631 \u0627\u0648\u0646\u0686\u0627\u0626\u06cc \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 <code>state.doc.getPage(n)<\/code> \u0645\u0637\u0644\u0648\u0628\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0641\u0646\u06a9\u0634\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0627\u0635\u0644 \u0633\u0627\u0626\u0632 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0626\u0632 1 \u06a9\u0627 \u0648\u06cc\u0648 \u067e\u0648\u0631\u0679 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c <code>Math.min(w \/ b.width, h \/ b.height)<\/code> \u062a\u0646\u0627\u0633\u0628 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u062c\u06af\u06c1 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0641\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0627\u06cc\u06a9 HTML \u06a9\u06cc\u0646\u0648\u0633 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062d\u0633\u0627\u0628\u06cc \u0648\u06cc\u0648\u067e\u0648\u0631\u0679 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0648\u0691\u0627\u0626\u06cc \u0627\u0648\u0631 \u0627\u0648\u0646\u0686\u0627\u0626\u06cc \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u0633\u0641\u06cc\u062f \u0633\u06d2 \u0628\u06be\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u06a9\u0627\u0631 <code>page.render()<\/code> \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u0635\u0641\u062d\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u06d2 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u06a9\u06cc\u0646\u0648\u0633 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_220_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0627\u06cc\u06a9 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u062c\u0648 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u067e\u06cc\u0634 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u062a\u06cc\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0627\u0635\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0633\u06d2 \u0645\u062a\u0646 \u0627\u0648\u0631 \u06af\u0631\u0627\u0641\u06a9\u0633\u06d4\" style=\"display: block;\" width=\"1213\" height=\"393\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-reusing-rendered-page-previews\">\u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u0648\u06ba \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u06c1\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u0628\u0627\u0631 \u0628\u0627\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0627 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0648\u0642\u062a \u0636\u0627\u0626\u0639 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u06a9 \u0635\u0641\u062d\u06c1 \u06a9\u0627\u0631\u0688 \u06a9\u06d2 \u067e\u06cc\u0634 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u067e \u0688\u06cc\u0679 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0641\u062d\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06cc\u0634 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u067e\u06c1\u0644\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var picCache = new Map();\n\n\/\/ For the preview: reuse a page picture when one at least as big is already made.\nasync function cachedPic(n, w, h) {\n    var got = picCache.get(n);\n\n    if (got && got.w >= w * 0.92) {\n        picCache.delete(n);\n        picCache.set(n, got);\n        return got.c;\n    }\n\n    var c = await renderPage(\n        n,\n        Math.ceil(w * 1.15),\n        Math.ceil(h * 1.15)\n    );\n\n    picCache.set(n, { c: c, w: c.width });\n\n    while (picCache.size > 60) {\n        var old = picCache.keys().next().value;\n        picCache.get(old).c.width = 1;\n        picCache.delete(old);\n    }\n\n    return c;\n}\n<\/code><\/pre>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0648 JavaScript \u06a9\u06d2 \u0628\u0637\u0648\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>Map<\/code> \u0628\u0644\u0627\u06cc\u0627 <code>picCache<\/code>. \u06c1\u0631 \u0622\u0626\u0679\u0645 \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u0686\u0648\u0691\u0627\u0626\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 <code>cachedPic()<\/code> \u062c\u0628 \u0628\u0644\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0634 \u0634\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u06cc\u0627 \u0646\u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u06a9\u06cc\u0634 \u0634\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u06c1 \u0686\u0648\u0691\u0627\u0626\u06cc \u06a9\u06d2 92% \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 \u0646\u0642\u0634\u06d2 \u06a9\u06d2 \u0622\u062e\u0631 \u062a\u06a9 \u0644\u06d2 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 \u062d\u0627\u0644 \u06c1\u06cc \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0645\u0646\u0627\u0633\u0628 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u06cc\u0634 \u0634\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062a\u0648\u060c \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>renderPage()<\/code> \u0646\u06cc\u0627 \u06a9\u06cc\u0646\u0648\u0633 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0686\u0648\u0691\u0627\u0626\u06cc \u0627\u0648\u0631 \u0627\u0648\u0646\u0686\u0627\u0626\u06cc \u0633\u06d2 1.15 \u06af\u0646\u0627 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06cc \u0631\u06cc\u0632\u0648\u0644\u0648\u0634\u0646 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06a9\u06cc\u0634 60 \u0627\u0646\u062f\u0631\u0627\u062c\u0627\u062a \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0633 \u062d\u062f \u0633\u06d2 \u062a\u062c\u0627\u0648\u0632 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0642\u062f\u06cc\u0645 \u062a\u0631\u06cc\u0646 \u0622\u0626\u0679\u0645\u0632 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u06cc \u0686\u0648\u0691\u0627\u0626\u06cc \u06a9\u0648 \u06a9\u0645 \u06a9\u0631 \u06a9\u06d2 1 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u06d2 \u0648\u0633\u0627\u0626\u0644 \u062e\u0627\u0644\u06cc \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u06a9\u06cc\u0634\u0646\u06af \u0627\u067e\u0631\u0648\u0686 \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u0648 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0628 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0637\u0648\u06cc\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-reading-text-from-pdf-pages\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u067e\u0691\u06be\u06cc\u06ba<\/h2>\n<p>\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u062a\u06cc\u0646 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0633\u06d2 \u06a9\u06cc\u067e\u0634\u0646 \u0628\u0646\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\u0635\u0627\u0631\u0641\u06cc\u0646 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/li>\n<li>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0633\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u062a\u06cc \u06c1\u06d2\u06d4<\/li>\n<li>OCR \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u0645\u062a\u0646 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<\/ol>\n<p>\u0645\u0646\u062a\u062e\u0628 \u0645\u062a\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be PDFs \u06a9\u06d2 \u0644\u06cc\u06d2 PDF.js \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>getTextContent()<\/code> \u0637\u0631\u06cc\u0642\u06c1<\/p>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2: <code>readTexts()<\/code> \u0627\u06cc\u06a9 \u062e\u0635\u0648\u0635\u06cc\u062a \u062c\u0648 \u0628\u06be\u0631\u06cc \u06c1\u0648\u0626\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u062a\u06cc \u0627\u0648\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function readTexts(token) {\n    var doc = state.doc, out = [];\n\n    for (var n = 1; n <= doc.numPages; n++) {\n        if (token !== state.loadToken) {\n            return;\n        }\n\n        try {\n            var tc = await (await doc.getPage(n)).getTextContent();\n\n            out.push(tc.items.map(function (it) {\n                return (it.str || '') + (it.hasEOL ? 'n' : '');\n            }).join(''));\n        } catch (e) {\n            out.push('');\n        }\n\n        if (n % 20 === 0) {\n            await nextFrame();\n        }\n    }\n\n    if (token !== state.loadToken) {\n        return;\n    }\n\n    state.texts = out;\n    refreshTags(board());\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 <code>state.doc<\/code> \u0627\u0648\u0631 \u06cc\u06c1 \u0627\u0633 \u0637\u0631\u062d \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u0635\u0641 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2: <code>out<\/code> \u0646\u06a9\u0627\u0644\u06d2 \u06af\u0626\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0639\u0627\u062f\u06c1 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>getTextContent()<\/code> \u0679\u06cc\u06a9\u0633\u0679 \u0622\u0626\u0679\u0645\u0632 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>map()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u0631 \u0622\u0626\u0679\u0645 \u06a9\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0679\u0631\u0646\u06af \u0645\u06cc\u06ba \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c PDF.js \u0622\u0626\u0679\u0645\u0632 \u0644\u0627\u0626\u0646 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0644\u0627\u0626\u0646 \u06a9\u0627 \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>hasEOL<\/code>.<\/p>\n<p>\u0627\u06af\u0631 \u06a9\u0633\u06cc \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u0646\u0627 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0641\u0646\u06a9\u0634\u0646 \u067e\u0648\u0631\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u0633\u0679\u0631\u0646\u06af \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>token<\/code> \u0686\u06cc\u06a9 \u067e\u0686\u06be\u0644\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0628\u06be\u06cc \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>nextFrame()<\/code> \u06c1\u0631 20 \u0635\u0641\u062d\u0627\u062a \u067e\u0631\u060c \u06c1\u0645 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0627\u0646 \u06a9\u06d2 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0645\u0648\u0642\u0639 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0646\u06a9\u0627\u0644\u0627 \u06c1\u0648\u0627 \u0645\u062a\u0646 \u06c1\u06d2\u06d4 <code>state.texts<\/code>. \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u06be\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>refreshTags(board())<\/code> \u0648\u0631\u06a9 \u0627\u0633\u067e\u06cc\u0633 \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u0645\u062a\u0646 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u062c\u0628 \u0635\u0627\u0631\u0641 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062e\u0627\u0644\u06cc \u0633\u0631\u062e\u06cc\u0648\u06ba \u06a9\u0648 \u0628\u06be\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-filling-empty-captions-automatically\">\u062e\u0648\u062f\u06a9\u0627\u0631 \u0637\u0648\u0631 \u067e\u0631 \u062e\u0627\u0644\u06cc \u0633\u0631\u062e\u06cc\u0627\u06ba \u067e\u064f\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u0633\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644 \u0644\u06cc\u062a\u06cc \u06c1\u06d2\u060c \u0622\u067e \u0627\u0633 \u0645\u062a\u0646 \u06a9\u0648 \u06a9\u06cc\u067e\u0634\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06c1\u0645 \u0631\u0648\u06cc\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0635\u0631\u0641 \u062e\u0627\u0644\u06cc \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688\u0632 \u0645\u06cc\u06ba \u0628\u06be\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062f\u0631\u062c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0648 \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u0679 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>captionFromText()<\/code> \u0646\u06a9\u0627\u0644\u06d2 \u06af\u0626\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u0635\u0627\u0641 \u0627\u0648\u0631 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f\u06af\u0627\u0631:<\/p>\n<pre><code class=\"language-javascript\">function captionFromText\n    var s = String(t || '')\n        .replace(\/s+\/g, ' ')\n        .trim();\n\n    if (letters(s) < 3) {\n        return '';\n    }\n\n    if (s.length <= 200) {\n        return s;\n    }\n\n    var cut = s.slice(0, 200);\n    var end = Math.max(\n        cut.lastIndexOf('. '),\n        cut.lastIndexOf('? '),\n        cut.lastIndexOf('! '),\n        cut.lastIndexOf('\u0964 ')\n    );\n\n    return end > 60\n        ? cut.slice(0, end + 1)\n        : cut.replace(\/s+S*$\/, '') + '\u2026';\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u0642\u062f\u0631 \u06a9\u0648 \u0633\u0679\u0631\u0646\u06af \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0628\u0627\u0631 \u0628\u0627\u0631 \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u06a9\u0648 \u0648\u0627\u062d\u062f \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u0633\u06d2 \u0628\u062f\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0634\u0631\u0648\u0639 \u0627\u0648\u0631 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u06a9\u0648 \u06c1\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0645\u062a\u0646 \u0645\u06cc\u06ba \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0641\u06cc\u062f \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u062d\u0631\u0648\u0641 \u06c1\u06cc\u06ba\u06d4<\/li>\n<li>\u0627\u06af\u0631 \u06cc\u06c1 200 \u062d\u0631\u0648\u0641 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u06a9\u0645 \u06c1\u06d2\u060c \u062a\u0648 \u067e\u0648\u0631\u0627 \u0645\u062a\u0646 \u0648\u0627\u067e\u0633 \u0622 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li>\u0644\u0645\u0628\u06d2 \u0645\u062a\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062c\u0645\u0644\u06d2 \u06a9\u06cc \u062d\u062f \u0645\u06cc\u06ba \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0645\u0646\u0627\u0633\u0628 \u062d\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062a\u0648\u060c \u0622\u062e\u0631\u06cc \u0646\u0627\u0645\u06a9\u0645\u0644 \u0644\u0641\u0638 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u0628\u06cc\u0636\u0648\u06cc \u06a9\u0627 \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/li>\n<\/ol>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>fillFromText()<\/code> \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">function fillFromText() {\n    var bd = board(), list = bd.error ? [] : unique(bd.list), filled = 0, scans = 0;\n\n    list.forEach(function (n) {\n        if (captionFor(n)) { return; }\n\n        var c = captionFromText(state.texts[n - 1]);\n\n        if (c) {\n            state.captions[n] = c;\n            filled++;\n\n            var ta = ui.grid.querySelector('[data-cap=\"' + n + '\"]');\n            if (ta) { ta.value = c; }\n        } else if (isScan(n)) {\n            scans++;\n        }\n    });\n\n    if (!state.opts.captions && filled) {\n        state.opts.captions = true;\n        savePrefs();\n    }\n\n    redrawSoon(0);\n\n    if (!list.length) {\n        toast(bd.error || 'No pages on the board.', 'error');\n        return;\n    }\n\n    toast(\n        filled\n            ? plural(filled, 'caption', 'captions') +\n              ' filled from the page text. Edit them in the cards below.' +\n              (scans\n                  ? ' ' + plural(scans, 'scanned page has', 'scanned pages have') +\n                    ' no text; use OCR for ' + (scans === 1 ? 'it' : 'them') + '.'\n                  : '')\n            : scans\n                ? 'The empty pages are scans with no text. Use Read with OCR.'\n                : 'Every panel already has a caption.'\n    );\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>fillFromText()<\/code> \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>board()<\/code> \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0635\u0641\u062d\u06c1 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 <code>unique()<\/code> \u0627\u06cc\u06a9 \u06c1\u06cc \u0635\u0641\u062d\u06d2 \u067e\u0631 \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0628\u0627\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06af\u0631\u06cc\u0632 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0631 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 <code>captionFor(n)<\/code> \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u06cc\u067e\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u06a9\u06cc\u067e\u0634\u0646 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u062a\u0648 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u0648 \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u0679 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u062e\u0627\u0644\u06cc \u06c1\u06d2 \u062a\u0648 \u0641\u0646\u06a9\u0634\u0646 \u0633\u0631\u062e\u06cc \u0633\u06d2 \u0646\u06a9\u0627\u0644\u06d2 \u06af\u0626\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>state.texts<\/code> \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba <code>captionFromText()<\/code>. \u0627\u06af\u0631 \u0645\u0641\u06cc\u062f \u0645\u062a\u0646 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0648 \u062a\u0648 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0628\u0646\u0627\u0626\u06d2\u06d4 <code>state.captions<\/code> \u0635\u0641\u062d\u06c1 \u06a9\u0627\u0631\u0688 \u067e\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0679\u06cc\u06a9\u0633\u0679 \u0627\u06cc\u0631\u06cc\u0627 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u06a9\u0633\u06cc \u0635\u0641\u062d\u06c1 \u0645\u06cc\u06ba \u0646\u06a9\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0645\u062a\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0646\u0627\u062e\u062a \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u06a9\u0627\u0624\u0646\u0679\u0631 \u06a9\u0648 \u0628\u0691\u06be\u0627 \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0646 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u0644\u06af \u0633\u06d2 \u067e\u0631\u0648\u0633\u06cc\u0633 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 OCR \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0636\u0631\u0648\u0631\u062a \u067e\u0691\u0646\u06d2 \u067e\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0648 \u0686\u0627\u0644\u0648 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062f\u06c1 \u062a\u0631\u062c\u06cc\u062d\u0627\u062a \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0631\u06cc\u0641\u0631\u06cc\u0634\u0632 \u06a9\u0648 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u067e\u06cc\u063a\u0627\u0645 \u0628\u06be\u06cc \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627 \u062c\u0633 \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u06a9\u06c1 \u06a9\u062a\u0646\u06d2 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0628\u06be\u0631\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 OCR \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0644\u06a9\u06be\u06cc \u06af\u0626\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0633\u0631\u062e\u06cc\u0627\u06ba \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_279_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u062c\u0648 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06a9\u06cc\u067e\u0634\u0646 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4\" style=\"display: block;\" width=\"1302\" height=\"787\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-updating-the-preview\">\u0627\u067e \u0688\u06cc\u0679\u0633 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u0628 \u0628\u06be\u06cc \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06cc\u0627 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0633\u06cc\u0679\u0646\u06af\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u06ba \u062a\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u0633\u06d2 \u0628\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06cc \u0633\u06cc \u0634\u06cc\u0688\u0648\u0644\u0646\u06af \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">function redrawSoon(ms) {\n    clearTimeout(drawTimer);\n    drawTimer = setTimeout(\n        drawPreview,\n        ms === undefined ? 120 : ms\n    );\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>redrawSoon()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u067e \u0688\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u0646\u0633\u0648\u062e \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>clearTimeout()<\/code>. \u067e\u06be\u0631 \u0627\u0633\u06d2 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>drawPreview()<\/code> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 <code>setTimeout()<\/code>.<\/p>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0648 \u062a\u0627\u0632\u06c1 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 120 \u0645\u0644\u06cc \u0633\u06cc\u06a9\u0646\u0688 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0633 \u0648\u0642\u062a \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u06a9\u0648\u0626\u06cc \u0627\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644\u06cc \u0648\u0627\u0642\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0631\u0639\u06c1 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0648 \u0645\u0646\u0633\u0648\u062e \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0688\u0631\u0627 \u06a9\u0631\u0646\u0627 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0628\u0627\u0631 \u0628\u0627\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc\u067e\u0634\u0646 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-drawing-the-updated-preview\">\u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u062c\u0628 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0688\u0631\u0627 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>drawPreview()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0627\u0635\u0644 \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">async function drawPreview() {\n    if (!state.doc) { return; }\n\n    var my = ++drawToken, bd = board();\n    refreshTags(bd);\n    syncPanel();\n\n    if (bd.error) {\n        ui.boardMsg.textContent = bd.error;\n        ui.sheetPos.textContent=\"No sheets\";\n        ui.sheetCount.textContent=\"\";\n        root.querySelectorAll('[data-needs-board]').forEach(function (b) {\n            b.disabled = true;\n        });\n        return;\n    }\n\n    root.querySelectorAll('[data-needs-board]').forEach(function (b) {\n        b.disabled = state.busy;\n    });\n\n    var L = bd.L, o = state.opts;\n    state.sheet = clamp(state.sheet, 0, L.sheets - 1);\n\n    ui.boardMsg.textContent = L.tight\n        ? 'Captions leave little room for the pages. Use fewer caption lines, fewer rows or a smaller text size.'\n        : '';\n\n    ui.sheetPos.textContent=\"Sheet \" + (state.sheet + 1) + ' of ' + L.sheets;\n    ui.sheetCount.textContent =\n        plural(bd.list.length, 'panel', 'panels') + ' on ' +\n        plural(L.sheets, 'sheet', 'sheets') + ', ' +\n        PAPER_NAMES[o.paper] + ' ' + o.orient;\n\n    q('[data-act=\"sheet-prev\"]').disabled = state.sheet <= 0;\n    q('[data-act=\"sheet-next\"]').disabled = state.sheet >= L.sheets - 1;\n\n    ui.sheetWrap.style.aspectRatio = L.W + ' \/ ' + L.H;\n\n    var cssW = ui.sheetWrap.clientWidth || 600;\n    var dpr = Math.min(window.devicePixelRatio || 1, 2);\n    var k = cssW * dpr \/ L.W;\n\n    var off = document.createElement('canvas');\n    off.width = Math.round(L.W * k);\n    off.height = Math.round(L.H * k);\n\n    var done = await drawSheet(\n        off.getContext('2d'),\n        o,\n        bd.list,\n        L,\n        state.sheet,\n        k,\n        'full',\n        function (n, w, h) {\n            return my === drawToken\n                ? cachedPic(n, w, h)\n                : Promise.resolve(null);\n        }\n    );\n\n    if (!done || my !== drawToken) { return; }\n\n    ui.sheet.width = off.width;\n    ui.sheet.height = off.height;\n    ui.sheet.getContext('2d').drawImage(off, 0, 0);\n\n    off.width = 1;\n\n    var start = state.sheet * L.per;\n    var on = bd.list.slice(start, start + L.per);\n\n    ui.sheet.setAttribute(\n        'aria-label',\n        'Sheet ' + (state.sheet + 1) + ' of ' + L.sheets + ': ' +\n        (on.length === 1 ? 'page ' + on[0] : 'pages ' + on.join(', '))\n    );\n\n    ui.sheet.setAttribute('data-drawn', String(state.sheet + 1));\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u067e\u06c1\u0644\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0644\u0648\u0688 \u06c1\u0648\u0626\u06cc \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba: <code>board()<\/code> \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>drawToken<\/code> \u0642\u062f\u0631 \u067e\u0631\u0627\u0646\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0646\u0626\u06d2 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0628\u06be\u06cc \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>refreshTags()<\/code> \u0627\u0648\u0631 <code>syncPanel()<\/code> \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u067e\u06cc\u0646\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c \u063a\u0644\u0637\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0628\u0648\u0631\u0688 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u062f\u0631\u0633\u062a \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0634\u06cc\u0679 \u06a9\u06cc \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0634\u06cc\u0679 \u06a9\u0627\u0624\u0646\u0679\u0631\u060c \u067e\u06cc\u0646\u0644 \u06a9\u06cc \u06af\u0646\u062a\u06cc\u060c \u06a9\u0627\u063a\u0630 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u060c \u0627\u0648\u0631 \u067e\u0686\u06be\u0644\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0644\u06d2 \u0628\u0679\u0646\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u067e\u06be\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0686\u0648\u0691\u0627\u0626\u06cc \u0627\u0648\u0631 \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u06a9\u0633\u0644 \u062a\u0646\u0627\u0633\u0628 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0648\u0631\u06a9 \u0628\u0648\u062c\u06be \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0688\u06cc\u0648\u0627\u0626\u0633 \u06a9\u0627 \u067e\u06a9\u0633\u0644 \u062a\u0646\u0627\u0633\u0628 2 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>drawSheet()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0645\u0646\u062a\u062e\u0628 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u0648 \u0639\u0627\u0631\u0636\u06cc \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u06a9\u06be\u06cc\u0646\u0686\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0635\u0648\u0644 \u06a9\u0631\u06cc\u06ba <code>cachedPic()<\/code> \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0645\u0646\u0627\u0638\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0631\u0627\u0626\u0646\u06af \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0641\u0646\u06a9\u0634\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0622\u067e\u0631\u06cc\u0634\u0646 \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u062c\u0627\u0631\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u06cc\u0633\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u0639\u0627\u0631\u0636\u06cc \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u0645\u0631\u0626\u06cc \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u0645\u06cc\u06ba \u06a9\u0627\u067e\u06cc \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0627\u0633 \u06a9\u06cc \u0686\u0648\u0691\u0627\u0626\u06cc \u06a9\u0648 1 \u062a\u06a9 \u06a9\u0645 \u06a9\u0631\u06a9\u06d2 \u0639\u0627\u0631\u0636\u06cc \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u0622\u0632\u0627\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0644\u06cc\u0628\u0644 \u06a9\u0648 \u0628\u06be\u06cc \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06cc \u0634\u06cc\u0679 \u06a9\u06be\u06cc\u0646\u0686\u06cc \u06af\u0626\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u06cc\u06c1 \u0639\u0645\u0644 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0628\u06be\u06cc \u0648\u06c1 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06cc\u0627 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0646\u06cc\u0627 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631\u06d4<\/p>\n<h2 id=\"heading-choosing-the-storyboard-layout\">\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u06cc\u06c1 \u0679\u0648\u0644 \u062a\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0637\u0631\u0632\u0648\u06ba \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u06af\u0631\u0688\u060c \u0646\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06cc\u0646\u0644\u060c \u0627\u0648\u0631 \u0641\u0644\u0645 \u0627\u0633\u0679\u0631\u06cc\u067e\u06d4 \u06c1\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0645\u062e\u062a\u0644\u0641 \u0642\u0633\u0645 \u06a9\u06d2 \u0645\u0646\u0635\u0648\u0628\u0648\u06ba \u06a9\u0648 \u0641\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u06af\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0642\u0637\u0627\u0631\u0648\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646 \u0633\u0644\u0627\u0626\u06cc\u0688\u0632\u060c \u0645\u0632\u0627\u062d\u06cc\u06c1 \u0635\u0641\u062d\u0627\u062a \u0627\u0648\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646\u06d4<\/p>\n<p>\u0646\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u067e\u06cc\u0646\u0644 \u06c1\u0631 \u0635\u0641\u062d\u06d2 \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u0636\u0627\u0641\u06cc \u062c\u06af\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0686\u0631 \u0646\u0648\u0679\u0633\u060c \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc\u060c \u0627\u0648\u0631 \u0628\u0635\u0631\u06cc \u0645\u0648\u0627\u062f \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u0641\u0644\u0645 \u06a9\u06cc \u067e\u0679\u06cc \u0627\u06cc\u06a9 \u0635\u0641\u062d\u06d2 \u06a9\u0648 \u0641\u0631\u06cc\u0645\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u0633\u06cc\u0631\u06cc\u0632 \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u0648\u06cc\u0688\u06cc\u0648\u0632\u060c \u0631\u06cc\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u0627\u0638\u0631 \u06a9\u06cc \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u0627\u06cc\u06a9 \u0645\u062e\u062a\u0644\u0641 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u0646\u0627\u0633\u0628 \u0688\u06cc\u0641\u0627\u0644\u0679 \u062a\u0631\u062a\u06cc\u0628 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0627\u0635\u0644 \u0645\u0648\u0627\u062f \u06a9\u0627 \u0627\u06cc\u06a9 \u0627\u0642\u062a\u0628\u0627\u0633 \u06c1\u06d2: <code>onField()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0644\u06d2 \u0622\u0624\u0679 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">if (f === 'layout' && e.type === 'change') {\n    \/\/ sensible panel counts for each layout\n    if (o.layout === 'notes') {\n        o.cols = o.orient === 'landscape' ? 2 : 1;\n        o.rows = o.orient === 'landscape' ? 3 : 4;\n    }\n\n    if (o.layout === 'strip') {\n        o.cols = 4;\n        o.rows = o.orient === 'landscape' ? 2 : 4;\n    }\n\n    if (o.layout === 'grid') {\n        o.cols = o.orient === 'landscape' ? 3 : 2;\n        o.rows = o.orient === 'landscape' ? 2 : 3;\n    }\n}\n\nsavePrefs();\n\nif (f === 'cols' || f === 'rows' || f === 'layout') {\n    state.sheet = 0;\n}\n\nredrawSoon(f === 'gap' ? 60 : 0);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u06a9\u0648\u0688 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0631 \u06a9\u0627\u063a\u0630 \u06a9\u06cc \u0633\u0645\u062a \u0628\u0646\u062f\u06cc \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u0688\u06cc\u0641\u0627\u0644\u0679 \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<ul>\n<li><strong>\u0646\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06cc\u0646\u0644:<\/strong> \u0627\u0641\u0642\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a 2 \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 3 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0639\u0645\u0648\u062f\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a 1 \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 4 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/li>\n<li><strong>\u0641\u0644\u0645 \u06a9\u06cc \u067e\u0679\u06cc:<\/strong> \u06cc\u06c1 4 \u06a9\u0627\u0644\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: 2 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0627\u0641\u0642\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0648\u0631 4 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0639\u0645\u0648\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631\u06d4<\/li>\n<li><strong>\u06af\u0631\u0688:<\/strong> \u0627\u0641\u0642\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a 3 \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 2 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0639\u0645\u0648\u062f\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a 2 \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 3 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/li>\n<\/ul>\n<p>\u0627\u0633 \u0642\u062f\u0631 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f <code>savePrefs()<\/code> \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0628 \u0644\u06d2 \u0622\u0624\u0679 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0634\u06cc\u0679 \u06a9\u0648 \u067e\u06c1\u0644\u06cc \u0634\u06cc\u0679 \u067e\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>redrawSoon()<\/code> \u067e\u06cc\u0634 \u0645\u0646\u0638\u0631 \u06a9\u0648 \u062a\u0627\u0632\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2<\/p>\n<p>\u0635\u0627\u0631\u0641 \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0642\u0637\u0627\u0631\u0648\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-controlling-rows-columns-and-paper-size\">\u0642\u0637\u0627\u0631\u0648\u06ba\u060c \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u06a9\u0627\u063a\u0630 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0635\u0627\u0631\u0641 \u0641\u06cc \u0634\u06cc\u0679 1 \u0633\u06d2 6 \u06a9\u0627\u0644\u0645\u0648\u06ba \u0627\u0648\u0631 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u062a\u0646\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062f\u06a9\u06be\u0627\u0626\u06d2 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 A4\u060c \u062e\u0637\u060c A3\u060c \u0627\u0648\u0631 16:9 \u0633\u0644\u0627\u0626\u06cc\u0688 \u0641\u0627\u0631\u0645\u06cc\u0679\u0633 \u0633\u0645\u06cc\u062a \u0645\u062a\u0639\u062f\u062f \u06a9\u0627\u063a\u0630\u06cc \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06c1\u0631 \u0641\u0627\u0631\u0645\u06cc\u0679 \u06a9\u0648 \u06cc\u0627 \u062a\u0648 \u067e\u0648\u0631\u0679\u0631\u06cc\u0679 \u06cc\u0627 \u0632\u0645\u06cc\u0646 \u06a9\u06cc \u062a\u0632\u0626\u06cc\u0646 \u06a9\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u062a\u06cc\u0646 \u06a9\u0627\u0644\u0645 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u062f\u0648 \u0642\u0637\u0627\u0631 \u0644\u06d2 \u0622\u0624\u0679 \u0686\u06be \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0641\u06cc \u0634\u06cc\u0679 \u062f\u06a9\u06be\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0686\u0627\u0631 \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 \u062a\u06cc\u0646 \u0642\u0637\u0627\u0631 \u0648\u0627\u0644\u06cc \u062a\u0631\u062a\u06cc\u0628 12 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u0642\u0637\u0627\u0631\u0648\u06ba \u0633\u06d2 \u0636\u0631\u0628 \u062f\u06d2 \u06a9\u0631 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u0634\u06cc\u0679 \u067e\u0631 \u06a9\u062a\u0646\u06d2 \u067e\u06cc\u0646\u0644 \u0641\u0679 \u06c1\u0648\u06ba \u06af\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u062a\u0645\u0627\u0645 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u06a9\u062a\u0646\u06cc \u0634\u06cc\u0679\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0646\u06a9\u0634\u0646 \u0634\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0627\u063a\u0630 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0648\u0627\u0642\u0641\u06cc\u062a \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0634\u0645\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">function sheetSize(o) {\n    var p = PAPERS[o.paper] || PAPERS.a4;\n    var a = Math.min(p[0], p[1]);\n    var b = Math.max(p[0], p[1]);\n\n    return o.orient === 'portrait' ? [a, b] : [b, a];\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>PAPERS<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u06c1\u0631 \u0645\u0639\u0627\u0648\u0646 \u06a9\u0627\u063a\u0630\u06cc \u0634\u06a9\u0644 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0645\u0646\u062a\u062e\u0628 \u062c\u06c1\u062a\u0648\u06ba \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0646\u062a\u062e\u0628 \u0633\u0645\u062a \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0648\u0631\u0679\u0631\u06cc\u0679 \u0648\u0627\u0642\u0641\u06cc\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0686\u06be\u0648\u0679\u0627 \u0633\u0627\u0626\u06cc\u0688 \u0686\u0648\u0691\u0627\u0626\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0644\u0645\u0628\u06cc \u0633\u0627\u0626\u06cc\u0688 \u0627\u0648\u0646\u0686\u0627\u0626\u06cc \u06c1\u06d2\u06d4 \u0627\u0641\u0642\u06cc \u0648\u0627\u0642\u0641\u06cc\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06cc\u06c1 \u062c\u06c1\u062a\u06cc\u06ba \u0645\u062e\u0627\u0644\u0641 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u06a9\u062a\u0627\u0628 \u067e\u06be\u0631 \u0641\u06cc \u0634\u06cc\u0679 \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0642\u0637\u0627\u0631\u0648\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var per = o.cols * o.rows;\nvar sheets = Math.max(1, Math.ceil(list.length \/ per));\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba\u060c <code>per<\/code> \u0641\u06cc \u0634\u06cc\u0679 \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>Math.ceil()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0634\u06cc\u0679\u0633 \u06a9\u06cc \u06a9\u0644 \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u062c\u0645\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0628\u0627\u0642\u06cc \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u0636\u0627\u0641\u06cc \u0634\u06cc\u0679\u0633 \u067e\u0631 \u0631\u06a9\u06be\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u062c\u0646 \u062f\u0633\u062a\u06cc\u0627\u0628 \u062c\u06af\u06c1 \u06a9\u0627 \u0628\u06be\u06cc \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06c1\u0631 \u067e\u06cc\u0646\u0644 \u06a9\u0648 \u067e\u0648\u0632\u06cc\u0634\u0646 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0635\u0641\u062d\u06c1 \u0645\u0646\u062a\u062e\u0628 \u0634\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06c1\u0648\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u0634\u06cc\u0679 \u067e\u0631 \u0641\u0679 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0628\u0627\u0642\u06cc \u067e\u06cc\u0646\u0644 \u0627\u0636\u0627\u0641\u06cc \u0634\u06cc\u0679\u0633 \u067e\u0631 \u0631\u06a9\u06be\u06d2 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_76_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u062a\u0631\u062a\u06cc\u0628\u060c \u06a9\u0627\u0644\u0645\u060c \u0642\u0637\u0627\u0631\u060c \u06a9\u0627\u063a\u0630 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0648\u0627\u0642\u0641\u06cc\u062a \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4\" style=\"display: block;\" width=\"761\" height=\"728\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-selecting-pdf-pages-and-their-order\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0622\u0631\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0679\u0648\u0644 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2\u060c \u0635\u0641\u062d\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u0631\u06cc\u0646\u062c \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2\u060c \u06cc\u0627 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0635\u0641\u062d\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u0639\u0627\u0648\u0646\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0635\u0627\u0631\u0641 \u0679\u0627\u0626\u067e \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-text\">1-4, 9, 6\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0635\u0641\u062d\u06c1 1\u060c 2\u060c 3\u060c 4\u060c 9 \u0627\u0648\u0631 6 \u06a9\u0648 \u0639\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0628\u0646\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>parseList()<\/code> \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u062c\u0648 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0627\u0635\u0644 \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">function parseList(text) {\n    var t = String(text || '').trim();\n\n    if (!t) {\n        return { error: 'Type the pages, for example 1-4, 7, 5.' };\n    }\n\n    var out = [], parts = t.split(\/[,;s]+\/).filter(Boolean);\n\n    for (var i = 0; i < parts.length; i++) {\n        var part = parts[i],\n            m = \/^(d+)(?:s*[-\u2013]s*(d*))?$\/.exec(part);\n\n        if (!m) {\n            return { error: '\"' + part + '\" isn't a page number or range.' };\n        }\n\n        var a = parseInt(m[1], 10),\n            b = m[2] === undefined\n                ? a\n                : (m[2] === '' ? state.count : parseInt(m[2], 10));\n\n        if (a < 1) {\n            return { error: 'Pages start at 1, so \"' + part + '\" doesn't work.' };\n        }\n\n        if (b < a) {\n            return { error: '\"' + part + '\" is backwards. Did you mean ' + b + '-' + a + '?' };\n        }\n\n        if (a > state.count) {\n            return {\n                error: 'Page ' + a + ' is past the end; this PDF has ' +\n                    plural(state.count, 'page', 'pages') + '.'\n            };\n        }\n\n        if (b > state.count) {\n            return {\n                error: 'Page ' + b + ' is past the end. Type ' + a +\n                    '- to go to the last page.'\n            };\n        }\n\n        for (var n = a; n <= b; n++) {\n            out.push(n);\n        }\n    }\n\n    if (out.length > 500) {\n        return { error: 'That's ' + out.length + ' panels. Use 500 or fewer.' };\n    }\n\n    return { pages: out };\n}\n<\/code><\/pre>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u0627\u0646 \u067e\u0679 \u06a9\u0648 \u062a\u0631\u0627\u0634\u06cc \u06c1\u0648\u0626\u06cc \u062a\u0627\u0631 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0648 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0645\u0627\u060c \u0646\u06cc\u0645 \u06a9\u0627\u0644\u0648\u0646 \u06cc\u0627 \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0631\u06cc\u06af\u0648\u0644\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06c1\u0631 \u0622\u0626\u0679\u0645 \u0627\u06cc\u06a9 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06c1\u06d2 \u06cc\u0627 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0627\u06cc\u06a9 \u062d\u062f\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>3<\/code> \u0635\u0641\u062d\u06c1 3 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u060c <code>2-5<\/code> \u0635\u0641\u062d\u06c1 2 \u0633\u06d2 5 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0648\u067e\u0646 \u0631\u06cc\u0646\u062c\u0632 \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>4-<\/code>. \u0627\u0633 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>state.count<\/code> \u0622\u062e\u0631\u06cc \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u062a\u06a9<\/p>\n<p>\u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba \u0635\u0641\u062d\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 1 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u06ba\u060c \u06a9\u06c1 \u0631\u06cc\u0646\u062c \u0635\u0639\u0648\u062f\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06cc\u06c1 \u06a9\u06c1 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0635\u0641\u062d\u0627\u062a \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u06ba \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u06a9\u0644 \u062a\u0639\u062f\u0627\u062f \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u06c1 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0648 500 \u067e\u06cc\u0646\u0644\u0632 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0646 \u067e\u0679 \u062f\u0631\u0633\u062a \u06c1\u06d2 \u062a\u0648\u060c \u0641\u0646\u06a9\u0634\u0646 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u0635\u0641 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u062a\u0631\u062a\u06cc\u0628 \u0633\u06d2 \u0622\u067e \u0646\u06d2 \u0627\u0646\u06c1\u06cc\u06ba \u062f\u0631\u062c \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>panels()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u067e\u06be\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0628\u0646\u0627\u062a\u06d2 \u0648\u0642\u062a \u0627\u0633 \u0646\u062a\u06cc\u062c\u06d2 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u0627\u0646 \u06a9\u06cc \u0627\u0635\u0644 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0648\u0627\u067e\u0633 \u0622 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0627\u0633 \u0648\u0642\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u067e\u0648\u0631\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0646\u062a\u062e\u0628 \u0645\u0646\u0627\u0638\u0631 \u06cc\u0627 \u0627\u06c1\u0645 \u0633\u0644\u0627\u0626\u06cc\u0688\u0632 \u0633\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-adding-panel-labels\">\u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06cc\u0627 \u0627\u0633 \u067e\u0631 \u0628\u062d\u062b \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u062e\u062a\u0644\u0641 \u0642\u0633\u0645 \u06a9\u06d2 \u0644\u06cc\u0628\u0644 \u0627\u0633\u0679\u0627\u0626\u0644 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0646\u0645\u0628\u0631\u0632\u060c \u0633\u06cc\u0646 \u0644\u06cc\u0628\u0644\u0632\u060c \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u0646\u0645\u0628\u0631\u0632\u060c \u0627\u0648\u0631 \u06a9\u0648\u0626\u06cc \u0644\u06cc\u0628\u0644 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u06a9 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062f\u06a9\u06be\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>1\u060c 2\u060c 3\u060c 4<\/li>\n<li>\u0633\u06cc\u0646 1\u060c \u0633\u06cc\u0646 2\u060c \u0633\u06cc\u0646 3<\/li>\n<li>\u0635\u0641\u062d\u06c1 5\u060c \u0635\u0641\u062d\u06c1 6\u060c \u0635\u0641\u062d\u06c1 7<\/li>\n<\/ul>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0645\u06cc\u06ba \u0627\u067e\u0646\u0627 \u067e\u0633\u0646\u062f\u06cc\u062f\u06c1 \u0644\u06cc\u0628\u0644 \u0637\u0631\u0632 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>labelFor()<\/code> \u06c1\u0631 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u0627\u0633\u0628 \u0644\u06cc\u0628\u0644 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646:<\/p>\n<pre><code class=\"language-javascript\">function labelFor(o, idx, n) {\n    if (o.label === 'panel') {\n        return String(idx + 1);\n    }\n\n    if (o.label === 'page') {\n        return 'Page ' + n;\n    }\n\n    if (o.label === 'scene') {\n        return 'Scene ' + (idx + 1);\n    }\n\n    return '';\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u062a\u06cc\u0646 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li><code>o<\/code>    \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0644\u06cc\u0628\u0644 \u0627\u0633\u0679\u0627\u0626\u0644\u06d4<\/li>\n<li><code>idx<\/code>    \u0645\u0646\u062a\u062e\u0628 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u067e\u06cc\u0646\u0644 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 0 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<li><code>n<\/code>    \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<\/ul>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 \u067e\u06cc\u0646\u0644 \u0646\u0645\u0628\u0631 \u06a9\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c <code>idx + 1<\/code> 1\u060c 2\u060c 3 \u062c\u06cc\u0633\u06d2 \u0644\u06cc\u0628\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06a9\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>n<\/code> \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0633\u06cc\u0646 \u0644\u06cc\u0628\u0644\u0632 \u06a9\u06d2 \u0622\u067e\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0641\u0646\u06a9\u0634\u0646 \u0644\u06cc\u0628\u0644 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u0633\u06cc\u0646 1\u060c \u0633\u06cc\u0646 2\u060c \u0627\u0648\u0631 \u0633\u06cc\u0646 3\u06d4 \u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u06a9\u0648\u0626\u06cc \u0644\u06cc\u0628\u0644 \u0646\u06c1\u06cc\u06ba \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u0633\u0679\u0631\u0646\u06af \u0648\u0627\u067e\u0633 \u0622 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0631\u0627\u0626\u0646\u06af \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u06d2 \u06c1\u0631 \u067e\u06cc\u0646\u0644 \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0627\u0646 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-drawing-the-storyboard-sheet\">\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u0688\u0631\u0627\u0626\u0646\u06af<\/h2>\n<p>\u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 HTML \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u06be\u06cc\u0646\u0686\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0627 \u0639\u0645\u0644 \u06c1\u0631 \u0645\u0646\u062a\u062e\u0628 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062d\u0633\u0627\u0628\u06cc \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 <code>drawSheet()<\/code> \u06cc\u06c1 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u0627 \u0641\u0646\u06a9\u0634\u0646 \u06c1\u06d2\u06d4 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0642\u062a\u0628\u0627\u0633 \u0633\u06d2 \u067e\u062a\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0634\u06cc\u0679 \u06a9\u06cc\u0633\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u0627\u0648\u0631 \u0634\u06cc\u0679 \u0633\u06d2 \u062a\u0639\u0644\u0642 \u0631\u06a9\u06be\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function drawSheet(ctx, o, list, L, sheetIdx, k, mode, getPic) {\n    var C = COLORS[o.colors] || COLORS.paper;\n    var W = L.W * k;\n    var H = L.H * k;\n    var token = state.loadToken;\n    var drawn = [];\n\n    ctx.save();\n    ctx.fillStyle = C.bg;\n    ctx.fillRect(0, 0, W, H);\n    ctx.textBaseline=\"alphabetic\";\n\n    var start = sheetIdx * L.per;\n    var items = list.slice(start, start + L.per);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642\u060c \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0633\u06cc\u0679\u0646\u06af\u0632\u060c \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a\u060c \u06a9\u0645\u067e\u06cc\u0648\u0679\u06cc\u0688 \u0644\u06d2 \u0622\u0624\u0679\u060c \u0634\u06cc\u0679 \u0627\u0646\u0688\u06cc\u06a9\u0633\u060c \u0627\u0648\u0631 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0627\u0633\u06a9\u06cc\u0644 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0634\u06cc\u0679 \u06a9\u0627 \u0631\u0646\u06af \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u0648 \u067e\u06cc\u0646\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>start<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0634\u06cc\u0679 \u06a9\u06d2 \u067e\u06c1\u0644\u06d2 \u067e\u06cc\u0646\u0644 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c <code>items<\/code> \u0627\u0633 \u0634\u06cc\u0679 \u06a9\u0648 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0642\u062a\u0628\u0627\u0633 \u0633\u06d2 \u067e\u062a\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0641\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">for (var i = 0; i < items.length; i++) {\n    var cell = L.cells[i], n = items[i], idx = start + i;\n    var area = cell.img;\n    var strip = o.layout === 'strip';\n\n    if (strip) {\n        ctx.fillStyle = C.bandMat;\n        ctx.fillRect(\n            area.x * k, area.y * k,\n            area.w * k, area.h * k\n        );\n    } else if (o.frame) {\n        ctx.fillStyle = C.mat;\n        ctx.fillRect(\n            area.x * k, area.y * k,\n            area.w * k, area.h * k\n        );\n    }\n\n    var inset = strip ? 0 :\n        o.frame ? Math.min(area.w, area.h) * 0.04 : 0;\n\n    var pr = fitPage(n, area, inset);\n\n    var px = {\n        x: Math.round(pr.x * k),\n        y: Math.round(pr.y * k),\n        w: Math.max(1, Math.round(pr.w * k)),\n        h: Math.max(1, Math.round(pr.h * k))\n    };\n\n    drawn.push({ n: n, rect: pr });\n\n    if (mode === 'overlay') {\n        ctx.clearRect(px.x, px.y, px.w, px.h);\n    } else {\n        ctx.fillStyle=\"#FFFFFF\";\n        ctx.fillRect(px.x, px.y, px.w, px.h);\n\n        var pic = getPic ? await getPic(n, px.w, px.h) : null;\n\n        if (token !== state.loadToken) {\n            ctx.restore();\n            return null;\n        }\n\n        if (pic) {\n            ctx.drawImage(pic, px.x, px.y, px.w, px.h);\n        }\n    }\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>fitPage()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633 \u06a9\u06d2 \u062a\u0646\u0627\u0633\u0628 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0641\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u06a9\u0627\u0631 \u067e\u0648\u0632\u06cc\u0634\u0646 \u0627\u0648\u0631 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>getPic()<\/code> \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u060c <code>drawImage()<\/code> \u0627\u0633\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u0627\u0648\u0648\u0631\u0644\u06d2 \u0645\u0648\u0688 \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2 \u06a9\u0648 \u0634\u0641\u0627\u0641 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u0627\u0635\u0644 \u0645\u0648\u0627\u062f \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-drawing-panel-labels-and-captions\">\u0688\u0631\u0627\u0626\u0646\u06af \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u0632 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632<\/h3>\n<p>\u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0648 \u067e\u0648\u0632\u06cc\u0634\u0646 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u0632 \u0627\u0648\u0631 \u0633\u0631\u062e\u06cc\u0627\u06ba \u06a9\u06be\u06cc\u0646\u0686\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0627\u0635\u0644 \u0645\u0648\u0627\u062f \u06a9\u0627 \u0627\u06cc\u06a9 \u0627\u0642\u062a\u0628\u0627\u0633 \u06c1\u06d2: <code>drawSheet()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u06cc\u06c1 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u0632 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">var t = cell.text;\nvar fs = cell.fs * k;\nvar lh = cell.lh * k;\nvar y = t.y * k + fs;\n\nvar label = labelFor(o, idx, n);\nctx.textAlign = 'left';\n\nif (label) {\n    ctx.font=\"700 \" + fs + 'px ' + FONTS.mono;\n    ctx.fillStyle = C.ink;\n    ctx.fillText(label, t.x * k, y);\n    y += lh * 1.05;\n}\n\nvar lines = [];\n\nif (o.captions && captionFor(n)) {\n    ctx.font=\"400 \" + fs + 'px ' + FONTS[o.font];\n    ctx.fillStyle = C.ink;\n\n    var maxL = cell.notes\n        ? Math.max(1, Math.floor(\n            (t.y * k + t.h * k - y + lh - fs) \/ lh\n        ))\n        : o.lines;\n\n    lines = wrap(\n        ctx,\n        captionFor(n),\n        t.w * k,\n        Math.min(maxL, cell.notes ? 40 : o.lines)\n    );\n\n    lines.forEach(function (ln, j) {\n        ctx.fillText(ln, t.x * k, y + j * lh);\n    });\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>labelFor()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0627\u06cc\u06a9 \u0645\u0646\u062a\u062e\u0628 \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>fillText()<\/code> \u0645\u06cc\u06ba \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0646\u0642\u0634 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0641\u0639\u0627\u0644 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>captionFor()<\/code> \u0627\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>wrap()<\/code> \u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0633\u0631\u062e\u06cc\u0648\u06ba \u06a9\u0648 \u0627\u0646 \u0644\u0627\u0626\u0646\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0648\u0691 \u062f\u06cc\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u062f\u0633\u062a\u06cc\u0627\u0628 \u067e\u06cc\u0646\u0644 \u06a9\u06cc \u062c\u06af\u06c1 \u0645\u06cc\u06ba \u0641\u0679 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0646\u0648\u0679 \u0644\u06d2 \u0622\u0624\u0679 \u0648\u0627\u0644\u06d2 \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc\u067e\u0634\u0646 \u0627\u06cc\u0631\u06cc\u0627 \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u06af\u0631\u0688 \u0644\u0627\u0626\u0646\u0632 \u0628\u06be\u06cc \u06a9\u06be\u06cc\u0646\u0686\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u0636\u0627\u0641\u06cc \u062c\u06af\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0627 \u0639\u0645\u0644 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0644\u06cc\u0628\u0644\u0632\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632\u060c \u0641\u0631\u06cc\u0645\u0648\u06ba \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0645\u0646\u062a\u062e\u0628 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_658_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"    \u0627\u06cc\u06a9 \u0644\u0627\u0626\u06cc\u0648 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062c\u0633 \u0645\u06cc\u06ba A4 \u0644\u06cc\u0646\u0688 \u0627\u0633\u06a9\u06cc\u067e \u0634\u06cc\u0679 \u067e\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0626\u06d2 \u06af\u0626\u06d2 \u0645\u062a\u0639\u062f\u062f \u0635\u0641\u062d\u06c1 \u067e\u06cc\u0646\u0644 \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4\" style=\"display: block;\" width=\"990\" height=\"746\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-updating-the-live-preview\">\u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u067e \u0688\u06cc\u0679\u0633<\/h2>\n<p>\u0633\u0628 \u0633\u06d2 \u0645\u0641\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u0644\u0627\u0626\u06cc\u0648 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06c1\u0631 \u0628\u0627\u0631 \u0646\u06cc\u0627 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0627\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0644\u06d2 \u0622\u0624\u0679\u060c \u06a9\u0627\u063a\u0630 \u06a9\u0627 \u0633\u0627\u0626\u0632\u060c \u0648\u0627\u0642\u0641\u06cc\u062a\u060c \u06a9\u06cc\u067e\u0634\u0646\u060c \u0641\u0648\u0646\u0679\u0633\u060c \u0627\u0633\u067e\u06cc\u0633\u0646\u06af \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>board()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u062c\u0648 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">function board() {\n    var sel = panels();\n\n    if (sel.error) {\n        return { error: sel.error };\n    }\n\n    var L = layout(state.opts, sel.pages);\n\n    return {\n        list: sel.pages,\n        L: L\n    };\n}\n<\/code><\/pre>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>panels()<\/code> \u0645\u0646\u062a\u062e\u0628 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u062e\u0627\u0645\u06cc \u06c1\u06d2 \u062a\u0648 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u063a\u0644\u0637\u06cc \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633\u06d2 \u0627\u06af\u0644\u0627 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>layout()<\/code> \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0627\u0648\u0631 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06d2 \u0622\u0624\u0679 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u067e\u0631 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06a9\u0633 \u0637\u0631\u062d \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u06a9\u0627\u0631 <code>board()<\/code> \u0627\u06cc\u06a9 \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06d2 \u062d\u0633\u0627\u0628\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>drawPreview()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u0634\u06cc\u0679 \u06a9\u0648 \u0639\u0627\u0631\u0636\u06cc \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0631\u0627\u0626\u0646\u06af \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0646\u062a\u06cc\u062c\u06c1 \u0627\u06cc\u06a9 \u0645\u0631\u0626\u06cc \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u06a9\u0627\u067e\u06cc \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0634\u06cc\u0679 \u06a9\u0627\u0624\u0646\u0679\u0631\u0632 \u06a9\u0648 \u0628\u06be\u06cc \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>Sheet 1 of 3<\/code>\u0622\u067e \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0645\u0642\u0627\u0645 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u067e\u0686\u06be\u0644\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0644\u06d2 \u0628\u0679\u0646\u0648\u06ba \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06cc\u0627 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648\u0646\u06d2 \u0627\u0648\u0631 \u0646\u062a\u0627\u0626\u062c \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-adjusting-caption-appearance\">\u0633\u0631\u062e\u06cc \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u06a9\u06cc\u067e\u0634\u0646 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2 \u0627\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0648 \u0686\u0627\u0644\u0648 \u06a9\u0631\u0646\u06d2\u060c \u0641\u0648\u0646\u0679\u0633 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2\u060c \u0679\u06cc\u06a9\u0633\u0679 \u0633\u0627\u0626\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0644\u0627\u0626\u0646\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0635\u0627\u0631\u0641 \u06cc\u06c1 \u0628\u06be\u06cc \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0641\u0631\u06cc\u0645 \u0627\u0648\u0631 \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u062f\u0631\u062c \u0630\u06cc\u0644 \u062c\u06af\u06c1 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06cc\u06ba: <code>state.opts<\/code>. \u06a9\u06c1 <code>syncPanel()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u0633\u06d2 \u0645\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">function syncPanel() {\n    var o = state.opts;\n\n    ['layout', 'cols', 'rows', 'paper', 'orient', 'label',\n     'lines', 'tsize', 'font', 'colors'].forEach(function (f) {\n        q('[data-field=\"' + f + '\"]').value = String(o[f]);\n    });\n\n    q('[data-field=\"captions\"]').checked = o.captions;\n    q('[data-field=\"frame\"]').checked = o.frame;\n    q('[data-field=\"numbers\"]').checked = o.numbers;\n\n    q('[data-field=\"gap\"]').value = String(o.gap);\n    q('[data-out=\"gap-val\"]').textContent = o.gap + ' mm';\n\n    q('[data-field=\"pages\"]').value = state.pages;\n\n    if (document.activeElement !== q('[data-field=\"title\"]')) {\n        q('[data-field=\"title\"]').value = state.title;\n    }\n\n    var strip = o.layout === 'strip';\n\n    q('[data-out=\"cols-label\"]').textContent =\n        strip ? 'Frames per strip' : 'Columns';\n\n    q('[data-out=\"rows-label\"]').textContent =\n        strip ? 'Strips per sheet' : 'Rows';\n\n    q('[data-field=\"lines\"]').disabled =\n        !o.captions || o.layout === 'notes';\n\n    q('[data-field=\"frame\"]').disabled = strip;\n\n    ui.listWrap.hidden = state.pages !== 'list';\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u0648 \u0627\u0633 \u0633\u06d2 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2: <code>state.opts<\/code> \u0627\u0633 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u0646\u062a\u062e\u0628 \u0641\u0648\u0646\u0679\u060c \u0645\u062a\u0646 \u06a9\u0627 \u0633\u0627\u0626\u0632\u060c \u0633\u0631\u062e\u06cc \u06a9\u06cc \u0644\u06a9\u06cc\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u0627\u0648\u0631 \u06a9\u0627\u063a\u0630 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0644\u06d2 \u0622\u0624\u0679 \u0645\u062e\u0635\u0648\u0635 \u06a9\u0646\u0679\u0631\u0648\u0644\u0632 \u06a9\u0648 \u0628\u06be\u06cc \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0641\u0644\u0645 \u0633\u0679\u0631\u067e \u0645\u0648\u0688 \u0645\u06cc\u06ba\u060c \u06a9\u0627\u0644\u0645 \u0627\u0648\u0631 \u0642\u0637\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u0628\u0644 \u0641\u0631\u06cc\u0645 \u0641\u06cc \u0633\u0679\u0631\u067e \u0627\u0648\u0631 \u0633\u0679\u0631\u067e\u0633 \u0641\u06cc \u0634\u06cc\u0679 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0633\u0631\u062e\u06cc \u06a9\u06cc \u0644\u0627\u0626\u0646 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0648 \u0627\u0633 \u0648\u0642\u062a \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0628\u0646\u062f \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u062c\u0628 \u0646\u0648\u0679 \u0644\u06d2 \u0622\u0624\u0679 \u0648\u0627\u0644\u0627 \u067e\u06cc\u0646\u0644 \u0645\u0646\u062a\u062e\u0628 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-fitting-captions-inside-panels\">\u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0641\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0637\u0648\u06cc\u0644 \u0633\u0631\u062e\u06cc\u0627\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u067e\u06cc\u0646\u0644 \u06a9\u06cc \u062c\u06af\u06c1 \u0645\u06cc\u06ba \u0641\u0679 \u06c1\u0648\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u06d4 \u062f\u0631\u062e\u0648\u0627\u0633\u062a <code>wrap()<\/code> \u0627\u06cc\u06a9 \u0645\u062f\u062f\u06af\u0627\u0631 \u062c\u0648 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u06cc \u0686\u0648\u0691\u0627\u0626\u06cc \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0645\u062a\u0646 \u06a9\u0648 \u0644\u0627\u0626\u0646\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06d2 \u0627\u0635\u0644 \u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u0627\u0633 \u0645\u062f\u062f\u06af\u0627\u0631 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">if (o.captions && captionFor(n)) {\n    ctx.font=\"400 \" + fs + 'px ' + FONTS[o.font];\n    ctx.fillStyle = C.ink;\n\n    var maxL = cell.notes\n        ? Math.max(1, Math.floor(\n            (t.y * k + t.h * k - y + lh - fs) \/ lh\n        ))\n        : o.lines;\n\n    lines = wrap(\n        ctx,\n        captionFor(n),\n        t.w * k,\n        Math.min(maxL, cell.notes ? 40 : o.lines)\n    );\n\n    lines.forEach(function (ln, j) {\n        ctx.fillText(ln, t.x * k, y + j * lh);\n    });\n}\n<\/code><\/pre>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0641\u0648\u0646\u0679 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>FONTS[o.font]<\/code> \u067e\u06cc\u0646\u0644 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06a9\u06cc\u067e\u0634\u0646 \u0644\u0627\u0626\u0646\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u0627\u0645 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 <code>o.lines<\/code> \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0644\u0627\u0626\u0646\u0648\u06ba \u06a9\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0646\u0648\u0679 \u0648\u0627\u0644\u06d2 \u067e\u06cc\u0646\u0644\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0633\u062a\u06cc\u0627\u0628 \u062c\u06af\u06c1 \u0627\u0646 \u0644\u0627\u0626\u0646\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>wrap()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u0648 \u0627\u0646 \u0644\u0627\u0626\u0646\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0686\u0648\u0691\u0627\u0626\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06c1\u0648\u06ba\u06d4 \u06a9\u06c1 <code>fillText()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u067e\u06be\u0631 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u06c1\u0631 \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u06a9\u0648 \u06a9\u06be\u06cc\u0646\u0686\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06cc \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0633\u0631\u062e\u06cc \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u062c\u06af\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u0628\u0627\u06c1 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0633\u0631\u062e\u06cc \u06a9\u06cc \u0644\u0627\u0626\u0646\u0648\u06ba\u060c \u0642\u0637\u0627\u0631\u0648\u06ba\u060c \u06cc\u0627 \u0645\u062a\u0646 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u0646\u0644 \u0641\u0631\u06cc\u0645\u0648\u06ba \u0627\u0648\u0631 \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc\u067e\u0634\u0646 \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u0627\u0648\u0631 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u06c1\u0644\u06cc\u062a \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-navigating-between-storyboard-sheets\">\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679\u0646\u06af<\/h2>\n<p>\u0628\u0691\u06cc PDFs \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u0639\u062f\u062f \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u067e\u0691 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0686\u06be\u0644\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0644\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u06c1\u0631 \u0634\u06cc\u0679 \u06a9\u0627 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc \u062c\u0627 \u0633\u06a9\u06d2\u06d4 \u06cc\u06c1 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631 \u0627\u0648\u0631 \u0634\u06cc\u0679\u0633 \u06a9\u06cc \u06a9\u0644 \u062a\u0639\u062f\u0627\u062f \u0628\u06be\u06cc \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0634\u06cc\u0679\u0633 \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062c\u06af\u06c1 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 <code>state.sheet<\/code>. \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u0642\u062f\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u0648 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-handling-the-previous-and-next-buttons\">\u067e\u0686\u06be\u0644\u0627 \u0627\u0648\u0631 \u0627\u06af\u0644\u0627 \u0628\u0679\u0646 \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af<\/h3>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0688\u06cc\u0641\u0627\u0644\u0679 \u06a9\u0644\u06a9 \u0627\u06cc\u0648\u0646\u0679 \u0633\u0646\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0634\u06cc\u0679 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">case 'sheet-prev':\n    if (state.sheet > 0) {\n        state.sheet--;\n        drawPreview();\n    }\n    break;\n\ncase 'sheet-next':\n    state.sheet++;\n    drawPreview();\n    break;\n<\/code><\/pre>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 \u067e\u0686\u06be\u0644\u0627 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631 0 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u06cc\u0633\u0627 \u06c1\u06d2 \u062a\u0648\u060c <code>state.sheet<\/code> 1 \u06a9\u06cc \u06a9\u0645\u06cc <code>drawPreview()<\/code> \u0638\u0627\u06c1\u0631 \u0634\u062f\u06c1 \u0634\u06cc\u0679 \u06a9\u0648 \u062a\u0627\u0632\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 \u0646\u06cc\u06a9\u0633\u0679 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631 \u0628\u0691\u06be \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062a\u0627\u0632\u06c1 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u0634\u0633\u062a\u0648\u06ba \u0633\u06d2 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0646\u062f\u0631 <code>drawPreview()<\/code>\u0634\u06cc\u0679 \u06a9\u06cc \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06af\u0631 \u0636\u0631\u0648\u0631\u06cc \u06c1\u0648 \u062a\u0648 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0628\u0679\u0646 \u06a9\u0648 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">state.sheet = clamp(state.sheet, 0, L.sheets - 1);\n\nui.sheetPos.textContent=\"Sheet \" + (state.sheet + 1) + ' of ' + L.sheets;\n\nq('[data-act=\"sheet-prev\"]').disabled = state.sheet <= 0;\nq('[data-act=\"sheet-next\"]').disabled =\n    state.sheet >= L.sheets - 1;\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>clamp()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0645\u0646\u062a\u062e\u0628 \u0634\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a \u0631\u06cc\u0646\u062c \u0645\u06cc\u06ba \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u06cc\u0679 \u06a9\u0627\u0624\u0646\u0679\u0631 1 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646 \u0627\u0648\u0631 \u0633\u06cc\u0679\u0648\u06ba \u06a9\u06cc \u06a9\u0644 \u062a\u0639\u062f\u0627\u062f \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0686\u06be\u0644\u0627 \u0628\u0679\u0646 \u067e\u06c1\u0644\u06cc \u0634\u06cc\u0679 \u067e\u0631 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0644\u0627 \u0628\u0679\u0646 \u0622\u062e\u0631\u06cc \u0634\u06cc\u0679 \u067e\u0631 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06c1\u06d2\u06d4 \u0627\u0633 \u0633\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0645\u0627\u0645 \u0634\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0688\u0633\u067e\u0644\u06d2 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0628\u0691\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-reading-scanned-pages-with-ocr\">OCR \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u067e\u0691\u06be\u06cc\u06ba<\/h2>\n<p>\u06a9\u0686\u06be \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0642\u0627\u0628\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062a\u0646 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628\u06a9\u06c1 \u062f\u06cc\u06af\u0631 \u067e\u0631\u0646\u0679 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u062a\u0635\u0627\u0648\u06cc\u0631 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>PDF.js \u0627\u0646 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u0645\u06cc\u06ba \u0627\u0635\u0644 \u0679\u06cc\u06a9\u0633\u0679 \u0688\u06cc\u0679\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0627\u0644\u0641\u0627\u0638 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0646\u06c1\u06cc\u06ba \u0646\u06a9\u0627\u0644\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u062a\u0635\u0627\u0648\u06cc\u0631 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0627\u0646 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc OCR \u0641\u0639\u0627\u0644\u06cc\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Tesseract.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 OCR \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0646 \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0646 \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u06a9\u06cc\u067e\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u0627\u0648\u0631 OCR \u0627\u0646\u062c\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0646 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-loading-tesseractjs-when-needed\">\u0636\u0631\u0648\u0631\u062a \u067e\u0691\u0646\u06d2 \u067e\u0631 Tesseract.js \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Tesseract.js \u06a9\u0648 \u0635\u0631\u0641 \u0627\u0633 \u0648\u0642\u062a \u0644\u0648\u0688 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641 OCR \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0631 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0627\u0628 \u0628\u06be\u06cc \u0644\u0648\u0688 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2 \u062a\u0648 \u06cc\u06c1 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0644\u0648\u0688 \u0648\u0639\u062f\u06d2 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0645\u0648\u0627\u062f \u06c1\u06d2: <code>loadTesseract()<\/code> \u0627\u0648\u062a\u0627\u0631:<\/p>\n<pre><code class=\"language-javascript\">var tessPromise = null;\n\nfunction loadTesseract() {\n    if (window.Tesseract) {\n        return Promise.resolve(window.Tesseract);\n    }\n\n    if (tessPromise) {\n        return tessPromise;\n    }\n\n    tessPromise = new Promise(function (resolve, reject) {\n        var s = document.createElement('script');\n        s.src = TESS + 'tesseract.min.js';\n        s.async = true;\n\n        s.onload = function () {\n            if (window.Tesseract) {\n                resolve(window.Tesseract);\n            } else {\n                tessPromise = null;\n                reject(new Error('engine'));\n            }\n        };\n\n        s.onerror = function () {\n            tessPromise = null;\n            reject(new Error('engine'));\n        };\n\n        document.head.appendChild(s);\n\n        setTimeout(function () {\n            reject(new Error('engine'));\n        }, 45000);\n    });\n\n    return tessPromise;\n}\n<\/code><\/pre>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u0686\u06cc\u06a9 <code>window.Tesseract<\/code> \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 OCR \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u06cc\u0633\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0627\u0628 \u0628\u06be\u06cc \u0644\u0648\u0688 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2\u060c <code>tessPromise<\/code> \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0648\u0627\u067e\u0633 \u0622 \u06af\u06cc\u0627\u06d4<\/p>\n<p>\u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0627 \u0639\u0646\u0635\u0631 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u060c \u0627\u067e\u0646\u0627 \u0645\u0627\u062e\u0630 Tesseract.js \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0645\u06cc\u06ba \u0633\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>onload<\/code> \u0627\u0648\u0631 <code>onerror<\/code> \u06c1\u06cc\u0646\u0688\u0644\u0631 \u067e\u062a\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0644\u0648\u0688\u0646\u06af \u06a9\u0627\u0645\u06cc\u0627\u0628 \u06c1\u0648\u0626\u06cc \u06cc\u0627 \u0646\u0627\u06a9\u0627\u0645\u06d4<\/p>\n<h3 id=\"heading-creating-the-ocr-worker\">\u0627\u06cc\u06a9 OCR \u06a9\u0627\u0631\u06a9\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u0644\u0648\u0688 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc \u0645\u062a\u0646 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0679\u06cc\u0633\u0631\u06cc\u06a9\u0679 \u0648\u0631\u06a9\u0631 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0635\u0644 \u0645\u062a\u0646 \u0633\u06d2 \u0627\u06cc\u06a9 \u0627\u0642\u062a\u0628\u0627\u0633 \u06c1\u06d2: <code>runOcr()<\/code> \u0641\u0646\u06a9\u0634\u0646:<\/p>\n<pre><code class=\"language-javascript\">var T = await loadTesseract();\ncheckCancel();\n\nvar w = await T.createWorker('eng', 1, {\n    workerPath: TESS + 'worker.min.js',\n    corePath: TESS_CORE,\n    logger: function (m) {\n        if (!m || token !== state.loadToken || !state.busy) {\n            return;\n        }\n\n        if (\/loading language\/i.test(m.status)) {\n            setProgress(\n                m.progress || 0,\n                'Getting the English language data (first time only)\u2026'\n            );\n        } else if (\/recogniz\/i.test(m.status)) {\n            setProgress(\n                (done + (m.progress || 0)) \/ list.length,\n                'Reading page ' + list[done] +\n                ' (' + (done + 1) + ' of ' + list.length + ')\u2026'\n            );\n        }\n    }\n});\n\nstate.worker = w;\ncheckCancel();\n\nawait w.setParameters({ debug_file: '\/dev\/null' });\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>createWorker()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0633\u0627\u062a\u06be OCR \u0627\u0646\u062c\u0646 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0627\u0631\u06a9\u0646 \u0627\u0648\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0631\u0627\u0633\u062a\u06c1 Tesseract.js \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0633\u067e\u0648\u0631\u0679 \u0641\u0627\u0626\u0644\u06cc\u06ba \u06a9\u06c1\u0627\u06ba \u0644\u0648\u0688 \u06a9\u0631\u0646\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0644\u0627\u06af\u0631 \u0632\u0628\u0627\u0646 \u06a9\u06cc \u0644\u0648\u0688\u0646\u06af \u0627\u0648\u0631 \u0645\u062a\u0646 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a \u06a9\u06cc \u0627\u0637\u0644\u0627\u0639 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0648 OCR \u06a9\u06d2 \u0686\u0644\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u062a\u0631\u0642\u06cc \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-recognizing-text-from-scanned-pages\">\u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u06a9\u0648 \u067e\u06c1\u0686\u0627\u0646\u06cc\u06ba\u06d4<\/h3>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06c1\u0631 \u0627\u06c1\u0644 \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 Tesseract.js \u067e\u0631 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u06cc\u06a9 \u0627\u0639\u0644\u06cc \u0631\u06cc\u0632\u0648\u0644\u06cc\u0648\u0634\u0646 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0627\u0635\u0644 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2: <code>runOcr()<\/code>:<\/p>\n<pre><code class=\"language-javascript\">for (; done < list.length; done++) {\n    checkCancel();\n\n    var n = list[done],\n        page = await state.doc.getPage(n),\n        b = page.getViewport({ scale: 1 });\n\n    var c = await renderPage(\n        n,\n        Math.min(b.width * 300 \/ 72, 2600),\n        Math.min(b.height * 300 \/ 72, 2600)\n    );\n\n    checkCancel();\n\n    var png = await pngBytes(c);\n    c.width = 1;\n\n    var res = await w.recognize(png);\n\n    checkCancel();\n\n    if (token !== state.loadToken) {\n        return;\n    }\n\n    var cap = captionFromText(res.data &#038;&#038; res.data.text);\n\n    if (cap &#038;&#038; !captionFor(n)) {\n        state.captions[n] = cap;\n\n        var ta = ui.grid.querySelector('[data-cap=\"' + n + '\"]');\n\n        if (ta) {\n            ta.value = cap;\n        }\n    }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u06c1\u0631 \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0627\u0635\u0644 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 300 \u0688\u06cc \u067e\u06cc \u0622\u0626\u06cc \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u06a9\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0627\u0626\u0632 2,600 \u067e\u06a9\u0633\u0644\u0632 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>pngBytes()<\/code> \u0645\u062f\u062f\u06af\u0627\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 PNG \u062a\u0635\u0648\u06cc\u0631\u06cc \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 Tesseract.js \u06cc\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u0648\u0635\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>w.recognize(png)<\/code> \u062a\u0633\u0644\u06cc\u0645 \u0634\u062f\u06c1 \u0645\u062a\u0646 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u0633\u0644\u06cc\u0645 \u0634\u062f\u06c1 \u0645\u062a\u0646 \u06a9\u0648 \u0627\u0633 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>captionFromText()<\/code> \u0635\u0627\u0641 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0645\u062e\u062a\u0635\u0631 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0646\u062a\u0627\u0626\u062c \u06a9\u0627\u0631\u0622\u0645\u062f \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u0627\u0628 \u0628\u06be\u06cc \u06a9\u0648\u0626\u06cc \u06a9\u06cc\u067e\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062c\u06af\u06c1 \u067e\u0631 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>state.captions<\/code> \u0645\u062a\u0639\u0644\u0642\u06c1 \u06a9\u06cc\u067e\u0634\u0646 \u0641\u06cc\u0644\u0688 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0646\u0633\u0648\u062e\u06cc \u06a9\u06cc \u062c\u0627\u0646\u0686 \u0628\u06be\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688 \u0622\u067e\u0631\u06cc\u0634\u0646 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0627\u067e \u0679\u0648 \u0688\u06cc\u0679 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u06cc\u06a9 \u067e\u06cc\u063a\u0627\u0645 \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0627\u0631\u0641 \u0633\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06a9\u06cc\u067e\u0634\u0646\u0632 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 OCR \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0636\u0645\u0627\u0646\u062a \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u062a\u0627 \u06a9\u06c1 \u06c1\u0631 \u0644\u0641\u0638 \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u067e\u06c1\u0686\u0627\u0646\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627 \u0645\u0639\u06cc\u0627\u0631\u060c \u06c1\u06cc\u0646\u0688 \u0631\u0627\u0626\u0679\u0646\u06af\u060c \u063a\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u06cc \u0641\u0648\u0646\u0679\u0633\u060c \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0633\u0645\u062a \u0628\u0646\u062f\u06cc \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u0633\u0631\u062e\u06cc\u0648\u06ba \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_978_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u062a\u0646 \u0646\u06a9\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 OCR \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4\" style=\"display: block;\" width=\"1239\" height=\"661\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-generating-the-final-storyboard-pdf\">\u0641\u0627\u0626\u0646\u0644 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0635\u0627\u0631\u0641 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0631 \u0633\u0631\u062e\u06cc\u0648\u06ba \u0633\u06d2 \u0645\u0637\u0645\u0626\u0646 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062a\u06cc\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0639\u0645\u0644 PDF-lib \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 PDF \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0622\u0624\u0679 \u067e\u0679 \u0635\u0641\u062d\u06c1 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062d\u0633\u0627\u0628\u06cc \u067e\u06cc\u0646\u0644 \u067e\u0648\u0632\u06cc\u0634\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0631\u06a9\u06be\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0633\u06d2 \u0639\u0646\u0648\u0627\u0646\u060c \u0644\u06cc\u0628\u0644 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-creating-the-pdf-document\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2: <code>exportPdf()<\/code> \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u06cc\u06a9 \u0646\u0626\u06cc PDF \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0627\u0635\u0644 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0646\u0641\u0627\u0630 \u06a9\u0627 \u067e\u06c1\u0644\u0627 \u062d\u0635\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">async function exportPdf(snap, token) {\n    await engine();\n\n    var PL = window.PDFLib,\n        L = snap.L,\n        o = snap.o,\n        list = snap.list;\n\n    var out = await PL.PDFDocument.create(),\n        src = null,\n        embedded = {};\n\n    if (state.vector) {\n        try {\n            src = await PL.PDFDocument.load(\n                state.bytes.slice(0),\n                { updateMetadata: false }\n            );\n        } catch (e) {\n            src = null;\n        }\n    }\n\n    var k = exportScale(L, 300, 14e6);\n\n    for (var s = 0; s < L.sheets; s++) {\n        checkCancel();\n\n        if (token !== state.loadToken) {\n            return;\n        }\n\n        setProgress(\n            s \/ L.sheets,\n            'Making sheet ' + (s + 1) + ' of ' + L.sheets + '\u2026'\n        );\n\n        var page = out.addPage([L.W, L.H]);\n        var c = document.createElement('canvas');\n\n        c.width = Math.round(L.W * k);\n        c.height = Math.round(L.H * k);\n\n        var drawn = await drawSheet(\n            c.getContext('2d'),\n            o,\n            list,\n            L,\n            s,\n            k,\n            'overlay',\n            null\n        );\n\n        if (!drawn) {\n            return;\n        }\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u0637\u0644\u0648\u0628\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>engine()<\/code>. \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0626\u06cc\u06ba: <code>PDFDocument.create()<\/code>.<\/p>\n<p>\u06a9\u06c1 <code>snap<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0645\u06cc\u06ba \u0645\u0646\u062a\u062e\u0628 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u0627 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0628\u0631\u0622\u0645\u062f \u0622\u067e \u06a9\u06cc \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>state.vector<\/code> \u0686\u06cc\u06a9 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u0635\u0644 PDF \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 PDF-lib \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u0648\u0688 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06a9\u0633\u0644 \u06a9\u06cc \u062d\u062f \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 300 DPI \u06a9\u0648 \u06c1\u062f\u0641 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u067e\u06cc\u0645\u0627\u0646\u06d2 \u06a9\u0627 \u0628\u06be\u06cc \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u0648\u067e \u06c1\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0622\u0624\u0679 \u067e\u0679 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u0628\u06be\u06cc \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>drawSheet()<\/code> \u06a9\u0648 <code>overlay<\/code> \u0639\u0646\u0648\u0627\u0646\u0627\u062a\u060c \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u0632\u060c \u0627\u0648\u0631 \u0633\u0631\u062e\u06cc\u0648\u06ba \u06a9\u0648 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0636\u0639 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-preserving-original-pdf-pages\">\u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06af\u0631 \u0648\u06cc\u06a9\u0679\u0631 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0646\u06af \u0645\u0645\u06a9\u0646 \u06c1\u06d2 \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u0633\u0627\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u06cc\u0645\u0628\u06cc\u0688 \u06a9\u0631 \u062f\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0642\u062a\u0628\u0627\u0633 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u0645\u0646\u062a\u062e\u0628 \u067e\u06cc\u0646\u0644 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u0639\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">for (var i = 0; i < drawn.length; i++) {\n    checkCancel();\n\n    var d = drawn[i],\n        r = d.rect,\n        yb = L.H - r.y - r.h;\n\n    page.drawRectangle({\n        x: r.x,\n        y: yb,\n        width: r.w,\n        height: r.h,\n        color: PL.rgb(1, 1, 1)\n    });\n\n    if (src) {\n        var sp = src.getPage(d.n - 1);\n\n        if (!embedded[d.n]) {\n            var cb = sp.getCropBox();\n\n            embedded[d.n] = await out.embedPage(sp, {\n                left: cb.x,\n                bottom: cb.y,\n                right: cb.x + cb.width,\n                top: cb.y + cb.height\n            });\n        }\n\n        var em = embedded[d.n],\n            rot = ((sp.getRotation().angle % 360) + 360) % 360;\n\n        var turned = rot === 90 || rot === 270,\n            sx = r.w \/ (turned ? em.height : em.width);\n\n        var ew = em.width * sx,\n            eh = em.height * sx,\n            at = { x: r.x, y: yb };\n\n        if (rot === 90) {\n            at = { x: r.x, y: yb + ew };\n        } else if (rot === 180) {\n            at = { x: r.x + ew, y: yb + eh };\n        } else if (rot === 270) {\n            at = { x: r.x + eh, y: yb };\n        }\n\n        page.drawPage(em, {\n            x: at.x,\n            y: at.y,\n            width: ew,\n            height: eh,\n            rotate: PL.degrees(-rot)\n        });\n    }\n<\/code><\/pre>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba: <code>embedPage()<\/code> \u0627\u0646 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <code>embedded<\/code> \u0622\u0628\u062c\u06cc\u06a9\u0679 \u0627\u0646 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0633\u06d2 \u0628\u0627\u0631 \u0628\u0627\u0631 \u0648\u06c1\u06cc \u0627\u0635\u0644 \u0635\u0641\u062d\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u0648\u0688 \u0627\u0635\u0644 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u06af\u0631\u062f\u0634 \u06a9\u0648 \u0628\u06be\u06cc \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06be\u06cc\u0646\u0686\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u0627\u0648\u0631 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0633\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0635\u0641\u062d\u0627\u062a \u0644\u06af\u0627\u062a\u06d2 \u0648\u0642\u062a \u0645\u0646\u0627\u0633\u0628 \u0633\u0645\u062a \u0628\u0646\u062f\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<h3 id=\"heading-handling-protected-pdfs\">\u0645\u062d\u0641\u0648\u0638 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af<\/h3>\n<p>\u0627\u06af\u0631 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0648\u06cc\u06a9\u0679\u0631 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0631\u0627\u06cc\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627\u0633\u0679\u0631 \u0641\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0635\u0644 \u0645\u062a\u0628\u0627\u062f\u0644 \u06a9\u0648\u0688 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">else {\n    var pic = await renderPage(\n        d.n,\n        r.w * k,\n        r.h * k\n    );\n\n    var jpg = await new Promise(function (res) {\n        pic.toBlob(function (b) {\n            b.arrayBuffer().then(function (a) {\n                res(new Uint8Array(a));\n            });\n        }, 'image\/jpeg', 0.92);\n    });\n\n    pic.width = 1;\n\n    page.drawImage(\n        await out.embedJpg(jpg),\n        {\n            x: r.x,\n            y: yb,\n            width: r.w,\n            height: r.h\n        }\n    );\n}\n<\/code><\/pre>\n<p>\u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u06a9\u0648 \u06a9\u06cc\u0646\u0648\u0633 \u0645\u06cc\u06ba \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 JPEG \u0627\u0645\u06cc\u062c \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 PDF-lib \u067e\u06be\u0631 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0648 \u0627\u0633 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u06cc\u0645\u0628\u06cc\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0627\u0644 \u0628\u06cc\u06a9 \u0627\u0633 \u0648\u0642\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0648\u06cc\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u0646\u062f\u0631\u0627\u062c \u0645\u0645\u06a9\u0646 \u0646\u06c1 \u06c1\u0648\u060c \u0628\u0634\u0645\u0648\u0644 \u0645\u062d\u0641\u0648\u0638 \u0634\u062f\u06c1 PDFs \u062c\u06c1\u0627\u06ba \u0639\u0627\u0645 \u0648\u06cc\u06a9\u0679\u0631 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-adding-captions-and-saving-the-pdf\">\u06a9\u06cc\u067e\u0634\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0635\u0641\u062d\u06c1 \u06a9\u06cc \u0627\u0635\u0644 \u062a\u0635\u0648\u06cc\u0631 \u06cc\u0627 \u0648\u06cc\u06a9\u0679\u0631 \u0645\u0648\u0627\u062f \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0633\u06d2 \u0639\u0646\u0648\u0627\u0646\u0627\u062a\u060c \u0644\u06cc\u0628\u0644\u0632\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0688\u0631\u0627\u0626\u0646\u06af \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0627\u0648\u0648\u0631\u0644\u06cc\u0632 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0642\u062a\u0628\u0627\u0633 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0627\u0648\u0648\u0631\u0644\u06d2 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var over = await out.embedPng(await pngBytes(c));\nc.width = 1;\n\npage.drawImage(over, {\n    x: 0,\n    y: 0,\n    width: L.W,\n    height: L.H\n});\n\nawait nextFrame();\n<\/code><\/pre>\n<p>\u062a\u0645\u0627\u0645 \u0634\u06cc\u0679\u0633 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0639\u062f\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0646\u0633\u0648\u062e\u06cc \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">checkCancel();\n\nsetProgress(1, 'Saving the PDF\u2026');\n\nout.setTitle(state.title || state.base + ' storyboard');\nout.setCreator('AllInOneTools PDF Storyboard');\nout.setProducer('AllInOneTools (pdf-lib)');\n\nvar bytes = await out.save();\n\nif (token !== state.loadToken) {\n    return;\n}\n\nsave(\n    new Blob([bytes], { type: 'application\/pdf' }),\n    state.base + '-storyboard.pdf'\n);\n\ntoast(\n    'Saved ' + plural(L.sheets, 'sheet', 'sheets') +\n    ' as ' + state.base + '-storyboard.pdf.'\n);\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>embedPng()<\/code> \u06cc\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u067e\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0627\u0648\u0648\u0631\u0644\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0627\u0648\u0648\u0631\u0644\u06d2 \u0645\u06cc\u06ba \u0639\u0646\u0648\u0627\u0646\u0627\u062a\u060c \u067e\u06cc\u0646\u0644 \u0644\u06cc\u0628\u0644\u0632\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0635\u0631\u06cc \u0639\u0646\u0627\u0635\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0628\u0627\u0626\u0679\u0633 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0631\u0648\u06af\u0631\u06cc\u0633 \u0627\u067e \u0688\u06cc\u0679\u0633 \u0627\u0648\u0631 \u06a9\u06cc\u0646\u0633\u0644\u06cc\u0634\u0646 \u0686\u06cc\u06a9\u0633 \u06a9\u0648 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u06a9\u06d2 \u067e\u0648\u0631\u06d2 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u06c1 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0634\u06cc\u0679\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688\u0632 \u0628\u0646\u0627\u062a\u06d2 \u0648\u0642\u062a \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u062d\u062a\u0645\u06cc PDF \u0627\u0635\u0644 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0648\u0631 \u0633\u0631\u062e\u06cc\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u062a\u06cc \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u060c \u0627\u0634\u062a\u0631\u0627\u06a9 \u06cc\u0627 \u067e\u0631\u0646\u0679 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-downloading-png-storyboard-sheets\">PNG \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u0646 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u0648\u06c1 \u067e\u06cc \u0627\u06cc\u0646 \u062c\u06cc \u0634\u06cc\u0679\u0633 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u067e\u0648\u0631\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u06a9\u0648 200 DPI \u067e\u0631 PNG \u0627\u0645\u06cc\u062c \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0634\u06cc\u0679 \u06c1\u06d2 \u062a\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc PNG \u0641\u0627\u0626\u0644 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0645\u062a\u0639\u062f\u062f \u0634\u06cc\u0679\u0633 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0646\u06c1\u06cc\u06ba \u0632\u067e \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u0645\u06cc\u06ba \u067e\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-exporting-the-storyboard-as-png\">\u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0648 PNG \u06a9\u06d2 \u0628\u0637\u0648\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 PNG \u0628\u0631\u0622\u0645\u062f \u06a9\u0648 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>exportJob()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u06c1\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0627\u0642\u062a\u0628\u0627\u0633 \u0627\u0635\u0644 PNG \u0628\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0646\u0641\u0627\u0630 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">var k = exportScale(L, 200, 16e6),\n    files = [];\n\nfor (var s = 0; s < L.sheets; s++) {\n    checkCancel();\n\n    setProgress(\n        s \/ L.sheets,\n        'Drawing sheet ' + (s + 1) + ' of ' + L.sheets + '\u2026'\n    );\n\n    var c = document.createElement('canvas');\n\n    c.width = Math.round(L.W * k);\n    c.height = Math.round(L.H * k);\n\n    var ok = await drawSheet(\n        c.getContext('2d'),\n        o,\n        list,\n        L,\n        s,\n        k,\n        'full',\n        function (n, w, h) {\n            checkCancel();\n            return renderPage(n, w, h);\n        }\n    );\n\n    if (!ok) { return; }\n\n    files.push({\n        name: state.base + '-storyboard-sheet-' +\n            pad2(s + 1) + '.png',\n        data: await pngBytes(c)\n    });\n\n    c.width = 1;\n}\n\nif (files.length === 1) {\n    save(\n        new Blob([files[0].data], { type: 'image\/png' }),\n        state.base + '-storyboard.png'\n    );\n} else {\n    save(makeZip(files), state.base + '-storyboard-sheets.zip');\n}\n\ntoast(\n    files.length === 1\n        ? 'Saved the storyboard as a PNG.'\n        : 'Saved ' + files.length + ' sheets as PNG files in a ZIP.'\n);\n<\/code><\/pre>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 <code>exportScale()<\/code> \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 16 \u0645\u0644\u06cc\u0646 \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06a9\u0633\u0644 \u06a9\u06cc \u062d\u062f \u0645\u06cc\u06ba \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 200 DPI \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0631 \u0634\u06cc\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0646\u0648\u0633 \u0628\u0646\u0627\u062a\u0627 \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>drawSheet()<\/code> \u06a9\u0648 <code>full<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06d2 \u0639\u0646\u0648\u0627\u0646\u060c \u0644\u06cc\u0628\u0644\u0632\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632\u060c \u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u062f\u06cc\u06af\u0631 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0628\u0646\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06a9\u06c1 <code>pngBytes()<\/code> \u0645\u062f\u062f\u06af\u0627\u0631 \u0645\u06a9\u0645\u0644 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 PNG \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u062a\u0635\u0648\u06cc\u0631 \u06c1\u06d2\u06d4 <code>files<\/code> \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u0648\u0627\u0644\u06cc \u0627\u06cc\u06a9 \u0635\u0641 \u062c\u0633 \u0645\u06cc\u06ba \u0634\u06cc\u0679 \u0646\u0645\u0628\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 \u0634\u06cc\u0679\u0633 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u062a\u0646\u06cc PNG \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0646\u06cc \u06c1\u06cc\u06ba\u06d4 \u0633\u0646\u06af\u0644 \u0634\u06cc\u0679\u0633 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a PNG \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0634\u06cc\u0679\u0633 \u06a9\u0648 \u0632\u067e \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>makeZip()<\/code>.<\/p>\n<p>\u06cc\u06c1 \u0641\u0627\u0631\u0645\u06cc\u0679 \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646\u0632\u060c \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u0645\u06cc\u06ba \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0634\u06cc\u0626\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-downloading-individual-page-pictures\">\u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062a\u06cc\u0633\u0631\u0627 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u0622\u067e\u0634\u0646 \u067e\u06cc\u062c \u0641\u0648\u0679\u0648\u0632 (ZIP) \u06c1\u06d2\u06d4<\/p>\n<p>PNG \u0634\u06cc\u0679 \u0622\u067e\u0634\u0646 \u06a9\u06d2 \u0628\u0631\u0639\u06a9\u0633\u060c \u0627\u0633 \u0627\u06cc\u06a9\u0633\u067e\u0648\u0631\u0679 \u0645\u06cc\u06ba \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06c1\u0631 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u0644\u06af \u0633\u06d2 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u0622\u0646\u06d2 \u0648\u0627\u0644\u06cc PNG \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0632\u067e \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-exporting-individual-pdf-pages\">\u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0635\u0644 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633 \u0627\u062e\u062a\u06cc\u0627\u0631 \u06a9\u0648 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>exportJob()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u0646\u0641\u0631\u062f \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u0635\u0644 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">var pages = unique(list),\n    out = [];\n\nfor (var i = 0; i < pages.length; i++) {\n    checkCancel();\n\n    setProgress(\n        i \/ pages.length,\n        'Saving page ' + pages[i] +\n        ' (' + (i + 1) + ' of ' + pages.length + ')\u2026'\n    );\n\n    var pg = await state.doc.getPage(pages[i]),\n        vb = pg.getViewport({ scale: 1 }),\n        sc = Math.min(\n            2,\n            Math.sqrt(12e6 \/ (vb.width * vb.height))\n        );\n\n    var pc = await renderPage(\n        pages[i],\n        vb.width * sc,\n        vb.height * sc\n    );\n\n    out.push({\n        name: 'panel-' +\n            pad2(list.indexOf(pages[i]) + 1) +\n            '-page-' + pad2(pages[i]) + '.png',\n        data: await pngBytes(pc)\n    });\n\n    pc.width = 1;\n}\n\nsave(makeZip(out), state.base + '-panels.zip');\n\ntoast(\n    'Saved ' +\n    plural(out.length, 'page picture', 'page pictures') +\n    ' in a ZIP.'\n);\n<\/code><\/pre>\n<p>\u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>unique()<\/code> \u0645\u0646\u062a\u062e\u0628 \u0641\u06c1\u0631\u0633\u062a \u0633\u06d2 \u0688\u067e\u0644\u06cc\u06a9\u06cc\u0679 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06c1\u0645 \u06c1\u0631 \u0635\u0641\u062d\u06d2 \u067e\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>getPage()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 <code>getViewport()<\/code> \u0622\u067e \u06a9\u0648 \u0648\u06c1 \u062c\u06c1\u062a \u0645\u0644 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc\u0644\u06a9\u0648\u0644\u06cc\u0634\u0646 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0641\u06cc\u06a9\u0679\u0631 \u06a9\u0648 2 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628\u06a9\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u0634\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 12 \u0645\u0644\u06cc\u0646 \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0628\u0691\u06d2 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>renderPage()<\/code> \u0641\u0646\u06a9\u0634\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c <code>pngBytes()<\/code> \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 PNG \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0631 \u062a\u0635\u0648\u06cc\u0631 \u06c1\u06d2\u06d4 <code>out<\/code> \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0635\u0641 \u062c\u0633 \u0645\u06cc\u06ba \u067e\u06cc\u0646\u0644 \u067e\u0648\u0632\u06cc\u0634\u0646\u0632 \u0627\u0648\u0631 \u0627\u0635\u0644 PDF \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u062f\u0648\u0646\u0648\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u0633\u06d2 \u062a\u0635\u0648\u06cc\u0631\u0648\u06ba \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u0627\u0648\u0631 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u06a9\u0627\u0631 <code>makeZip()<\/code> \u062a\u0645\u0627\u0645 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 PNG \u062a\u0635\u0627\u0648\u06cc\u0631 \u06a9\u0648 \u0632\u067e \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u0645\u06cc\u06ba \u067e\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u062c\u0633\u06d2 \u0622\u067e \u06a9\u0627 \u0628\u0631\u0627\u0624\u0632\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0622\u067e\u0634\u0646 \u0627\u0633 \u0648\u0642\u062a \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641\u06cc\u0646 \u067e\u0648\u0631\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_12_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0628\u0648\u0631\u0688 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1\u060c \u0628\u0634\u0645\u0648\u0644 PDF\u060c PNG \u0634\u06cc\u0679\u0633\u060c \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0679\u0646\u06d4\" style=\"display: block;\" width=\"336\" height=\"212\" loading=\"lazy\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/11\/1794012967_936_\u062c\u0627\u0648\u0627-\u0627\u0633\u06a9\u0631\u067e\u0679-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2-\u067e\u06cc-\u0688\u06cc-\u0627\u06cc\u0641-\u0627\u0633\u0679\u0648\u0631\u06cc.png\" alt=\"\u0628\u0631\u0622\u0645\u062f \u0634\u062f\u06c1 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0648\u06cc\u0648\u0631 \u0645\u06cc\u06ba \u06a9\u06be\u0644\u062a\u0627 \u06c1\u06d2\u06d4\" style=\"display: block;\" width=\"1134\" height=\"803\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-performance-and-important-considerations\">\u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0627\u0648\u0631 \u0627\u06c1\u0645 \u062a\u062d\u0641\u0638\u0627\u062a<\/h2>\n<p>\u0628\u0691\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u06c1\u0627\u0626\u06cc \u0631\u06cc\u0632\u0648\u0644\u06cc\u0648\u0634\u0646 \u0627\u0645\u06cc\u062c\u0632 \u0628\u0646\u0627\u0646\u0627 \u0627\u06c1\u0645 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0641\u062d\u06c1 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06cc\u0634\u0646\u06af\u060c \u0639\u0627\u0631\u0636\u06cc \u06a9\u06cc\u0646\u0648\u0633\u060c \u067e\u06cc\u0634\u0631\u0641\u062a \u06a9\u06cc \u0631\u067e\u0648\u0631\u0679\u0646\u06af\u060c \u0627\u0648\u0631 \u0645\u0646\u0633\u0648\u062e\u06cc \u06a9\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633 \u06a9\u0627\u0645 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u06c1\u062a\u0631 \u0646\u062a\u0627\u0626\u062c \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0628\u0691\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0641\u06cc \u0634\u06cc\u0679 \u06a9\u0645 \u067e\u06cc\u0646\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0645\u062a\u0639\u062f\u062f \u067e\u06cc\u0646\u0644\u0632 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2 \u062a\u0648 A3 \u067e\u06cc\u067e\u0631 \u0645\u0632\u06cc\u062f \u062c\u06af\u06c1 \u0628\u06be\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u06d2 \u0622\u0624\u0679 \u06a9\u06cc \u062a\u0631\u062c\u06cc\u062d\u0627\u062a \u0622\u067e \u06a9\u06d2 \u0622\u0644\u06d2 \u067e\u0631 \u06cc\u0627\u062f \u0631\u06a9\u06be\u06cc \u062c\u0627\u0626\u06cc\u06ba \u06af\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0634\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0628\u0631\u0627\u0624\u0632\u0631 \u0679\u06cc\u0628 \u0645\u06cc\u06ba \u06c1\u06cc \u0631\u06c1\u06cc\u06ba \u06af\u06d2\u06d4 \u0679\u06cc\u0628 \u06a9\u0648 \u0628\u0646\u062f \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u0627 \u06a9\u0627\u0645 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-demo-pdf-storyboard-generator\">\u0688\u06cc\u0645\u0648: \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631<\/h2>\n<p>\u0622\u067e \u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u06cc\u06c1\u0627\u06ba \u0622\u0632\u0645\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 - AllInOneTools<\/p>\n<p>\u0627\u067e\u0646\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u060c \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u060c \u06a9\u06cc\u067e\u0634\u0646\u0632 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u067e\u0646\u06d2 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0648 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0646\u062a\u06cc\u062c\u06c1 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u062c\u0646\u0631\u06cc\u0679\u0631 \u0628\u0646\u0627\u0646\u0627 \u06a9\u0626\u06cc \u0645\u0641\u06cc\u062f \u0628\u0631\u0627\u0624\u0632\u0631 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632 \u06a9\u0648 \u0627\u06cc\u06a9 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0645\u0644\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>PDF.js \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688\u0646\u06af \u0627\u0648\u0631 \u067e\u06cc\u062c \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 Tesseract.js \u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0645\u062a\u0646 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 PDF-lib \u062d\u062a\u0645\u06cc \u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 PDF \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 HTML \u06a9\u06cc\u0646\u0648\u0633 \u062a\u0635\u0627\u0648\u06cc\u0631 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0627\u0648\u0631 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0646 \u0627\u062c\u0632\u0627\u0621 \u06a9\u0648 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691 \u06a9\u0631\u060c \u0622\u067e \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646 \u0633\u0644\u0627\u0626\u06cc\u0688\u0632\u060c \u0645\u0632\u0627\u062d\u06cc\u06c1 \u0635\u0641\u062d\u0627\u062a\u060c \u0627\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u0645\u0644\u06cc \u0679\u0648\u0644\u0632 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06cc\u06c1 \u0628\u06be\u06cc \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u0631\u0648\u0633\u06cc\u0633 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2 \u0628\u063a\u06cc\u0631 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0633\u0631\u0648\u0631 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0645\u0646\u0638\u0645 \u0627\u0633\u0679\u0648\u0631\u06cc \u0628\u0648\u0631\u0688 \u0634\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u0627\u060c \u067e\u0631\u0646\u0679 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u067e\u0631\u06cc\u0632\u0646\u0679\u06cc\u0634\u0646\u0632\u060c \u0627\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0631\u067e\u0648\u0631\u0679\u0633\u060c \u06a9\u0648\u0631\u0633 \u06a9\u06d2 \u0645\u0648\u0627\u062f\u060c \u0645\u0632\u0627\u062d\u06cc\u06c1 \u0635\u0641\u062d\u0627\u062a \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0635\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u06cc\u06a9 \u0637\u0648\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u06c1 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0645\u06cc\u06ba \u0648\u0642\u062a \u0644\u06af \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0648\u0642\u062a \u0644\u06af \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":32063,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/32062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=32062"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/32062\/revisions"}],"predecessor-version":[{"id":32064,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/32062\/revisions\/32064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media\/32063"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=32062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=32062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=32062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}