{"id":632,"date":"2025-12-03T09:06:47","date_gmt":"2025-12-03T05:06:47","guid":{"rendered":"https:\/\/www.arparun.re\/?page_id=632"},"modified":"2026-01-27T11:13:56","modified_gmt":"2026-01-27T07:13:56","slug":"pdf2jpg","status":"publish","type":"page","link":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/","title":{"rendered":"pdf2jpg"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Convertisseur PDF vers JPG<\/title>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js\"><\/script>\n\n<\/head>\n<body>\n    <div class=\"container\">\n        <h1>\ud83d\udcc4 Convertisseur PDF \u2192 JPG<\/h1>\n        \n        <div class=\"upload-area\" id=\"uploadArea\">\n            <div class=\"upload-icon\">\ud83d\udcc1<\/div>\n            <h3>Glissez-d\u00e9posez votre PDF ici<\/h3>\n            <p>ou<\/p>\n            <button class=\"btn\" onclick=\"document.getElementById('fileInput').click()\">\n                S\u00e9lectionner un fichier\n            <\/button>\n            <input type=\"file\" id=\"fileInput\" accept=\"application\/pdf\">\n        <\/div>\n\n        <div class=\"progress-bar\" id=\"progressBar\">\n            <div class=\"progress-fill\" id=\"progressFill\">0%<\/div>\n        <\/div>\n\n        <div class=\"status\" id=\"status\"><\/div>\n\n        <div class=\"preview-area\" id=\"previewArea\">\n            <h3>Images g\u00e9n\u00e9r\u00e9es:<\/h3>\n            <button class=\"btn\" id=\"downloadAllBtn\">T\u00e9l\u00e9charger tout (ZIP)<\/button>\n            <div class=\"preview-grid\" id=\"previewGrid\"><\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        pdfjsLib.GlobalWorkerOptions.workerSrc = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';\n\n        const uploadArea = document.getElementById('uploadArea');\n        const fileInput = document.getElementById('fileInput');\n        const progressBar = document.getElementById('progressBar');\n        const progressFill = document.getElementById('progressFill');\n        const status = document.getElementById('status');\n        const previewArea = document.getElementById('previewArea');\n        const previewGrid = document.getElementById('previewGrid');\n        const downloadAllBtn = document.getElementById('downloadAllBtn');\n\n        let convertedImages = [];\n\n        \/\/ Drag and drop\n        uploadArea.addEventListener('dragover', (e) => {\n            e.preventDefault();\n            uploadArea.classList.add('dragover');\n        });\n\n        uploadArea.addEventListener('dragleave', () => {\n            uploadArea.classList.remove('dragover');\n        });\n\n        uploadArea.addEventListener('drop', (e) => {\n            e.preventDefault();\n            uploadArea.classList.remove('dragover');\n            const file = e.dataTransfer.files[0];\n            if (file && file.type === 'application\/pdf') {\n                handleFile(file);\n            }\n        });\n\n        fileInput.addEventListener('change', (e) => {\n            const file = e.target.files[0];\n            if (file) {\n                handleFile(file);\n            }\n        });\n\n        async function handleFile(file) {\n            convertedImages = [];\n            previewGrid.innerHTML = '';\n            previewArea.style.display = 'none';\n            progressBar.style.display = 'block';\n            status.textContent = 'Chargement du PDF...';\n\n            const arrayBuffer = await file.arrayBuffer();\n            const pdf = await pdfjsLib.getDocument(arrayBuffer).promise;\n            const numPages = pdf.numPages;\n\n            status.textContent = `Conversion de ${numPages} page(s)...`;\n\n            for (let i = 1; i <= numPages; i++) {\n                const page = await pdf.getPage(i);\n                const viewport = page.getViewport({ scale: 2 });\n                \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({\n                    canvasContext: context,\n                    viewport: viewport\n                }).promise;\n\n                const imgDataUrl = canvas.toDataURL('image\/jpeg', 0.95);\n                convertedImages.push({\n                    dataUrl: imgDataUrl,\n                    pageNum: i\n                });\n\n                const progress = Math.round((i \/ numPages) * 100);\n                progressFill.style.width = progress + '%';\n                progressFill.textContent = progress + '%';\n\n                displayPreview(imgDataUrl, i);\n            }\n\n            progressBar.style.display = 'none';\n            status.textContent = `\u2713 ${numPages} page(s) converties avec succ\u00e8s!`;\n            previewArea.style.display = 'block';\n        }\n\n        function displayPreview(dataUrl, pageNum) {\n            const item = document.createElement('div');\n            item.className = 'preview-item';\n            \n            const img = document.createElement('img');\n            img.src = dataUrl;\n            \n            const label = document.createElement('div');\n            label.className = 'page-label';\n            label.textContent = `Page ${pageNum}`;\n            \n            const downloadBtn = document.createElement('button');\n            downloadBtn.className = 'download-btn';\n            downloadBtn.textContent = '\u2b07 T\u00e9l\u00e9charger';\n            downloadBtn.onclick = () => downloadImage(dataUrl, pageNum);\n            \n            item.appendChild(img);\n            item.appendChild(label);\n            item.appendChild(downloadBtn);\n            previewGrid.appendChild(item);\n        }\n\n        function downloadImage(dataUrl, pageNum) {\n            \/\/ Convertir le dataUrl en blob pour un t\u00e9l\u00e9chargement fiable\n            fetch(dataUrl)\n                .then(res => res.blob())\n                .then(blob => {\n                    const url = window.URL.createObjectURL(blob);\n                    const link = document.createElement('a');\n                    link.href = url;\n                    link.download = `page_${pageNum}.jpg`;\n                    document.body.appendChild(link);\n                    link.click();\n                    document.body.removeChild(link);\n                    window.URL.revokeObjectURL(url);\n                });\n        }\n\n        downloadAllBtn.addEventListener('click', () => {\n            convertedImages.forEach((img, index) => {\n                setTimeout(() => {\n                    downloadImage(img.dataUrl, img.pageNum);\n                }, index * 200);\n            });\n        });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Si l&rsquo;application vous \u00e0 \u00e9t\u00e9 utile, Offrer moi une bierre !! C&rsquo;est sympa et \u00e7a m&rsquo;aide \u00e0 maintenir les serveurs ! \ud83d\ude00<\/p>\n\n\n\n<div style=\"display: flex; justify-content: center; align-items: center;\">\n\n\n<script async\n  src=\"https:\/\/js.stripe.com\/v3\/buy-button.js\">\n<\/script>\n\n<stripe-buy-button\n  buy-button-id=\"buy_btn_1RXGoOAOEp7xPNKdvvgCbt2V\"\n  publishable-key=\"pk_live_51QQXMmAOEp7xPNKdUhcTaBFsUvieXz97t7VbgmEfSC8LzRxoqqoJOM4rrwpFnVsRETCnWpXBED5oqyqCCti50YC600OrlOgLNg\"\n>\n<\/stripe-buy-button>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Convertisseur PDF vers JPG \ud83d\udcc4 Convertisseur PDF \u2192 JPG \ud83d\udcc1 Glissez-d\u00e9posez votre PDF ici ou S\u00e9lectionner un fichier 0% Images g\u00e9n\u00e9r\u00e9es: T\u00e9l\u00e9charger tout (ZIP) Si l&rsquo;application vous \u00e0 \u00e9t\u00e9 utile, Offrer moi une bierre !! C&rsquo;est sympa et \u00e7a m&rsquo;aide \u00e0 maintenir les serveurs ! \ud83d\ude00<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-632","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>pdf2jpg - arparun - Informatique Reunion<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"pdf2jpg - arparun - Informatique Reunion\" \/>\n<meta property=\"og:description\" content=\"Convertisseur PDF vers JPG \ud83d\udcc4 Convertisseur PDF \u2192 JPG \ud83d\udcc1 Glissez-d\u00e9posez votre PDF ici ou S\u00e9lectionner un fichier 0% Images g\u00e9n\u00e9r\u00e9es: T\u00e9l\u00e9charger tout (ZIP) Si l&rsquo;application vous \u00e0 \u00e9t\u00e9 utile, Offrer moi une bierre !! C&rsquo;est sympa et \u00e7a m&rsquo;aide \u00e0 maintenir les serveurs ! \ud83d\ude00\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/\" \/>\n<meta property=\"og:site_name\" content=\"arparun - Informatique Reunion\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-27T07:13:56+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/\",\"url\":\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/\",\"name\":\"pdf2jpg - arparun - Informatique Reunion\",\"isPartOf\":{\"@id\":\"https:\/\/www.arparun.re\/#website\"},\"datePublished\":\"2025-12-03T05:06:47+00:00\",\"dateModified\":\"2026-01-27T07:13:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.arparun.re\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"pdf2jpg\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.arparun.re\/#website\",\"url\":\"https:\/\/www.arparun.re\/\",\"name\":\"arparun - Informatique Reunion\",\"description\":\"Syst\u00e8mes, R\u00e9seaux et S\u00e9curit\u00e9\",\"publisher\":{\"@id\":\"https:\/\/www.arparun.re\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.arparun.re\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.arparun.re\/#organization\",\"name\":\"Arparun\",\"url\":\"https:\/\/www.arparun.re\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.arparun.re\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.arparun.re\/wp-content\/uploads\/2021\/02\/cropped-site.png\",\"contentUrl\":\"https:\/\/www.arparun.re\/wp-content\/uploads\/2021\/02\/cropped-site.png\",\"width\":512,\"height\":512,\"caption\":\"Arparun\"},\"image\":{\"@id\":\"https:\/\/www.arparun.re\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"pdf2jpg - arparun - Informatique Reunion","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/","og_locale":"fr_FR","og_type":"article","og_title":"pdf2jpg - arparun - Informatique Reunion","og_description":"Convertisseur PDF vers JPG \ud83d\udcc4 Convertisseur PDF \u2192 JPG \ud83d\udcc1 Glissez-d\u00e9posez votre PDF ici ou S\u00e9lectionner un fichier 0% Images g\u00e9n\u00e9r\u00e9es: T\u00e9l\u00e9charger tout (ZIP) Si l&rsquo;application vous \u00e0 \u00e9t\u00e9 utile, Offrer moi une bierre !! C&rsquo;est sympa et \u00e7a m&rsquo;aide \u00e0 maintenir les serveurs ! \ud83d\ude00","og_url":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/","og_site_name":"arparun - Informatique Reunion","article_modified_time":"2026-01-27T07:13:56+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/","url":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/","name":"pdf2jpg - arparun - Informatique Reunion","isPartOf":{"@id":"https:\/\/www.arparun.re\/#website"},"datePublished":"2025-12-03T05:06:47+00:00","dateModified":"2026-01-27T07:13:56+00:00","breadcrumb":{"@id":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.arparun.re\/index.php\/pdf2jpg\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.arparun.re\/index.php\/pdf2jpg\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.arparun.re\/"},{"@type":"ListItem","position":2,"name":"pdf2jpg"}]},{"@type":"WebSite","@id":"https:\/\/www.arparun.re\/#website","url":"https:\/\/www.arparun.re\/","name":"arparun - Informatique Reunion","description":"Syst\u00e8mes, R\u00e9seaux et S\u00e9curit\u00e9","publisher":{"@id":"https:\/\/www.arparun.re\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.arparun.re\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.arparun.re\/#organization","name":"Arparun","url":"https:\/\/www.arparun.re\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.arparun.re\/#\/schema\/logo\/image\/","url":"https:\/\/www.arparun.re\/wp-content\/uploads\/2021\/02\/cropped-site.png","contentUrl":"https:\/\/www.arparun.re\/wp-content\/uploads\/2021\/02\/cropped-site.png","width":512,"height":512,"caption":"Arparun"},"image":{"@id":"https:\/\/www.arparun.re\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/pages\/632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/comments?post=632"}],"version-history":[{"count":4,"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/pages\/632\/revisions"}],"predecessor-version":[{"id":661,"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/pages\/632\/revisions\/661"}],"wp:attachment":[{"href":"https:\/\/www.arparun.re\/index.php\/wp-json\/wp\/v2\/media?parent=632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}