728x90
반응형
파일 병합 및 다운로드 기능 개발 시작!
Firebase Storage 에서 번역이 완료된 파일들을 다운 받고 병합을 한 뒤 다운받는다.
const downloadPDF = async (pageCount, storage) => {
try {
const mergedPDFDocument = await PDFDocument.create();
for (let i = 0; i < pageCount / 20; i += 1) {
var storageRef = ref(storage, `gs://버킷명/번역완료된파일명`;
storageRef = ref(storage, storageRef);
const url = await getDownloadURL(storageRef);
const arrayBuffer = await fetch(url).then(response => response.arrayBuffer());
const pdfDocument = (await PDFDocument.load(arrayBuffer));
const pageCount = pdfDocument.getPageCount();
for (let pageNumber = 0; pageNumber < pageCount; ++pageNumber) {
const [copiedPage] = await mergedPDFDocument.copyPages(pdfDocument, [pageNumber]);
mergedPDFDocument.addPage(copiedPage);
}
}
await mergePDF(mergedPDFDocument);
} catch (error) {
console.error('파일 다운로드 오류:', error);
alert('파일 다운로드 중 오류가 발생했습니다.');
}
}
const mergePDF = async (mergedPDFDocument) => {
const mergedPDFBytes = await mergedPDFDocument.save();
const mergedPDFBlob = new Blob([mergedPDFBytes], { type: 'application/pdf' });
const downloadLink = document.createElement('a');
downloadLink.href = URL.createObjectURL(mergedPDFBlob);
downloadLink.download = `${file.name}_merged.pdf`;
downloadLink.click();
}
728x90
반응형
'개발 일지 > PDF 파일 번역 프로그램' 카테고리의 다른 글
PDF 파일 번역 프로그램 - 회고 (0) | 2024.04.19 |
---|---|
PDF 파일 번역 프로그램 - PDF 파일 번역 (대량) (1) | 2024.04.19 |
PDF 파일 번역 프로그램 - Cloud Translation API (1) | 2024.04.18 |
PDF 파일 번역 프로그램 - Firebase 파일 업로드 (1) | 2024.04.18 |
PDF 파일 번역 프로그램 - PDF 파일 분할(javascript) (0) | 2024.04.18 |
댓글