{"id":27758,"date":"2026-08-15T16:47:37","date_gmt":"2026-08-15T16:47:37","guid":{"rendered":"https:\/\/umang.pk\/2026\/08\/15\/%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-%d8%a8%d8%b1%d8%a7%d8%a4-18\/"},"modified":"2026-08-15T16:47:38","modified_gmt":"2026-08-15T16:47:38","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-%d8%a8%d8%b1%d8%a7%d8%a4-18","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/08\/15\/%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-%d8%a8%d8%b1%d8%a7%d8%a4-18\/","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 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0628\u06c1\u062a \u0633\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0631\u0646\u06af\u06cc\u0646 \u0686\u0627\u0631\u0679\u0633\u060c \u067e\u06cc\u0634\u06a9\u0634\u06cc\u06ba\u060c \u0645\u0627\u0631\u06a9\u06cc\u0679\u0646\u06af \u06a9\u0627 \u0645\u0648\u0627\u062f\u060c \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06cc\u0627 \u06af\u0631\u0627\u0641\u06a9\u0633 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u067e\u0631\u0646\u0679\u0646\u06af \u06cc\u0627 \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u0686\u06be \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba\u060c \u06a9\u0633\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u062e\u0644\u0641\u0634\u0627\u0631 \u06a9\u0648 \u06a9\u0645 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u067e\u0631\u0646\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u0648\u0631\u0698\u0646 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u067e\u0631\u0646\u0679\u0646\u06af \u06a9\u06cc \u0644\u0627\u06af\u062a \u06a9\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u060c \u06cc\u0627 \u0628\u0644\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0648\u0627\u0626\u0679 \u0627\u0634\u0627\u0639\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u0688\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0635\u0627\u0631\u0641 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0698\u0646 \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0646\u062a\u0627\u0626\u062c \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0646\u0626\u06cc \u200b\u200b\u062a\u062e\u0644\u06cc\u0642 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 \u0635\u0627\u0631\u0641 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc \u0634\u062f\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0645\u062a\u0639\u062f\u062f \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0641\u062d\u0627\u062a \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062d\u062a\u0645\u06cc \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u0624\u0679 \u067e\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06a9\u0633\u06cc \u0628\u06cc\u0631\u0648\u0646\u06cc \u0633\u0631\u0648\u0631 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0645 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 PDF.js\u060c \u062a\u0635\u0648\u06cc\u0631\u06cc \u067e\u06a9\u0633\u0644\u0632 \u0645\u06cc\u06ba \u06c1\u06cc\u0631\u0627 \u067e\u06be\u06cc\u0631\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 HTML Canvas API\u060c \u0627\u0648\u0631 \u062d\u062a\u0645\u06cc \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06d2 \u0642\u0627\u0628\u0644 PDF \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 PDF-lib \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u062a\u06a9\u060c \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u0627\u0626\u06cc\u0688 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u06c1\u0648\u06af\u06cc \u062c\u0648 \u0622\u0644 \u0627\u0646 \u0648\u0646 \u0679\u0648\u0644\u0632 \u0633\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-this-pdf-to-grayscale-converter-does-and-how-it-works\">\u06cc\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>PDF to Grayscale Converter \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06d2 \u0644\u06d2 \u0622\u0624\u0679\u060c \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0633\u0627\u0626\u0632\u060c \u0679\u06cc\u06a9\u0633\u0679 \u0631\u06cc\u067e\u0646\u06af\u060c \u0627\u0648\u0631 \u0627\u0645\u06cc\u062c\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0631\u0646\u06af\u06cc\u0646 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0648\u0627\u062f \u06a9\u0648 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06cc\u06c1 \u06c1\u0631 \u067e\u06a9\u0633\u0644 \u06a9\u06d2 \u0631\u0646\u06af \u06a9\u06cc \u062f\u0648\u0628\u0627\u0631\u06c1 \u06af\u0646\u062a\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u067e\u0648\u0631\u0627 \u0635\u0641\u062d\u06c1 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u0631\u0646\u0679\u0631 \u06a9\u06d2 \u0645\u0648\u0627\u0641\u0642 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0628\u0646\u0627\u0646\u06d2\u060c \u0631\u0646\u06af\u06cc\u0646 \u0645\u062f\u0627\u062e\u0644\u062a \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u06d2\u060c \u0633\u06cc\u0627\u06c1 \u0627\u0648\u0631 \u0633\u0641\u06cc\u062f \u067e\u0631\u0646\u0679\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u06cc \u062a\u06cc\u0627\u0631\u06cc\u060c \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06cc \u0645\u0633\u062a\u0642\u0644 \u0645\u0632\u0627\u062c\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u06d2\u060c \u0627\u0648\u0631 \u062c\u0627\u0626\u0632\u06d2 \u0627\u0648\u0631 \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u06c1 \u0627\u0648\u0631 \u0633\u0641\u06cc\u062f \u0648\u0631\u0698\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba\u060c \u0635\u0627\u0631\u0641 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc \u0634\u062f\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0645\u062e\u062a\u0644\u0641 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 \u06cc\u0627 \u0635\u0631\u0641 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a\u060c \u0646\u0626\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u06cc\u0627\u0631 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u0624\u0679 \u067e\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u0631\u062f\u06d2 \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2\u060c PDF.js \u06c1\u0631 PDF \u0635\u0641\u062d\u06c1 \u06a9\u0648 HTML \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628 \u0635\u0641\u062d\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 JavaScript \u06c1\u0631 \u067e\u06a9\u0633\u0644 \u06a9\u06cc RGB \u0642\u062f\u0631\u0648\u06ba \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 luminance \u0641\u0627\u0631\u0645\u0648\u0644\u06d2 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0648\u06cc\u0644\u06cc\u0648 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4 PDF-lib \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0646\u0626\u06cc PDF \u0645\u06cc\u06ba \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e \u0688\u06cc\u0679 \u0634\u062f\u06c1 \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0644\u06a9\u06be\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0639\u0627\u0645 \u067e\u06a9\u0633\u0644 \u0645\u06cc\u06ba \u0686\u0627\u0631 \u0642\u062f\u0631\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-javascript\">const pixel = {\n    red: 180,\n    green: 95,\n    blue: 40,\n    alpha: 255\n};\n<\/code><\/pre>\n<p>\u0627\u0633 \u067e\u06a9\u0633\u0644 \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c JavaScript \u0627\u06cc\u06a9 \u06c1\u06cc \u0686\u0645\u06a9\u06cc\u0644\u06cc \u0642\u062f\u0631 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0633\u0631\u062e\u060c \u0633\u0628\u0632 \u0627\u0648\u0631 \u0646\u06cc\u0644\u06d2 \u0686\u06cc\u0646\u0644\u0632 \u067e\u0631 \u06cc\u06a9\u0633\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0644\u0627\u06af\u0648 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const gray = 0.299 * red + 0.587 * green + 0.114 * blue;\n<\/code><\/pre>\n<p>\u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u067e\u06a9\u0633\u0644\u0632 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-javascript\">pixel.red = gray;\npixel.green = gray;\npixel.blue = gray;\n<\/code><\/pre>\n<p>\u062a\u0645\u0627\u0645 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06c1\u0631 \u067e\u06a9\u0633\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u0648 \u062f\u06c1\u0631\u0627\u0646\u06d2 \u0633\u06d2 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06cc \u0645\u062c\u0645\u0648\u0639\u06cc \u0633\u0627\u062e\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0635\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0627 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0648\u0631\u0698\u0646 \u0628\u0646\u062a\u0627 \u06c1\u06d2\u06d4<\/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>\u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06cc \u0645\u0646\u0637\u0642 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u0626\u06cc\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0645 PDF.js\u060c Canvas API\u060c \u0627\u0648\u0631 PDF-lib \u06a9\u06d2 \u0633\u0627\u062a\u06be HTML\u060c CSS\u060c \u0627\u0648\u0631 JavaScript \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06c1\u0631 \u0686\u06cc\u0632 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0645\u0627\u0631\u06d2 \u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-text\">pdf-to-grayscale\/\n\u2502\u2500\u2500 index.html\n\u2502\u2500\u2500 style.css\n\u2502\u2500\u2500 script.js\n\u2502\u2500\u2500 pdf.worker.min.js\n\u2502\u2500\u2500 assets\/\n<\/code><\/pre>\n<p>\u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644\u060c \u0627\u0633\u0679\u0627\u0626\u0644\u0632 \u0627\u0648\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0627\u0644\u06af \u0631\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u0622\u067e \u06a9\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \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 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0632\u06cc\u062f \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\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>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u062a\u06cc\u0646 \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\u0627 \u06c1\u06d2 \u062c\u0648 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2\u060c \u062a\u0635\u0648\u06cc\u0631\u06cc \u067e\u06a9\u0633\u0644\u0632 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0644 \u06a9\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><strong>PDF.js<\/strong> \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <strong>HTML \u06a9\u06cc\u0646\u0648\u0633 API<\/strong> \u06c1\u0631 \u067e\u06a9\u0633\u0644 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0631\u0646\u06af \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u06d2\u06d4<\/p>\n<p><strong>PDF-lib<\/strong> \u062a\u0645\u0627\u0645 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0639\u062f\u060c \u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062a\u06cc\u0627\u0631 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0627\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\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>PDF.js \u0648\u0631\u06a9\u0631 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">pdfjsLib.GlobalWorkerOptions.workerSrc = \"https:\/\/www.freecodecamp.org\/news\/build-pdf-to-grayscale-converter-javascript\/pdf.worker.min.js\";\n<\/code><\/pre>\n<p>\u06a9\u0627\u0631\u06a9\u0646 \u0622\u067e \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0645\u0646\u062c\u0645\u062f \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u0633 \u0645\u0646\u0638\u0631 \u0645\u06cc\u06ba \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-creating-the-html-layout\">\u0627\u06cc\u06a9 HTML \u0644\u06d2 \u0622\u0624\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0686\u0627\u0631 \u0627\u06c1\u0645 \u062d\u0635\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0627\u067e \u0644\u0648\u0688 \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1<\/p>\n<\/li>\n<li>\n<p>\u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a<\/p>\n<\/li>\n<li>\n<p>\u0633\u06cc\u06a9\u0634\u0646 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0635\u0641\u062d\u06c1 \u06a9\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><section id=\"uploadSection\"\/>\n<section id=\"previewSection\" hidden=\"\"\/>\n<section id=\"settingsSection\" hidden=\"\"\/>\n<section id=\"downloadSection\" hidden=\"\"\/>\n<\/code><\/pre>\n<p>\u062c\u0628 \u0635\u0641\u062d\u06c1 \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u0644\u0648\u0688 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0635\u0631\u0641 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0627 \u0639\u0644\u0627\u0642\u06c1 \u0646\u0638\u0631 \u0622\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u06be\u0644\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0628\u0627\u0642\u06cc \u062d\u0635\u06d2 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<h3 id=\"heading-selecting-the-main-elements\">\u06a9\u0644\u06cc\u062f\u06cc \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0646 \u0639\u0646\u0627\u0635\u0631 \u06a9\u06d2 \u062d\u0648\u0627\u0644\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u067e\u0648\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const uploadSection = document.getElementById(\"uploadSection\");\nconst previewSection = document.getElementById(\"previewSection\");\nconst settingsSection = document.getElementById(\"settingsSection\");\nconst pdfCanvas = document.getElementById(\"pdfCanvas\");\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062d\u0648\u0627\u0644\u06c1 \u062c\u0627\u062a \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u0639\u0645\u0644 \u0633\u06d2 \u06af\u0632\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-uploading-and-previewing-pdfs\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0627\u067e \u0644\u0648\u0688 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0688\u0631\u06cc\u06af \u0627\u06cc\u0646\u0688 \u0688\u0631\u0627\u067e \u0627\u0648\u0631 \u0645\u06cc\u0646\u0648\u0626\u0644 \u0641\u0627\u0626\u0644 \u0633\u0644\u06cc\u06a9\u0634\u0646 \u062f\u0648\u0646\u0648\u06ba \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0622\u067e \u06a9\u0648\u0626\u06cc \u0641\u0627\u0626\u0644 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function uploadPdf(file) {\n    if (!file || file.type !== \"application\/pdf\") {\n        alert(\"Please select a PDF file.\");\n        return;\n    }\n\n    await loadPdf(file);\n}\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u06ba \u0644\u0648\u0688 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-loading-the-pdf\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u062f\u06c1 \u0641\u0627\u0626\u0644 \u06a9\u0648 PDF.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u06be\u0648\u0644\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 ArrayBuffer \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function loadPdf(file) {\n    const bytes = await file.arrayBuffer();\n\n    pdfDocument = await pdfjsLib.getDocument({\n        data: bytes\n    }).promise;\n\n    currentPage = 1;\n    renderPage(currentPage);\n}\n<\/code><\/pre>\n<p>\u0628\u06be\u0631\u06cc \u06c1\u0648\u0626\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0622\u067e \u0628\u0639\u062f \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-rendering-pdf-pages\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u06cc\u062c \u0631\u06cc\u0646\u0688\u0631\u0646\u06af<\/h3>\n<p>PDF.js HTML \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0635\u0641\u062d\u06c1 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0635\u0641\u062d\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const page = await pdfDocument.getPage(currentPage);\n<\/code><\/pre>\n<p>\u0648\u06cc\u0648 \u067e\u0648\u0631\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const viewport = page.getViewport({\n    scale: 1.5\n});\n<\/code><\/pre>\n<p>\u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">pdfCanvas.width = viewport.width;\npdfCanvas.height = viewport.height;\n<\/code><\/pre>\n<p>\u0635\u0641\u062d\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">await page.render({\n    canvasContext: pdfCanvas.getContext(\"2d\"),\n    viewport\n}).promise;\n<\/code><\/pre>\n<p>\u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_273_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"PDF.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 PDF \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-navigating-between-pages\">\u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646<\/h3>\n<p>\u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0645\u062a\u0639\u062f\u062f \u0635\u0641\u062d\u0627\u062a \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0633\u0627\u062f\u06c1 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06a9\u0646\u0679\u0631\u0648\u0644\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">let currentPage = 1;\nlet pdfDocument = null;\n<\/code><\/pre>\n<p>\u067e\u0686\u06be\u0644\u06d2 \u0635\u0641\u062d\u06d2 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">previousButton.addEventListener(\"click\", async () => {\n    if (currentPage > 1) {\n        currentPage--;\n        await renderPage(currentPage);\n    }\n});\n<\/code><\/pre>\n<p>\u0627\u06af\u0644\u06d2 \u0635\u0641\u062d\u06d2 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">nextButton.addEventListener(\"click\", async () => {\n    if (currentPage < pdfDocument.numPages) {\n        currentPage++;\n        await renderPage(currentPage);\n    }\n});\n<\/code><\/pre>\n<p>\u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">pageCounter.textContent = `Page ${currentPage} of ${pdfDocument.numPages}`;\n<\/code><\/pre>\n<p>\u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0679\u0631\u0627\u0646\u0633\u0641\u0627\u0631\u0645\u06cc\u0634\u0646 \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u0637\u06d2 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0628 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-building-the-conversion-settings\">\u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631<\/h2>\n<p>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0635\u0627\u0631\u0641 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06af\u0631\u06d2 \u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u0633\u06cc\u0679\u0646\u06af \u067e\u06cc\u0646\u0644 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc \u0634\u062f\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u0646\u06d2\u060c \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0627 \u0645\u0648\u0688 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2\u060c \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_372_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u0633\u06cc\u0679\u0646\u06af \u067e\u06cc\u0646\u0644 \u062c\u0633 \u0645\u06cc\u06ba \u0634\u062f\u062a \u06a9\u0627 \u0633\u0644\u0627\u0626\u06cc\u0688\u0631\u060c \u06a9\u0646\u0648\u0631\u0698\u0646 \u0645\u0648\u0688\u060c \u0627\u0648\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u062f\u06a9\u06be\u0627\u0626\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-adjusting-grayscale-intensity\">\u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc \u0634\u062f\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>Intensity \u0633\u0644\u0627\u0626\u06cc\u0688\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0627\u062b\u0631 \u06a9\u062a\u0646\u0627 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u0686\u0644\u06cc \u0642\u062f\u0631\u06cc\u06ba \u0627\u0635\u0644 \u0631\u0646\u06af \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u062c\u0628 \u06a9\u06c1 \u0627\u0639\u0644\u06cc\u0670 \u0642\u062f\u0631\u06cc\u06ba \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0634\u06a9\u0644 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0633\u0644\u0627\u0626\u06cc\u0688\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><input type=\"range\" id=\"grayIntensity\" min=\"0\" max=\"100\" value=\"100\"\/>\n<\/code><\/pre>\n<p>\u0645\u0646\u062a\u062e\u0628 \u0642\u062f\u0631 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const intensity = Number(document.getElementById(\"grayIntensity\").value);\n<\/code><\/pre>\n<p>\u0622\u067e \u062c\u0633 \u0634\u062f\u062a \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633\u06d2 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0622\u062e\u0631\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0631\u0646\u06af \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-choosing-the-conversion-mode\">\u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0627 \u0645\u0648\u0688 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06cc\u06c1 \u0679\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06a9\u06cc\u0633\u0632 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06a9\u0626\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u0648\u0688\u0632 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0631\u06cc\u0688\u06cc\u0648 \u0628\u0679\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><input type=\"radio\" name=\"mode\" value=\"standard\" checked=\"checked\"\/>\nStandard Grayscale\n<input type=\"radio\" name=\"mode\" value=\"threshold\"\/>\nBlack & White\n<input type=\"radio\" name=\"mode\" value=\"soft\"\/>\nSoft Gray\n<\/code><\/pre>\n<p>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0645\u0648\u0688 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const conversionMode = document.querySelector(\n    'input[name=\"mode\"]:checked'\n).value;\n<\/code><\/pre>\n<p>\u06a9\u06cc\u0646\u0648\u0633 \u067e\u06a9\u0633\u0644\u0632 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06c1\u0631 \u0645\u0648\u0688 \u0627\u06cc\u06a9 \u0645\u062e\u062a\u0644\u0641 \u0627\u0644\u06af\u0648\u0631\u062a\u06be\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-selecting-the-pages\">\u0635\u0641\u062d\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0635\u0627\u0631\u0641 \u067e\u0648\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06cc\u0627 \u0635\u0631\u0641 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0635\u0641\u062d\u06c1 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><input type=\"radio\" name=\"pages\" value=\"all\" checked=\"checked\"\/>\nAll Pages\n<input type=\"radio\" name=\"pages\" value=\"custom\"\/>\nSpecific Pages\n\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u067e\u0691\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const applyMode = document.querySelector(\n    'input[name=\"pages\"]:checked'\n).value;\n<\/code><\/pre>\n<p>\u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u062d\u062f\u0648\u062f \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const pageRange = document.getElementById(\"pageRange\").value.trim();\n<\/code><\/pre>\n<p>\u062c\u0628 <strong>\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a<\/strong> \u0645\u0646\u062a\u062e\u0628 \u06c1\u0648\u0646\u06d2 \u067e\u0631\u060c \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0635\u0631\u0641 \u0622\u067e \u06a9\u06d2 \u0628\u062a\u0627\u0626\u06d2 \u06c1\u0648\u0626\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-converting-pdf-pages-to-grayscale\">\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06c1\u0648 \u062c\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0634\u0646 \u0628\u0679\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><button id=\"convertPdf\">Convert to Grayscale<\/button>\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">convertButton.addEventListener(\"click\", async () => {\n    await convertPdf();\n});\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_263_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u06a9\u0646\u0648\u0631\u0698\u0646 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u06d2 \u062a\u062d\u062a \u06a9\u0646\u0648\u0631\u0679 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0628\u0679\u0646 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-starting-over\">\u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba<\/h3>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0645\u0648\u062c\u0648\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0627\u0633 \u06a9\u06cc \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u062d\u0627\u0644\u062a \u0645\u06cc\u06ba \u0648\u0627\u067e\u0633 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0631\u06cc \u0633\u06cc\u0679 \u0628\u0679\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><button id=\"resetTool\">Start Over<\/button>\n<\/code><\/pre>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">resetTool.addEventListener(\"click\", () => {\n    location.reload();\n});\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06d2 \u06af\u0627 \u0627\u0648\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0648 \u0628\u062d\u0627\u0644 \u06a9\u0631 \u062f\u06d2 \u06af\u0627 \u062a\u0627\u06a9\u06c1 \u0622\u067e \u062f\u06cc\u06af\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-reading-canvas-pixels\">\u06a9\u06cc\u0646\u0648\u0633 \u067e\u06a9\u0633\u0644\u0632 \u067e\u0691\u06be\u06cc\u06ba<\/h3>\n<p>\u0635\u0641\u062d\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06c1\u0645 \u0627\u0633 \u067e\u06a9\u0633\u0644 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const imageData = context.getImageData(\n    0,\n    0,\n    canvas.width,\n    canvas.height\n);\n<\/code><\/pre>\n<p>\u067e\u06a9\u0633\u0644 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u06cc\u06a9 \u0635\u0641 \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const pixels = imageData.data;\n<\/code><\/pre>\n<p>\u06c1\u0631 \u067e\u06a9\u0633\u0644 \u0686\u0627\u0631 \u0627\u0642\u062f\u0627\u0631 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2:<\/p>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u0644\u0641\u0627 \u0686\u06cc\u0646\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0622\u0631 \u062c\u06cc \u0628\u06cc \u0648\u06cc\u0644\u06cc\u0648\u0632 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-converting-colors-to-grayscale\">\u0631\u0646\u06af \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0627\u0644\u06af\u0648\u0631\u062a\u06be\u0645 \u0631\u0648\u0634\u0646\u06cc \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u062e\u060c \u0633\u0628\u0632 \u0627\u0648\u0631 \u0646\u06cc\u0644\u06d2 \u0686\u06cc\u0646\u0644\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u0648\u067e \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">for (let i = 0; i < pixels.length; i += 4) {\n    const gray =\n        0.299 * pixels[i] +\n        0.587 * pixels[i + 1] +\n        0.114 * pixels[i + 2];\n\n    pixels[i] = gray;\n    pixels[i + 1] = gray;\n    pixels[i + 2] = gray;\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u0627\u0631\u0645\u0648\u0644\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646\u0633\u0627\u0646\u06cc \u0622\u0646\u06a9\u06be \u06a9\u0633 \u0637\u0631\u062d \u0686\u0645\u06a9 \u06a9\u0648 \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u0648\u062c\u06c1 \u0633\u06d2 \u0642\u062f\u0631\u062a\u06cc \u0646\u0638\u0631 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0645\u0679\u06cc\u0627\u0644\u0627 \u067e\u06cc\u0645\u0627\u0646\u06c1 \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-applying-the-selected-conversion-mode\">\u0645\u0646\u062a\u062e\u0628 \u06a9\u0646\u0648\u0631\u0698\u0646 \u0645\u0648\u0688 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u062e\u062a\u0644\u0641 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u0645\u062e\u062a\u0644\u0641 \u067e\u06a9\u0633\u0644 \u062d\u0633\u0627\u0628\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <strong>\u0633\u06cc\u0627\u06c1 \u0627\u0648\u0631 \u0633\u0641\u06cc\u062f (\u062d\u062f)<\/strong> \u0645\u0648\u0688 \u06c1\u0631 \u067e\u06a9\u0633\u0644 \u06a9\u0648 \u062e\u0627\u0644\u0635 \u0633\u06cc\u0627\u06c1 \u06cc\u0627 \u062e\u0627\u0644\u0635 \u0633\u0641\u06cc\u062f \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const threshold = 128;\nconst color = gray >= threshold ? 255 : 0;\npixels[i] = color;\npixels[i + 1] = color;\npixels[i + 2] = color;\n<\/code><\/pre>\n<p>\u06a9\u06c1 <strong>\u0646\u0631\u0645 \u0633\u0631\u0645\u0626\u06cc<\/strong> \u0645\u0648\u0688 \u06a9\u0645 \u062c\u0627\u0631\u062d\u0627\u0646\u06c1 \u0627\u062b\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0635\u0644 \u0631\u0646\u06af \u0627\u0648\u0631 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0648 \u0645\u0644\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const softGray =\n    (gray * 0.6) +\n    (pixels[i] * 0.4);\n\npixels[i] = softGray;\npixels[i + 1] = softGray;\npixels[i + 2] = softGray;\n<\/code><\/pre>\n<p>\u062c\u0628 \u0645\u0646\u062a\u062e\u0628 \u0645\u0648\u0688 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0627\u067e \u0688\u06cc\u0679 \u0634\u062f\u06c1 \u067e\u06a9\u0633\u0644\u0632 \u0648\u0627\u067e\u0633 \u06a9\u06cc\u0646\u0648\u0633 \u067e\u0631 \u0644\u06a9\u06be\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">context.putImageData(\n    imageData,\n    0,\n    0\n);\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_459_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-processing-the-selected-pages\">\u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06c1\u0631 \u0628\u0627\u0631 \u067e\u0648\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06cc\u06c1 \u0635\u0631\u0641 \u0622\u067e \u06a9\u06d2 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u0627\u06cc\u06a9 \u0631\u06cc\u0646\u062c \u067e\u0631 \u0627\u0639\u0627\u062f\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">for (let page = startPage; page <= endPage; page++) {\n    await processPage(page);\n}\n<\/code><\/pre>\n<p>\u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u0631 \u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0639\u0627\u0631\u0636\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-generating-the-final-pdf\">\u062d\u062a\u0645\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\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\u06d4<\/p>\n<pre><code class=\"language-javascript\">const outputPdf = await PDFLib.PDFDocument.create();\n<\/code><\/pre>\n<p>\u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u0648 \u062a\u0635\u0648\u06cc\u0631 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const imageBytes = await canvasToBytes(pdfCanvas);\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const image = await outputPdf.embedPng(imageBytes);\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u0635\u0641\u062d\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const page = outputPdf.addPage([\n    image.width,\n    image.height\n]);\n<\/code><\/pre>\n<p>\u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06be\u06cc\u0646\u0686\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">page.drawImage(image, {\n    x: 0,\n    y: 0,\n    width: image.width,\n    height: image.height\n});\n<\/code><\/pre>\n<p>\u0627\u0633 \u0639\u0645\u0644 \u06a9\u0648 \u062a\u0645\u0627\u0645 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u06c1\u0631\u0627\u0626\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u0646\u0626\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06a9\u0645\u0644 \u0646\u06c1 \u06c1\u0648\u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h3 id=\"heading-saving-the-generated-pdf\">\u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0639\u062f \u0627\u067e\u0646\u06cc \u0645\u06a9\u0645\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const pdfBytes = await outputPdf.save();\n<\/code><\/pre>\n<p>\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\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">generatedPdfBlob = new Blob([pdfBytes], {\n    type: \"application\/pdf\"\n});\n<\/code><\/pre>\n<p>\u0627\u0628 \u0622\u067e \u0627\u067e\u0646\u06cc \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 PDF \u06a9\u0627 \u067e\u06cc\u0634 \u0645\u0646\u0638\u0631 \u062f\u06cc\u06a9\u06be\u0646\u06d2\u060c \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-previewing-the-result\">\u0646\u062a\u0627\u0626\u062c \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u062d\u062a\u0645\u06cc \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u0627 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u06a9\u06c1 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u0622\u067e \u06a9\u06cc \u062a\u0648\u0642\u0639\u0627\u062a \u067e\u0631 \u067e\u0648\u0631\u0627 \u0627\u062a\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>PDF.js \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0646\u0627\u0626\u06cc \u06af\u0626\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">let finalPdf = null;\n\nasync function showResult() {\n    const bytes = await generatedPdfBlob.arrayBuffer();\n\n    finalPdf = await pdfjsLib.getDocument({\n        data: bytes\n    }).promise;\n\n    renderResultPage(1);\n}\n<\/code><\/pre>\n<p>\u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">async function renderResultPage(pageNumber) {\n    const page = await finalPdf.getPage(pageNumber);\n\n    const viewport = page.getViewport({\n        scale: 1.5\n    });\n\n    resultCanvas.width = viewport.width;\n    resultCanvas.height = viewport.height;\n\n    await page.render({\n        canvasContext: resultCanvas.getContext(\"2d\"),\n        viewport\n    }).promise;\n}\n<\/code><\/pre>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u0645\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-renaming-and-downloading\">\u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0635\u0627\u0631\u0641 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u0627\u0646 \u067e\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\"><input type=\"text\" id=\"outputFilename\" value=\"grayscale-document.pdf\"\/>\n<\/code><\/pre>\n<p>\u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">function getFilename() {\n    let filename = outputFilename.value.trim();\n\n    if (!filename) {\n        filename = \"grayscale-document.pdf\";\n    }\n\n    if (!filename.toLowerCase().endsWith(\".pdf\")) {\n        filename += \".pdf\";\n    }\n\n    return filename;\n}\n<\/code><\/pre>\n<p>\u062a\u062e\u0644\u06cc\u0642 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">pageCount.textContent = `${finalPdf.numPages} Pages`;\nfileSize.textContent = formatFileSize(generatedPdfBlob.size);\n<\/code><\/pre>\n<p>\u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">downloadButton.addEventListener(\"click\", () => {\n    const url = URL.createObjectURL(generatedPdfBlob);\n\n    const link = document.createElement(\"a\");\n    link.href = url;\n    link.download = getFilename();\n    link.click();\n\n    URL.revokeObjectURL(url);\n});\n<\/code><\/pre>\n<p>\u062a\u0645\u0627\u0645 \u06a9\u0627\u0645 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u067e\u0648\u0631\u06d2 \u0639\u0645\u0644 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0627\u067e\u0646\u06d2 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u0646\u062c\u06cc \u0631\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_909_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0633\u06cc\u06a9\u0634\u0646 \u0622\u0624\u0679 \u067e\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645\u060c \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0628\u0679\u0646 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-demo-how-the-pdf-to-grayscale-converter-works\">\u0688\u06cc\u0645\u0648: \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0633\u06d2 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u0622\u0626\u06cc\u06d2 \u067e\u0648\u0631\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u067e\u0631 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0688\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-step-1-upload-the-pdf\">\u0645\u0631\u062d\u0644\u06c1 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 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0648 \u0627\u067e \u0644\u0648\u0688 \u0627\u06cc\u0631\u06cc\u0627 \u0645\u06cc\u06ba \u06af\u06be\u0633\u06cc\u0679 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 <strong>\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_714_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u06cc\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0627 \u0639\u0644\u0627\u0642\u06c1 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-2-preview-the-document\">\u0645\u0631\u062d\u0644\u06c1 2: \u0627\u067e\u0646\u06d2 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba\u06d4<\/h3>\n<p>PDF.js \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u0635\u0641\u062d\u06c1 \u0628\u06c1 \u0635\u0641\u062d\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u062a\u0628\u062f\u06cc\u0644\u06cc \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812456_566_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-3-configure-the-conversion\">\u0645\u0631\u062d\u0644\u06c1 3: \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/h3>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u06cc \u0634\u062f\u062a \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0627 \u0645\u0648\u0688 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06cc \u06c1\u06d2 \u06cc\u0627 \u0635\u0631\u0641 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u067e\u0631\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812457_44_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0698\u0646 \u0633\u06cc\u0679\u0646\u06af \u067e\u06cc\u0646\u0644\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-4-convert-the-pdf\">\u0645\u0631\u062d\u0644\u06c1 4: \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba <strong>\u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812457_325_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u0627\u0633\u06d2 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0628\u0679\u0646 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-5-review-the-converted-document\">\u0645\u0631\u062d\u0644\u06c1 5: \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba\u06d4<\/h3>\n<p>\u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812457_246_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0628\u0639\u062f \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-6-rename-and-download\">\u0645\u0631\u062d\u0644\u06c1 6: \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u0635\u0627\u0631\u0641 \u0622\u0624\u0679 \u067e\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0635\u0641\u062d\u06c1 \u06a9\u06cc \u06af\u0646\u062a\u06cc \u0627\u0648\u0631 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u06c1 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/08\/1786812457_783_\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-\u0628\u0631\u0627\u0624\u0632\u0631-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u067e\u06cc.png\" alt=\"\u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645\u060c \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u0641\u0627\u0626\u0644 \u0633\u0627\u0626\u0632 \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0628\u0679\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u0627\u0626\u0646\u0644 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0633\u06cc\u06a9\u0634\u0646\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-performance-tips\">\u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06cc \u062a\u062c\u0627\u0648\u06cc\u0632<\/h2>\n<p>\u0628\u0691\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0642\u062a \u062f\u0631\u06a9\u0627\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u0627\u0648\u0631 \u06a9\u0646\u0648\u0631\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0635\u0631\u0641 \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0628\u06c1\u062a\u0631 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">for (let page = startPage; page <= endPage; page++) {\n    await processPage(page);\n}\n<\/code><\/pre>\n<p>\u0641\u0627\u0626\u0644\u06cc\u06ba \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u062a \u0639\u0627\u0631\u0636\u06cc \u0648\u0633\u0627\u0626\u0644\u06d4<\/p>\n<pre><code class=\"language-javascript\">URL.revokeObjectURL(downloadUrl);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0622\u0633\u0627\u0646 \u0627\u0635\u0644\u0627\u062d\u06cc\u06ba \u0628\u0691\u06d2\u060c \u06a9\u062b\u06cc\u0631 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 PDF \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 \u06a9\u0646\u0648\u0631\u0679\u0631 \u06a9\u0648 \u062c\u0648\u0627\u0628\u062f\u06c1 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-common-mistakes\">\u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0627\u06ba<\/h2>\n<p>\u0627\u06cc\u06a9 \u0639\u0627\u0645 \u063a\u0644\u0637\u06cc \u0627\u0635\u0644 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u0628\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u0635\u0644 PDF \u0635\u0641\u062d\u06c1 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">await renderPage(currentPage);\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0645\u0633\u0626\u0644\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u063a\u0644\u0637 \u0646\u0645\u0628\u0631 \u0628\u062a\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">if (pageNumber < 1 || pageNumber > pdfDocument.numPages) {\n    return;\n}\n<\/code><\/pre>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u06cc\u0627\u062f \u0631\u06a9\u06be\u06cc\u06ba \u06a9\u06c1 \u0627\u0639\u0644\u06cc\u0670 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648\u0627\u0644\u0679\u06cc \u06a9\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0628\u0691\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0646\u0627\u0633\u0628 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0622\u067e \u06a9\u0648 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u0627\u0648\u0631 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0645\u062a\u0648\u0627\u0632\u0646 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0646\u06d2 \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 \u0627\u06cc\u06a9 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0646\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0627\u067e \u0644\u0648\u0688 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u0633\u06cc\u06a9\u06be\u0627\u060c PDF.js \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u0627\u060c \u06a9\u06cc\u0646\u0648\u0633 API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0631\u0646\u06af\u06cc\u0646 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627\u060c \u0645\u0646\u062a\u062e\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u0627\u060c PDF-lib \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0646\u06cc\u0627 PDF \u0628\u0646\u0627\u0646\u0627\u060c \u062a\u06cc\u0627\u0631 \u0634\u062f\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627\u060c \u0622\u0624\u0679 \u067e\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<p>\u0686\u0648\u0646\u06a9\u06c1 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u06c1\u0645 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0633\u0631\u0648\u0631 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 PDF \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u06c1\u0645\u0627\u0631\u06d2 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0679\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0646\u0648\u0631\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u0648\u0631\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0633\u06d2\u060c \u0622\u067e \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0627\u0636\u0627\u0641\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0691\u06be\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2 \u0633\u06cc\u067e\u06cc\u0627 \u06a9\u0646\u0648\u0631\u0698\u0646\u060c \u0686\u0645\u06a9 \u0627\u0648\u0631 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u06a9\u0646\u0679\u0631\u0648\u0644\u060c \u06a9\u0633\u0679\u0645 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u0631\u0633\u06cc\u0679\u0633\u060c \u0628\u06cc\u0686 \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af\u060c \u06cc\u0627 \u0627\u0636\u0627\u0641\u06cc \u0627\u0645\u06cc\u062c \u0641\u0644\u0679\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u067e\u0648\u0631\u0679\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0628\u06c1\u062a \u0633\u06cc \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0631\u0646\u06af\u06cc\u0646 \u0686\u0627\u0631\u0679\u0633\u060c \u067e\u06cc\u0634\u06a9\u0634\u06cc\u06ba\u060c \u0645\u0627\u0631\u06a9\u06cc\u0679\u0646\u06af \u06a9\u0627 \u0645\u0648\u0627\u062f\u060c \u0627\u0633\u06a9\u06cc\u0646 \u0634\u062f\u06c1 \u0635\u0641\u062d\u0627\u062a \u06cc\u0627 \u06af\u0631\u0627\u0641\u06a9\u0633 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u067e\u0631\u0646\u0679\u0646\u06af \u06cc\u0627 \u0622\u0631\u06a9\u0627\u0626\u06cc\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0686\u06be \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba\u060c \u06a9\u0633\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u06af\u0631\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u062e\u0644\u0641\u0634\u0627\u0631 \u06a9\u0648 \u06a9\u0645 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u067e\u0631\u0646\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":27759,"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-27758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/27758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=27758"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/27758\/revisions"}],"predecessor-version":[{"id":27760,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/27758\/revisions\/27760"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/27759"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=27758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=27758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=27758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}