{"id":2945,"date":"2025-09-05T15:13:51","date_gmt":"2025-09-05T15:13:51","guid":{"rendered":"https:\/\/garyhengeveld.com\/wordpress\/?p=2945"},"modified":"2026-03-05T15:23:52","modified_gmt":"2026-03-05T15:23:52","slug":"pdf-image-extractor","status":"publish","type":"post","link":"https:\/\/garyhengeveld.com\/wordpress\/pdf-image-extractor\/","title":{"rendered":"PDF Image Extractor"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Simply Choose a pdf from your computer and this page will extract all the images<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>PDF Image Extractor<\/title>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.4.120\/pdf.min.js\"><\/script>\n <style>\n    body {\n      font-family: sans-serif;\n      background: #fff;\n      color: #000;\n      padding: 20px;\n    }\n    h1 {\n      color: #003366;\n      border-bottom: 2px solid #003366;\n      padding-bottom: 5px;\n    }\n    h2 {\n      color: #0055aa;\n      margin-top: 30px;\n    }\n    input, select {\n      margin: 5px;\n      padding: 5px;\n      width: 120px;\n      border: 1px solid #ccc;\n      border-radius: 4px;\n    }\n    button {\n      margin: 10px;\n      padding: 6px 12px;\n      background-color: #0055aa;\n      color: #fff;\n      border: none;\n      border-radius: 4px;\n      cursor: pointer;\n    }\n    button:hover {\n      background-color: #003366;\n    }\n    .calc {\n      margin-bottom: 30px;\n      border-bottom: 1px solid #ccc;\n      padding-bottom: 20px;\n    }\n    label {\n      display: inline-block;\n      width: 220px;\n    }\n    .result {\n      margin-top: 10px;\n      color: #aa0000;\n      font-weight: bold;\n    }\n #output img { max-width: 200px; margin: 10px; border: 1px solid #ccc; }\n  <\/style>\n<\/head>\n<body>\n  <h1>Extract Images from PDF<\/h1>\n  <input type=\"file\" id=\"pdfFile\" accept=\"application\/pdf\" \/>\n  <div id=\"output\"><\/div>\n\n  <script>\n    const fileInput = document.getElementById('pdfFile');\n    const output = document.getElementById('output');\n\n    fileInput.addEventListener('change', async (e) => {\n      const file = e.target.files[0];\n      if (!file) return;\n\n      const arrayBuffer = await file.arrayBuffer();\n      const pdf = await pdfjsLib.getDocument({ data: arrayBuffer }).promise;\n\n      for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {\n        const page = await pdf.getPage(pageNum);\n        const viewport = page.getViewport({ scale: 2 });\n        const canvas = document.createElement('canvas');\n        const context = canvas.getContext('2d');\n        canvas.width = viewport.width;\n        canvas.height = viewport.height;\n\n        await page.render({ canvasContext: context, viewport }).promise;\n\n        canvas.toBlob(blob => {\n          const imgURL = URL.createObjectURL(blob);\n          const img = document.createElement('img');\n          img.src = imgURL;\n          output.appendChild(img);\n\n          const link = document.createElement('a');\n          link.href = imgURL;\n          link.download = `page-${pageNum}.png`;\n          link.textContent = `Download page ${pageNum}`;\n          output.appendChild(link);\n        }, 'image\/png');\n      }\n    });\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n<div style=\"height:142px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Simply Choose a pdf from your computer and this page will extract all the images PDF Image Extractor Extract Images from PDF<\/p>\n","protected":false},"author":1,"featured_media":2951,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,106],"tags":[],"class_list":["post-2945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-software"],"_links":{"self":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2945"}],"version-history":[{"count":4,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2945\/revisions"}],"predecessor-version":[{"id":2969,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2945\/revisions\/2969"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/media\/2951"}],"wp:attachment":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}