Я использую библиотеку Evo PDF в приложении C#, и я делаю это:
var bytes = PDFUtility.FromHTML(html);
Эти байты записываются в браузер как , как описано здесь :
const totalBlob = new Blob([d], { type: 'application/pdf' });
const url = window.URL.createObjectURL(totalBlob);
const anchor = document.createElement('a');
anchor.href = url;
anchor.download = 'document.pdf';
anchor.click();
anchor.textContent = ''
document.body.appendChild(anchor);
document.src = url;
Однако, когда я go открываю созданный PDF-файл, я замечаю, что это всего лишь пять пустых страниц. Кроме того, размер PDF-файла в байтах больше, чем длина массива байтов. Что здесь может происходить? Почему я получаю PDF-файл большего размера, чем был сгенерирован библиотекой, и почему он пустой?
Я пробовал это с фактическим HTML, который я хочу отобразить, и я попробовал это с чем-то таким простым, как
<h1>Hello world!</h1>
В любом случае, я получаю PDF-файл большего размера, чем ожидалось, и полностью пустой.
редактировать: мне пришла в голову мысль, может быть проблема в том, что я загружаю PDF-байтов в строковую переменную d
перед созданием большого двоичного объекта? Может быть, что-то не так с кодировкой Unicode необработанных байтов?
edit: если я сделаю alert(d.Length); alert(totalBlob.size);
, я получу ожидаемое количество байтов для первого предупреждения, но большее число для второго - почему это? Может ли это повредить данные PDF?