♻️ 🚧 date and text field

This commit is contained in:
Timur Ercan
2023-02-28 19:36:21 +01:00
parent fc93f80a8b
commit 2f02134bc4
5 changed files with 25 additions and 13 deletions

View File

@ -1,11 +1,12 @@
import { FieldType } from "@prisma/client";
export const createField = function addField(
export const createField = (
e: any,
page: number,
selectedRecipient: any,
type: FieldType = FieldType.SIGNATURE
): any {
type: FieldType = FieldType.SIGNATURE,
customText = ""
): any => {
var rect = e.target.getBoundingClientRect();
const fieldSize = { width: 192, height: 96 };
var newFieldX = e.clientX - rect.left - fieldSize.width / 2; //x position within the element.
@ -25,6 +26,7 @@ export const createField = function addField(
positionX: newFieldX.toFixed(0),
positionY: newFieldY.toFixed(0),
Recipient: selectedRecipient,
customText: customText,
};
return signatureField;

View File

@ -7,7 +7,8 @@ export async function insertTextInPDF(
text: string,
positionX: number,
positionY: number,
page: number = 0
page: number = 0,
useHandwritingFont = true
): Promise<string> {
const fontBytes = fs.readFileSync("public/fonts/Qwigley-Regular.ttf");
@ -16,10 +17,11 @@ export async function insertTextInPDF(
const pdfDoc = await PDFDocument.load(existingPdfBytes);
pdfDoc.registerFontkit(fontkit);
const customFont = await pdfDoc.embedFont(fontBytes);
const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica);
const pages = pdfDoc.getPages();
const pdfPage = pages[page];
const textSize = 50;
const textSize = useHandwritingFont ? 50 : 15;
const textWidth = customFont.widthOfTextAtSize(text, textSize);
const textHeight = customFont.heightAtSize(textSize);
@ -27,7 +29,7 @@ export async function insertTextInPDF(
x: positionX, // todo adjust for exact field size
y: pdfPage.getHeight() - positionY - textHeight / 2, // todo adjust for exact field size
size: textSize,
font: customFont,
font: useHandwritingFont ? customFont : helveticaFont,
color: rgb(0, 0, 0),
});

View File

@ -115,6 +115,7 @@ model Field {
page Int
positionX Int @default(0)
positionY Int @default(0)
customText String
Document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
Recipient Recipient? @relation(fields: [recipientId], references: [id], onDelete: Cascade)
Signature Signature?