В веб-разработке может возникнуть необходимость преобразовать строку в кодировке Base64 в файл PDF. Независимо от того, работаете ли вы над функцией загрузки файлов или имеете дело с манипулированием данными, возможность конвертировать Base64 в файл PDF является ценным навыком. В этой статье мы рассмотрим несколько методов JavaScript для выполнения этой задачи. Итак, приступим!
Метод 1: использование библиотеки (pdf-lib)
Если вы ищете простой и эффективный способ преобразования Base64 в PDF-файл, использование библиотеки JavaScript, такой как pdf-lib, может быть отличным выбором. Вот пример того, как этого можно добиться:
const { PDFDocument } = require('pdf-lib');
async function convertBase64ToPDF(base64String) {
const pdfBytes = Buffer.from(base64String, 'base64');
const pdfDoc = await PDFDocument.load(pdfBytes);
// Perform any required modifications to the PDF document here
const modifiedPdfBytes = await pdfDoc.save();
return modifiedPdfBytes;
}
const base64String = '...'; // Replace with your Base64-encoded string
const modifiedPdfBytes = await convertBase64ToPDF(base64String);
// Save modifiedPdfBytes to a file or perform further actions
Метод 2. Использование атрибута загрузки HTML5
Если вы работаете в среде браузера и хотите предоставить пользователю возможность загрузить преобразованный PDF-файл, вы можете использовать HTML5 downloadвместе с API Blob. Вот пример:
function convertBase64ToPDF(base64String, fileName) {
const byteCharacters = atob(base64String);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += 512) {
const slice = byteCharacters.slice(offset, offset + 512);
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: 'application/pdf' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = fileName;
link.click();
URL.revokeObjectURL(url);
}
const base64String = '...'; // Replace with your Base64-encoded string
const fileName = 'document.pdf'; // Replace with the desired file name
convertBase64ToPDF(base64String, fileName);
Метод 3: использование PDF.js
PDF.js — популярная библиотека JavaScript для работы с PDF-файлами в браузере. Он предоставляет ряд функций, включая возможность конвертировать строку Base64 в файл PDF. Вот пример:
function convertBase64ToPDF(base64String) {
const data = atob(base64String);
const buffer = new Uint8Array(data.length);
for (let i = 0; i < data.length; i++) {
buffer[i] = data.charCodeAt(i);
}
PDFJS.getDocument(buffer).then(function (pdf) {
// Perform any required modifications to the PDF document here
pdf.save('converted.pdf'); // Save the modified PDF document
});
}
const base64String = '...'; // Replace with your Base64-encoded string
convertBase64ToPDF(base64String);
В этой статье мы рассмотрели три различных метода преобразования строки в кодировке Base64 в файл PDF с помощью JavaScript. Мы узнали, как использовать библиотеку pdf-lib, атрибут загрузки HTML5 и библиотеку PDF.js. В зависимости от ваших конкретных требований и настроек проекта вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Теперь у вас есть знания и инструменты для легкого преобразования Base64 в PDF в ваших приложениях JavaScript.