diff --git a/packages/lib/server-only/pdf/auto-place-fields.ts b/packages/lib/server-only/pdf/auto-place-fields.ts index 8aa68ec56..fdd3852e3 100644 --- a/packages/lib/server-only/pdf/auto-place-fields.ts +++ b/packages/lib/server-only/pdf/auto-place-fields.ts @@ -166,12 +166,9 @@ export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise { /* @@ -187,7 +184,7 @@ export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise part.trim()); + const placeholderData = placeholderMatch[1].split(',').map((property) => property.trim()); const [fieldTypeString, recipient, ...fieldMetaData] = placeholderData; - const rawFieldMeta = Object.fromEntries(fieldMetaData.map((meta) => meta.split('='))); + const rawFieldMeta = Object.fromEntries( + fieldMetaData.map((property) => property.split('=')), + ); const fieldType = parseFieldType(fieldTypeString); const parsedFieldMeta = parseFieldMeta(rawFieldMeta, fieldType); @@ -231,10 +230,10 @@ export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise => - Need to convert from page units to points - Y-axis in pdf-lib is bottom-up (origin at bottom-left) - Y-axis in PDF2JSON is top-down (origin at top-left) - - Conversion formulas: - - x_points = (x / pageWidth) * pdfLibPageWidth - - y_points = pdfLibPageHeight - ((y / pageHeight) * pdfLibPageHeight) - - width_points = (width / pageWidth) * pdfLibPageWidth - - height_points = (height / pageHeight) * pdfLibPageHeight */ const xPoints = (placeholder.x / placeholder.pageWidth) * pdfLibPageWidth; @@ -432,9 +426,9 @@ export const insertFieldsFromPlaceholdersInPDF = async ( }, }); - const existingEmails = existingRecipients.map((r) => r.email); + const existingEmails = new Set(existingRecipients.map((r) => r.email)); const recipientsToCreateFiltered = recipientsToCreate.filter( - (recipient) => !existingEmails.includes(recipient.email), + (recipient) => !existingEmails.has(recipient.email), ); let createdRecipients: Pick[] = existingRecipients;