PDF Blob - всплывающее окно не показывает содержимое

Если они действительно управляются сбоями, вы можете использовать ILMerge . Для родных DLL-файлов вам потребуется немного больше работы.

См. также: Как можно слить dll C ++ в приложение C # exe?

34
задан Community 23 May 2017 в 12:10
поделиться

1 ответ

проблема, она не преобразовывается в соответствующий формат. Используйте функцию "printPreview (binaryPDFData)" для получения диалогового окна предварительного просмотра двоичных данных PDF. можно прокомментировать часть сценария, если Вы не хотите открытое диалоговое окно печати.

printPreview = (data, type = 'application/pdf') => {
    let blob = null;
    blob = this.b64toBlob(data, type);
    const blobURL = URL.createObjectURL(blob);
    const theWindow = window.open(blobURL);
    const theDoc = theWindow.document;
    const theScript = document.createElement('script');
    function injectThis() {
        window.print();
    }
    theScript.innerHTML = `window.onload = ${injectThis.toString()};`;
    theDoc.body.appendChild(theScript);
};

b64toBlob = (content, contentType) => {
    contentType = contentType || '';
    const sliceSize = 512;
     // method which converts base64 to binary
    const byteCharacters = window.atob(content); 

    const byteArrays = [];
    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
        const slice = byteCharacters.slice(offset, offset + sliceSize);
        const byteNumbers = new Array(slice.length);
        for (let i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
        }
        const byteArray = new Uint8Array(byteNumbers);
        byteArrays.push(byteArray);
    }
    const blob = new Blob(byteArrays, {
        type: contentType
    }); // statement which creates the blob
    return blob;
};
0
ответ дан 27 November 2019 в 04:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: