From 6d78e745f2a41ba90c5b9eb261b353feb2e2560e Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 18 Dec 2025 12:06:01 +0800 Subject: [PATCH 1/2] feat(PdfReader): getFileSize support stream --- .../PdfReader.razor.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js index 81f6a463..a0496dc8 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js @@ -155,6 +155,9 @@ const loadPdf = async pdf => { pdfViewer.setDocument(pdfDocument); pdfDocument.getMetadata().then(metadata => { + if (metadata.contentLength === null) { + metadata.contentLength = options.data.length; + } loadMetadata(el, pdfViewer, metadata); }); @@ -293,18 +296,24 @@ function parsePdfDate(pdfDateString) { const getFilesize = metadata => { const length = metadata.contentLength; + let val = 0; + let unit = 'B'; if (length < 1024) { - return `${Math.round(length)}B`; + val = length; } else if (length < 1024 * 1024) { - return `${Math.round(length / 1024)}KB`; + unit = 'KB'; + val = length / 1024; } else if (length < 1024 * 1024 * 1024) { - return `${length / 1024 / 1024}MB`; + unit = 'MB'; + val = length / 1024 / 1024; } else if (length < 1024 * 1024 * 1024 * 1024) { - return `${length / 1024 / 1024 / 1024}GB`; + unit = 'GB'; + val = length / 1024 / 1024 / 1024; } + return `${Math.round(val * 100) / 100}${unit}`; } const setObserver = el => { From 8c8dd4887132b1564ee8482d57b4862a6f4c0505 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 18 Dec 2025 12:06:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js index a0496dc8..4bb1ff33 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js @@ -211,7 +211,7 @@ const loadMetadata = (el, pdfViewer, metadata) => { } const filesize = el.querySelector('.bb-view-pdf-dialog-file-size'); - filesize.textContent = getFilesize(metadata); + filesize.textContent = getFileSize(metadata); const title = el.querySelector('.bb-view-pdf-dialog-title'); const author = el.querySelector('.bb-view-pdf-dialog-author'); @@ -294,7 +294,7 @@ function parsePdfDate(pdfDateString) { return date; } -const getFilesize = metadata => { +const getFileSize = metadata => { const length = metadata.contentLength; let val = 0; let unit = 'B';