feat(pdf-to-image): simplify get clean filename

This commit is contained in:
Sebastian Espei
2025-12-02 22:07:25 +01:00
parent 3fcf9757f7
commit d2769a02f5
5 changed files with 30 additions and 22 deletions

View File

@@ -65,7 +65,7 @@ export async function pdfToBmp() {
showLoader(`Processing page 1 of ${pdf.numPages}...`); showLoader(`Processing page 1 of ${pdf.numPages}...`);
const page = await pdf.getPage(1); const page = await pdf.getPage(1);
const bmpBuffer = await pageToBlob(page); const bmpBuffer = await pageToBlob(page);
downloadFile(bmpBuffer, getCleanFilename(state.files[0].name) +'.bmp'); downloadFile(bmpBuffer, getCleanFilename() +'.bmp');
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
@@ -80,7 +80,7 @@ export async function pdfToBmp() {
showLoader('Compressing files into a ZIP...'); showLoader('Compressing files into a ZIP...');
const zipBlob = await zip.generateAsync({ type: 'blob' }); const zipBlob = await zip.generateAsync({ type: 'blob' });
downloadFile(zipBlob, getCleanFilename(state.files[0].name) + '_bmps.zip'); downloadFile(zipBlob, getCleanFilename() + '_bmps.zip');
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@@ -110,6 +110,10 @@ async function pageToBlob(page: PDFPageProxy): Promise<Blob> {
return new Blob([encodeBMP(imageData)]); return new Blob([encodeBMP(imageData)]);
} }
function getCleanFilename(fileName: string): string { function getCleanFilename(): string {
return fileName.replace(/\.pdf$/i, ''); let clean = state.files[0].name.replace(/\.pdf$/i, '').trim();
if (clean.length > 80) {
clean = clean.slice(0, 80);
}
return clean;
} }

View File

@@ -21,7 +21,7 @@ export async function pdfToJpg() {
if(pdf.numPages === 1) { if(pdf.numPages === 1) {
const page = await pdf.getPage(1); const page = await pdf.getPage(1);
const blob = await pageToBlob(page, quality); const blob = await pageToBlob(page, quality);
downloadFile(blob, getCleanFilename(state.files[0].name) + '.jpg'); downloadFile(blob, getCleanFilename() + '.jpg');
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
for (let i = 1; i <= pdf.numPages; i++) { for (let i = 1; i <= pdf.numPages; i++) {
@@ -31,7 +31,7 @@ export async function pdfToJpg() {
} }
const zipBlob = await zip.generateAsync({ type: 'blob' }); const zipBlob = await zip.generateAsync({ type: 'blob' });
downloadFile(zipBlob, getCleanFilename(state.files[0].name) + '_jpgs.zip'); downloadFile(zipBlob, getCleanFilename() + '_jpgs.zip');
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@@ -59,8 +59,8 @@ async function pageToBlob(page: PDFPageProxy, quality: number): Promise<Blob> {
return blob as Blob; return blob as Blob;
} }
function getCleanFilename(fileName: string): string { function getCleanFilename(): string {
let clean = fileName.replace(/\.pdf$/i, '').trim(); let clean = state.files[0].name.replace(/\.pdf$/i, '').trim();
if (clean.length > 80) { if (clean.length > 80) {
clean = clean.slice(0, 80); clean = clean.slice(0, 80);
} }

View File

@@ -29,7 +29,7 @@ export async function pdfToPng() {
if (pdf.numPages === 1) { if (pdf.numPages === 1) {
downloadFile( downloadFile(
await pageToBlob(await pdf.getPage(1), scale), await pageToBlob(await pdf.getPage(1), scale),
getCleanFilename(state.files[0].name) + '.png' getCleanFilename() + '.png'
); );
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
@@ -41,7 +41,7 @@ export async function pdfToPng() {
const zipBlob = await zip.generateAsync({ type: 'blob' }); const zipBlob = await zip.generateAsync({ type: 'blob' });
downloadFile( downloadFile(
zipBlob, zipBlob,
getCleanFilename(state.files[0].name) + '_pngs.zip' getCleanFilename() + '_pngs.zip'
); );
} }
} catch (e) { } catch (e) {
@@ -69,6 +69,10 @@ async function pageToBlob(page: PDFPageProxy, scale: number): Promise<Blob> {
return blob as Blob; return blob as Blob;
} }
function getCleanFilename(fileName: string): string { function getCleanFilename(): string {
return fileName.replace(/\.pdf$/i, ''); let clean = state.files[0].name.replace(/\.pdf$/i, '').trim();
if (clean.length > 80) {
clean = clean.slice(0, 80);
}
return clean;
} }

View File

@@ -18,7 +18,7 @@ export async function pdfToTiff() {
if(pdf.numPages === 1) { if(pdf.numPages === 1) {
const page = await pdf.getPage(1); const page = await pdf.getPage(1);
const tiffBuffer = await pageToBlob(page); const tiffBuffer = await pageToBlob(page);
downloadFile(tiffBuffer, getCleanFilename(state.files[0].name) + '.tiff'); downloadFile(tiffBuffer, getCleanFilename() + '.tiff');
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
@@ -29,7 +29,7 @@ export async function pdfToTiff() {
} }
const zipBlob = await zip.generateAsync({ type: 'blob' }); const zipBlob = await zip.generateAsync({ type: 'blob' });
downloadFile(zipBlob, getCleanFilename(state.files[0].name) + '_tiffs.zip'); downloadFile(zipBlob, getCleanFilename() + '_tiffs.zip');
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@@ -65,8 +65,8 @@ async function pageToBlob(page: PDFPageProxy): Promise<Blob> {
return new Blob([tiffBuffer]); return new Blob([tiffBuffer]);
} }
function getCleanFilename(fileName: string): string { function getCleanFilename(): string {
let clean = fileName.replace(/\.pdf$/i, '').trim(); let clean = state.files[0].name.replace(/\.pdf$/i, '').trim();
if (clean.length > 80) { if (clean.length > 80) {
clean = clean.slice(0, 80); clean = clean.slice(0, 80);
} }

View File

@@ -18,7 +18,7 @@ export async function pdfToWebp() {
if(pdf.numPages === 1) { if(pdf.numPages === 1) {
const page = await pdf.getPage(1); const page = await pdf.getPage(1);
const blob = await pageToBlob(page); const blob = await pageToBlob(page);
downloadFile(blob, getCleanFilename(state.files[0].name) + '.webp'); downloadFile(blob, getCleanFilename() + '.webp');
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
for (let i = 1; i <= pdf.numPages; i++) { for (let i = 1; i <= pdf.numPages; i++) {
@@ -27,7 +27,7 @@ export async function pdfToWebp() {
zip.file(`page_${i}.webp`, blob as Blob); zip.file(`page_${i}.webp`, blob as Blob);
} }
const zipBlob = await zip.generateAsync({ type: 'blob' }); const zipBlob = await zip.generateAsync({ type: 'blob' });
downloadFile(zipBlob, getCleanFilename(state.files[0].name) + '_webps.zip'); downloadFile(zipBlob, getCleanFilename() + '_webps.zip');
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@@ -53,8 +53,8 @@ async function pageToBlob(page: PDFPageProxy): Promise<Blob> {
return blob as Blob; return blob as Blob;
} }
function getCleanFilename(fileName: string): string { function getCleanFilename(): string {
let clean = fileName.replace(/\.pdf$/i, '').trim(); let clean = state.files[0].name.replace(/\.pdf$/i, '').trim();
if (clean.length > 80) { if (clean.length > 80) {
clean = clean.slice(0, 80); clean = clean.slice(0, 80);
} }