DevelopingMagic/pdfassembler

pdf-circus source code

Dinibewerbig opened this issue · 5 comments

Good Evening. Would it be possible to provide the source code of your site pdf-circus, so that I get better an idea on how to integrate pdfassembler into my nuxt/vue.js site.

Thank you very much for your valuable help

Thomas

such a pity there is not a simple example of "how to join pdfs" on pdfassembler :(

Why can't you upload pdf-circus source code (at least the split-join page) to github so I can get a glimpse at your code to get a better idea of how you did it?

For those who want (at least) the merge functionality:

function pdfMerge(urls, divRootId) {
    //necessário pois para manter as promisses sincronizadas com await
    (async function loop() {
        for (url_item of urls) {
            console.log("loading: " + url_item);
            var loadingTask = pdfjsLib.getDocument(url_item);
            //sem isso fica dessincronizado
            await loadingTask.promise.then(function (pdf) {
                pdf.getMetadata().then(function (metaData) {
                    console.log("pdf (" + urls + ") version: " + metaData.info.PDFFormatVersion); //versão do pdf
                }).catch(function (err) {
                    console.log('Error getting meta data');
                    console.log(err);
                });
                console.log("páginas: " + pdf.numPages);
                let i = 0;
                while (i < pdf.numPages) {
                    var pageNumber = i;
                    pdf.getPage(pageNumber).then(function (page) {
                        var div = document.createElement("div");
                        var documentosDiv = document.querySelector('#' + divRootId);
                        documentosDiv.appendChild(div);
                        var canvas = document.createElement("canvas");
                        div.appendChild(canvas);
                        // Prepare canvas using PDF page dimensions
                        var viewport = page.getViewport({scale: 1, });
                        //var canvas = document.getElementById('the-canvas');
                        var context = canvas.getContext('2d');
                        canvas.height = viewport.height;
                        canvas.width = viewport.width;
                        // Render PDF page into canvas context
                        var renderContext = {
                            canvasContext: context,
                            viewport: viewport
                        };
                        var renderTask = page.render(renderContext);
                        renderTask.promise.then(function () {
                            console.log('Page rendered');
                        });
                    });
                    i++;
                }
                // Fetch the first page
            }, function (reason) {
                // PDF loading error
                console.error(reason);
            });
        }
    })();
}

Thank you! Very kind. God bless you!
Muito Brigado!

You are welcome @Dinibewerbig !
Do not forget to include pdfjs-dist (.js and .maps) in your project ! It works smooth even without NodeJS !