feat: add error handling for flattening PDF forms and annotations

This commit is contained in:
alam00000
2026-03-29 20:29:31 +05:30
parent 84b70e5048
commit 245b48464b

View File

@@ -8,6 +8,7 @@ import {
import { loadPdfWithPasswordPrompt } from '../utils/password-prompt.js';
import { t } from '../i18n/i18n';
import { loadPdfDocument } from '../utils/load-pdf-document.js';
import { flattenAnnotations } from '../utils/flatten-annotations.js';
import type { SignState, PDFViewerWindow } from '@/types';
const signState: SignState = {
@@ -283,7 +284,20 @@ async function applyAndSaveSignatures() {
);
const pdfBytes = new Uint8Array(rawPdfBytes);
const pdfDoc = await loadPdfDocument(pdfBytes);
pdfDoc.getForm().flatten();
try {
pdfDoc.getForm().flatten();
} catch (e: unknown) {
const msg = e instanceof Error ? e.message : String(e);
if (!msg.includes('getForm')) {
throw e;
}
}
try {
flattenAnnotations(pdfDoc);
} catch (e: unknown) {
const msg = e instanceof Error ? e.message : String(e);
console.warn('Could not flatten annotations:', msg);
}
const flattenedPdfBytes = await pdfDoc.save();
const blob = new Blob([new Uint8Array(flattenedPdfBytes)], {