{"id":19,"date":"2026-09-16T20:49:29","date_gmt":"2026-09-16T20:49:29","guid":{"rendered":"https:\/\/filejp.in\/?page_id=19"},"modified":"2026-09-16T22:06:38","modified_gmt":"2026-09-16T22:06:38","slug":"pdf-compressor","status":"publish","type":"page","link":"https:\/\/filejp.in\/index.php\/pdf-compressor\/","title":{"rendered":"PDF Compressor"},"content":{"rendered":"<!--themify_builder_content-->\n<div id=\"themify_builder_content-19\" data-postid=\"19\" class=\"themify_builder_content themify_builder_content-19 themify_builder tf_clear\">\n                    <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_6qpd169 tb_first tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_nd4l169 first\">\n                    <!-- module text -->\n<div  class=\"module module-text tb_ap07725   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p>Compress PDF Online &#8211; Free Image Compressor | File JP<\/p>    <\/div>\n<\/div>\n<!-- \/module text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_yc04130 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_cgl0131 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_fm35835 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n    <!-- Load PDF.js & jsPDF Libraries -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/2.16.105\/pdf.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n\n<div style=\"max-width: 480px; margin: 30px auto; padding: 25px; border: 1px solid #e0e0e0; border-radius: 12px; text-align: center; font-family: Arial, sans-serif; box-shadow: 0 4px 10px rgba(0,0,0,0.05); background-color: #ffffff;\">\n\n    <h2 style=\"margin-top: 0; color: #333333; font-size: 22px;\">PDF Compressor<\/h2>\n    <p style=\"color: #666666; font-size: 14px; margin-bottom: 20px;\">Apni PDF file select karein aur quality meter se file size reduce karein.<\/p>\n    \n    <!-- File Input -->\n    <input type=\"file\" id=\"pdfCompressorInput\" accept=\"application\/pdf\" style=\"display: none;\" onchange=\"loadPdfForCompression(this)\">\n    <label for=\"pdfCompressorInput\" style=\"background-color: #2271b1; color: #ffffff; padding: 12px 20px; border-radius: 6px; cursor: pointer; display: inline-block; font-weight: bold; font-size: 14px;\">Select PDF File<\/label>\n    \n    <!-- Hidden Canvas -->\n    <canvas id=\"pdfCompressorCanvas\" style=\"display:none;\"><\/canvas>\n\n    <!-- Controls & Output Section -->\n    <div id=\"pdfCompressorControls\" style=\"margin-top: 25px; display: none; border-top: 1px solid #eee; padding-top: 20px;\">\n        \n        <!-- Quality Slider (1% to 90%) -->\n        <div style=\"margin-bottom: 20px;\">\n            <label style=\"font-weight: bold; font-size: 14px; color: #444;\">Compression Quality: <span id=\"pdfQualityVal\" style=\"color: #d63638;\">30%<\/span><\/label><br>\n            <input type=\"range\" id=\"pdfQualityRange\" min=\"1\" max=\"90\" value=\"30\" style=\"width: 85%; margin-top: 10px;\" onchange=\"compressPdfProcess()\">\n        <\/div>\n\n        <p style=\"font-size: 14px; color: #333; font-weight: bold; margin-bottom: 20px;\">\n            Estimated Size: <span id=\"pdfCompressedSizeText\" style=\"color: #46b450;\">Calculating&#8230;<\/span>\n        <\/p>\n        \n        <!-- Download PDF Button -->\n        <button id=\"downloadCompressedPdfBtn\" onclick=\"downloadCompressedPdf()\" style=\"background-color: #e2401c; color: #ffffff; border: none; padding: 12px 25px; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 15px; box-shadow: 0 3px 6px rgba(0,0,0,0.1);\">\ud83d\udcc4 Download Compressed PDF<\/button>\n    <\/div>\n\n<\/div>\n\n<script>\npdfjsLib.GlobalWorkerOptions.workerSrc = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/2.16.105\/pdf.worker.min.js';\n\nvar currentPdfDoc = null;\nvar pdfFileName = \"compressed-document.pdf\";\nvar finalCompressedPdfDoc = null;\n\nfunction loadPdfForCompression(input) {\n    if (!input.files || !input.files[0]) return;\n\n    var file = input.files[0];\n    pdfFileName = (file.name.substring(0, file.name.lastIndexOf('.')) || 'compressed') + '-compressed.pdf';\n\n    var fileReader = new FileReader();\n    fileReader.onload = function() {\n        var typedarray = new Uint8Array(this.result);\n        pdfjsLib.getDocument(typedarray).promise.then(function(pdf) {\n            currentPdfDoc = pdf;\n            document.getElementById('pdfCompressorControls').style.display = 'block';\n            compressPdfProcess();\n        });\n    };\n    fileReader.readAsArrayBuffer(file);\n}\n\nfunction compressPdfProcess() {\n    if (!currentPdfDoc) return;\n\n    var qualityPercent = parseFloat(document.getElementById('pdfQualityRange').value);\n    document.getElementById('pdfQualityVal').innerText = qualityPercent + '%';\n    \n    var quality = qualityPercent \/ 100;\n    var scale = qualityPercent <= 20 ? 0.8 : 1.2; \/\/ Scale down dimensions for low percentages\n\n    const { jsPDF } = window.jspdf;\n    var newPdfDoc = null;\n\n    var totalPages = currentPdfDoc.numPages;\n    var pagePromises = [];\n\n    for (var i = 1; i <= totalPages; i++) {\n        pagePromises.push(currentPdfDoc.getPage(i));\n    }\n\n    Promise.all(pagePromises).then(function(pages) {\n        var processPage = function(index) {\n            if (index >= pages.length) {\n                finalCompressedPdfDoc = newPdfDoc;\n                \n                \/\/ Estimate size\n                var pdfOutput = newPdfDoc.output('arraybuffer');\n                var sizeInKb = (pdfOutput.byteLength \/ 1024).toFixed(2);\n                document.getElementById('pdfCompressedSizeText').innerText = sizeInKb + ' KB';\n                return;\n            }\n\n            var page = pages[index];\n            var viewport = page.getViewport({ scale: scale });\n\n            var canvas = document.getElementById('pdfCompressorCanvas');\n            var ctx = canvas.getContext('2d');\n            canvas.height = viewport.height;\n            canvas.width = viewport.width;\n\n            var renderContext = { canvasContext: ctx, viewport: viewport };\n            page.render(renderContext).promise.then(function() {\n                var imgData = canvas.toDataURL('image\/jpeg', quality);\n\n                if (index === 0) {\n                    var orientation = viewport.width > viewport.height ? 'l' : 'p';\n                    newPdfDoc = new jsPDF(orientation, 'px', [viewport.width, viewport.height]);\n                } else {\n                    var orientation = viewport.width > viewport.height ? 'l' : 'p';\n                    newPdfDoc.addPage([viewport.width, viewport.height], orientation);\n                }\n\n                newPdfDoc.addImage(imgData, 'JPEG', 0, 0, viewport.width, viewport.height);\n                processPage(index + 1);\n            });\n        };\n\n        processPage(0);\n    });\n}\n\nfunction downloadCompressedPdf() {\n    if (finalCompressedPdfDoc) {\n        finalCompressedPdfDoc.save(pdfFileName);\n    } else {\n        alert(\"Compression processing ho rahi hai, kripya 2 second wait karein.\");\n    }\n}\n<\/script>    <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_08q3832 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_i27x832 first\">\n                    <!-- module text -->\n<div  class=\"module module-text tb_k7fb324   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p>Compress PDF\u00a0 online while reducing file size. Free and easy image compression tool.<\/p>    <\/div>\n<\/div>\n<!-- \/module text -->        <\/div>\n                        <\/div>\n        <\/div>\n        <\/div>\n<!--\/themify_builder_content-->","protected":false},"excerpt":{"rendered":"<p>Compress PDF Online &#8211; Free Image Compressor | File JP PDF Compressor Apni PDF file select karein aur quality meter [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","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":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":5,"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":93,"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/pages\/19\/revisions\/93"}],"wp:attachment":[{"href":"https:\/\/filejp.in\/index.php\/wp-json\/wp\/v2\/media?parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}