{"id":1880,"date":"2026-10-15T12:48:27","date_gmt":"2026-10-15T11:48:27","guid":{"rendered":"https:\/\/www.iksz.eu\/?page_id=1880"},"modified":"2026-10-15T12:48:27","modified_gmt":"2026-10-15T11:48:27","slug":"pdf-egyesito","status":"publish","type":"page","link":"https:\/\/www.iksz.eu\/en\/pdf-egyesito\/","title":{"rendered":"PDF egyes\u00edt\u0151"},"content":{"rendered":"    <div id=\"pdf-merger-tool\" style=\"max-width: 100%; padding: 25px; background: #fdfdfd; border: 1px solid #e2e2e2; border-radius: 8px; font-family: inherit;\">\r\n        <h3 style=\"margin-top: 0;\">PDF \u00e9s K\u00e9p Egyes\u00edt\u0151<\/h3>\r\n        \r\n        <div style=\"background: #eef8f2; border-left: 4px solid #46b450; padding: 12px 15px; margin-bottom: 20px; font-size: 0.95em;\">\r\n            <strong>\ud83d\udd12 Adatv\u00e9delmi \u00e9s Biztons\u00e1gi T\u00e1j\u00e9koztat\u00f3:<\/strong><br>\r\n            A maxim\u00e1lis adatbiztons\u00e1g \u00e9rdek\u00e9ben a f\u00e1jlok feldolgoz\u00e1sa <strong>kiz\u00e1r\u00f3lag a te b\u00f6ng\u00e9sz\u0151dben<\/strong> t\u00f6rt\u00e9nik! Semmilyen adat vagy f\u00e1jl nem ker\u00fcl felt\u00f6lt\u00e9sre a szerverre.\r\n        <\/div>\r\n\r\n        <div style=\"background: #fff8e5; border-left: 4px solid #ffb900; padding: 12px 15px; margin-bottom: 20px; font-size: 0.95em;\">\r\n            <strong>\u2139\ufe0f Fontos a helyes sorrendhez:<\/strong><br>\r\n            K\u00e9rlek, figyelj arra, hogy a f\u00e1jlok nevei \u00e1b\u00e9c\u00e9 vagy sz\u00e1m szerinti sorrendben legyenek (pl. <em>01_oldal.jpg, 02_oldal.jpg, 03_oldal.pdf<\/em>), mivel az egyes\u00edt\u00e9s a f\u00e1jlnevek alapj\u00e1n t\u00f6rt\u00e9nik!\r\n        <\/div>\r\n\r\n        <div style=\"margin-bottom: 20px;\">\r\n            <label for=\"pm-files\" style=\"display: block; margin-bottom: 8px; font-weight: bold;\">V\u00e1laszd ki a PDF f\u00e1jlokat vagy k\u00e9peket (JPG, PNG):<\/label>\r\n            <!-- Csak biztons\u00e1gos f\u00e1jlt\u00edpusok enged\u00e9lyez\u00e9se az inputban -->\r\n            <input type=\"file\" id=\"pm-files\" multiple accept=\"application\/pdf, image\/jpeg, image\/png\" style=\"display: block; width: 100%; padding: 10px; border: 1px solid #ccc; background: #fff; cursor: pointer;\">\r\n        <\/div>\r\n\r\n        <button id=\"pm-merge-btn\" style=\"background: #222; color: #fff; padding: 12px 24px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; font-weight: bold; transition: background 0.3s;\">\r\n            F\u00e1jlok Egyes\u00edt\u00e9se \u00e9s Let\u00f6lt\u00e9s\r\n        <\/button>\r\n\r\n        <div id=\"pm-status\" style=\"margin-top: 20px; font-weight: bold; font-size: 1.1em;\"><\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        const fileInput = document.getElementById('pm-files');\r\n        const mergeBtn = document.getElementById('pm-merge-btn');\r\n        const statusDiv = document.getElementById('pm-status');\r\n\r\n        mergeBtn.addEventListener('click', async () => {\r\n            const files = Array.from(fileInput.files);\r\n            \r\n            if (files.length === 0) {\r\n                statusDiv.innerText = '\u274c K\u00e9rlek, v\u00e1lassz ki legal\u00e1bb egy f\u00e1jlt!';\r\n                statusDiv.style.color = '#d63638';\r\n                return;\r\n            }\r\n\r\n            \/\/ F\u00e1jlok sorba rendez\u00e9se n\u00e9v alapj\u00e1n az oldalsz\u00e1mok megfelel\u0151 sorrendje miatt\r\n            files.sort((a, b) => a.name.localeCompare(b.name, undefined, {numeric: true, sensitivity: 'base'}));\r\n\r\n            statusDiv.innerText = '\u23f3 Feldolgoz\u00e1s folyamatban a b\u00f6ng\u00e9sz\u0151dben, k\u00e9rlek v\u00e1rj...';\r\n            statusDiv.style.color = '#2271b1';\r\n            mergeBtn.disabled = true;\r\n            mergeBtn.style.opacity = '0.7';\r\n\r\n            try {\r\n                \/\/ Ellen\u0151rizz\u00fck, hogy a pdf-lib bet\u00f6lt\u00f6tt-e\r\n                if (typeof PDFLib === 'undefined') {\r\n                    throw new Error('A PDF k\u00f6nyvt\u00e1r m\u00e9g nem t\u00f6lt\u0151d\u00f6tt be. K\u00e9rlek, friss\u00edtsd az oldalt.');\r\n                }\r\n\r\n                const { PDFDocument } = PDFLib;\r\n                const mergedPdf = await PDFDocument.create();\r\n\r\n                for (const file of files) {\r\n                    const arrayBuffer = await file.arrayBuffer();\r\n\r\n                    \/\/ Szigor\u00fa kliensoldali MIME t\u00edpus ellen\u0151rz\u00e9s a k\u00e1rt\u00e9kony f\u00e1jlok kiz\u00e1r\u00e1s\u00e1ra\r\n                    if (file.type === 'application\/pdf') {\r\n                        const pdf = await PDFDocument.load(arrayBuffer);\r\n                        const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\r\n                        copiedPages.forEach((page) => mergedPdf.addPage(page));\r\n                    } \r\n                    else if (file.type === 'image\/jpeg' || file.type === 'image\/png') {\r\n                        let image;\r\n                        if (file.type === 'image\/jpeg') {\r\n                            image = await mergedPdf.embedJpg(arrayBuffer);\r\n                        } else {\r\n                            image = await mergedPdf.embedPng(arrayBuffer);\r\n                        }\r\n                        \r\n                        \/\/ K\u00e9p m\u00e9reteinek lek\u00e9r\u00e9se \u00e9s hozz\u00e1ad\u00e1sa \u00faj oldalk\u00e9nt\r\n                        const dims = image.scale(1);\r\n                        const page = mergedPdf.addPage([dims.width, dims.height]);\r\n                        page.drawImage(image, {\r\n                            x: 0,\r\n                            y: 0,\r\n                            width: dims.width,\r\n                            height: dims.height,\r\n                        });\r\n                    } else {\r\n                        console.warn(`Nem t\u00e1mogatott vagy gyan\u00fas f\u00e1jlt\u00edpus kihagyva: ${file.name}`);\r\n                    }\r\n                }\r\n\r\n                \/\/ V\u00e9gs\u0151 PDF gener\u00e1l\u00e1sa mem\u00f3ri\u00e1ban\r\n                const mergedPdfBytes = await mergedPdf.save();\r\n                \r\n                \/\/ Blob l\u00e9trehoz\u00e1sa \u00e9s let\u00f6lt\u00e9s ind\u00edt\u00e1sa a b\u00f6ng\u00e9sz\u0151b\u0151l\r\n                const blob = new Blob([mergedPdfBytes], { type: 'application\/pdf' });\r\n                const url = URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'Egyesitett_Dokumentum_' + Date.now() + '.pdf';\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                URL.revokeObjectURL(url);\r\n\r\n                statusDiv.innerText = '\u2705 Sikeres egyes\u00edt\u00e9s! A let\u00f6lt\u00e9s elindult.';\r\n                statusDiv.style.color = '#46b450';\r\n\r\n            } catch (error) {\r\n                console.error(error);\r\n                statusDiv.innerText = '\u274c Hiba t\u00f6rt\u00e9nt a feldolgoz\u00e1s sor\u00e1n. Lehet, hogy titkos\u00edtott vagy s\u00e9r\u00fclt az egyik PDF f\u00e1jl.';\r\n                statusDiv.style.color = '#d63638';\r\n            } finally {\r\n                mergeBtn.disabled = false;\r\n                mergeBtn.style.opacity = '1';\r\n            }\r\n        });\r\n    });\r\n    <\/script>\r\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1880","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet<\/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.iksz.eu\/en\/pdf-egyesito\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iksz.eu\/en\/pdf-egyesito\/\" \/>\n<meta property=\"og:site_name\" content=\"Info Kommunik\u00e1ci\u00f3s Szakszervezet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/pdf-egyesito\\\/\",\"url\":\"https:\\\/\\\/www.iksz.eu\\\/pdf-egyesito\\\/\",\"name\":\"PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#website\"},\"datePublished\":\"2026-10-15T11:48:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/pdf-egyesito\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iksz.eu\\\/pdf-egyesito\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/pdf-egyesito\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kezd\u0151lap\",\"item\":\"https:\\\/\\\/www.iksz.eu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PDF egyes\u00edt\u0151\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#website\",\"url\":\"https:\\\/\\\/www.iksz.eu\\\/\",\"name\":\"Info Kommunik\u00e1ci\u00f3s Szakszervezet \\\/ IKSZ\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iksz.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#organization\",\"name\":\"Info Kommunik\u00e1ci\u00f3s Szakszervezet \\\/ IKSZ\",\"url\":\"https:\\\/\\\/www.iksz.eu\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.iksz.eu\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/cropped-ginop_iksz.png\",\"contentUrl\":\"https:\\\/\\\/www.iksz.eu\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/cropped-ginop_iksz.png\",\"width\":1125,\"height\":250,\"caption\":\"Info Kommunik\u00e1ci\u00f3s Szakszervezet \\\/ IKSZ\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iksz.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet","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.iksz.eu\/en\/pdf-egyesito\/","og_locale":"en_GB","og_type":"article","og_title":"PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet","og_url":"https:\/\/www.iksz.eu\/en\/pdf-egyesito\/","og_site_name":"Info Kommunik\u00e1ci\u00f3s Szakszervezet","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.iksz.eu\/pdf-egyesito\/","url":"https:\/\/www.iksz.eu\/pdf-egyesito\/","name":"PDF egyes\u00edt\u0151 - Info Kommunik\u00e1ci\u00f3s Szakszervezet","isPartOf":{"@id":"https:\/\/www.iksz.eu\/#website"},"datePublished":"2026-10-15T11:48:27+00:00","breadcrumb":{"@id":"https:\/\/www.iksz.eu\/pdf-egyesito\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iksz.eu\/pdf-egyesito\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.iksz.eu\/pdf-egyesito\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kezd\u0151lap","item":"https:\/\/www.iksz.eu\/"},{"@type":"ListItem","position":2,"name":"PDF egyes\u00edt\u0151"}]},{"@type":"WebSite","@id":"https:\/\/www.iksz.eu\/#website","url":"https:\/\/www.iksz.eu\/","name":"Info Communication Trade Union \/ ICFTU","description":"","publisher":{"@id":"https:\/\/www.iksz.eu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iksz.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.iksz.eu\/#organization","name":"Info Communication Trade Union \/ ICFTU","url":"https:\/\/www.iksz.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.iksz.eu\/#\/schema\/logo\/image\/","url":"https:\/\/www.iksz.eu\/wp-content\/uploads\/2025\/01\/cropped-ginop_iksz.png","contentUrl":"https:\/\/www.iksz.eu\/wp-content\/uploads\/2025\/01\/cropped-ginop_iksz.png","width":1125,"height":250,"caption":"Info Kommunik\u00e1ci\u00f3s Szakszervezet \/ IKSZ"},"image":{"@id":"https:\/\/www.iksz.eu\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/pages\/1880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/comments?post=1880"}],"version-history":[{"count":1,"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/pages\/1880\/revisions"}],"predecessor-version":[{"id":1881,"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/pages\/1880\/revisions\/1881"}],"wp:attachment":[{"href":"https:\/\/www.iksz.eu\/en\/wp-json\/wp\/v2\/media?parent=1880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}