Как сохранить PDF на сервер? css2pdf@cloudformatter xeponline

Мне было интересно, если кто-нибудь знает способ сохранить полученный PDF-документ на сервер, вместо того, чтобы предложить пользователю загрузить его локально?

Используя это: http://www.cloudformatter.com/CSS2Pdf

Большое спасибо

Изменить: я использую следующий JS, чтобы начать PDF.

$(function(){
    $('#generatePDF').click(function(e) {
        e.preventDefault();

        var pdfdata = xepOnline.Formatter.Format('printableInvoice',
            {
                pageWidth:'216mm',
                pageHeight:'279mm',
                render: 'base64'
            }
        );
        console.log(pdfdata);
    });
});

1 ответ

Оставьте ответ на месте, так как комментарии ниже актуальны. Первоначальный ответ был о том, как получить информацию об источнике (используя опцию "base64"), а не об окончательном PDF.

Итак, чтобы получить окончательный PDF, который находится в памяти, если вы изучите код в Github:

https://github.com/Xportability/css-to-pdf/blob/master/js/xepOnline.jqPlugin.js

начиная с "else" в строке 602 ... это "else" выполняется, если вы форсируете что-либо, кроме загрузки. Если вы выбрали "newwin" или "embed" в качестве метода, и браузер, сниффингующий JS, не заставлял его снова загружаться (это происходит в Safari, IE, а также в мобильных браузерах), тогда это "else" выполняется.

На успешном посте AJAX выполняется функция "xepOnline.Formatter.__postBackSuccess". Эта функция начинается со строки 863. В строке 865 загружаются закодированные в base64 байты фактического PDF. Если вы отлаживаете свой сайт и отлаживаете в этой строке кода, вы можете получить значение переменной "base64", которая будет байтами в кодировке base64.

Таким образом, если бы у вас были только Firefox и Chrome, то вы могли бы внести некоторые изменения в код, чтобы отправить результат обратно на сервер и не отображать его. Если у вас есть все эти браузеры для рассмотрения, вам нужно будет добавить некоторую опцию (например, скажем, опцию: "память", которая пропускает весь анализ браузера, запускает версию AJAX, но с собственной функцией успеха).

Я могу посмотреть, как добавить это в библиотеку, но вы можете сами сделать это и сделать некоторые моды.

Другие вопросы по тегам