mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-17 21:25:54 +02:00
fix: remove blank space from text widgets,fix text size conflict issue
This commit is contained in:
@@ -651,7 +651,7 @@ function Placeholder(props) {
|
||||
const fontSize = (size || 12) * containerScale * props.scale;
|
||||
//isMinHeight to set text box minimum height
|
||||
if (isMinHeight) {
|
||||
return fontSize * 1.5 + "px";
|
||||
return fontSize * 1.2 + "px";
|
||||
} else {
|
||||
return fontSize + "px";
|
||||
}
|
||||
|
||||
@@ -465,27 +465,27 @@ export const defaultWidthHeight = (type) => {
|
||||
case "checkbox":
|
||||
return { width: 15, height: 15 };
|
||||
case textInputWidget:
|
||||
return { width: 150, height: 25 };
|
||||
return { width: 150, height: 13 };
|
||||
case "dropdown":
|
||||
return { width: 120, height: 22 };
|
||||
case "initials":
|
||||
return { width: 50, height: 50 };
|
||||
case "name":
|
||||
return { width: 150, height: 25 };
|
||||
return { width: 150, height: 13 };
|
||||
case "company":
|
||||
return { width: 150, height: 25 };
|
||||
return { width: 150, height: 13 };
|
||||
case "job title":
|
||||
return { width: 150, height: 25 };
|
||||
return { width: 150, height: 13 };
|
||||
case "date":
|
||||
return { width: 100, height: 20 };
|
||||
case "image":
|
||||
return { width: 70, height: 70 };
|
||||
case "email":
|
||||
return { width: 150, height: 20 };
|
||||
return { width: 150, height: 13 };
|
||||
case radioButtonWidget:
|
||||
return { width: 5, height: 10 };
|
||||
case textWidget:
|
||||
return { width: 150, height: 25 };
|
||||
return { width: 150, height: 13 };
|
||||
default:
|
||||
return { width: 150, height: 60 };
|
||||
}
|
||||
@@ -1013,7 +1013,7 @@ export const calculateInitialWidthHeight = (widgetData) => {
|
||||
const intialText = widgetData;
|
||||
const span = document.createElement("span");
|
||||
span.textContent = intialText;
|
||||
span.style.font = `14px`; // here put your text size and font family
|
||||
span.style.font = `12px`; // here put your text size and font family
|
||||
span.style.display = "hidden";
|
||||
document.body.appendChild(span);
|
||||
const width = span.offsetWidth;
|
||||
@@ -1303,12 +1303,6 @@ export const changeImageWH = async (base64Image) => {
|
||||
});
|
||||
};
|
||||
|
||||
//function to calculate font size of text area widgets
|
||||
const calculateFontSize = (position) => {
|
||||
const fontSize = position?.options?.fontSize || 12;
|
||||
return fontSize;
|
||||
};
|
||||
|
||||
const getWidgetsFontColor = (type) => {
|
||||
switch (type) {
|
||||
case "red":
|
||||
@@ -1324,14 +1318,7 @@ const getWidgetsFontColor = (type) => {
|
||||
}
|
||||
};
|
||||
//function for embed multiple signature using pdf-lib
|
||||
export const multiSignEmbed = async (
|
||||
widgets,
|
||||
pdfDoc,
|
||||
signyourself,
|
||||
scale,
|
||||
pdfOriginalWH,
|
||||
containerWH
|
||||
) => {
|
||||
export const multiSignEmbed = async (widgets, pdfDoc, signyourself, scale) => {
|
||||
// `fontBytes` is used to embed custom font in pdf
|
||||
const fontBytes = await fileasbytes(
|
||||
"https://cdn.opensignlabs.com/webfonts/times.ttf"
|
||||
@@ -1341,11 +1328,6 @@ export const multiSignEmbed = async (
|
||||
let hasError = false;
|
||||
for (let item of widgets) {
|
||||
if (hasError) break; // Stop the outer loop if an error occurred
|
||||
const containerScale = getContainerScale(
|
||||
pdfOriginalWH,
|
||||
item?.pageNumber,
|
||||
containerWH
|
||||
);
|
||||
const typeExist = item.pos.some((data) => data?.type);
|
||||
let updateItem;
|
||||
|
||||
@@ -1432,7 +1414,17 @@ export const multiSignEmbed = async (
|
||||
return y;
|
||||
}
|
||||
} else {
|
||||
return resizePos;
|
||||
const WidgetsTypeTextExist = [
|
||||
textWidget,
|
||||
textInputWidget,
|
||||
"name",
|
||||
"company",
|
||||
"job title",
|
||||
"date",
|
||||
"email"
|
||||
].includes(position.type);
|
||||
const yPosition = WidgetsTypeTextExist ? resizePos + 6 : resizePos;
|
||||
return yPosition;
|
||||
}
|
||||
};
|
||||
const color = position?.options?.fontColor;
|
||||
@@ -1508,7 +1500,7 @@ export const multiSignEmbed = async (
|
||||
});
|
||||
}
|
||||
} else if (widgetTypeExist) {
|
||||
const fontSize = calculateFontSize(position);
|
||||
const fontSize = position?.options?.fontSize || 12;
|
||||
parseInt(fontSize);
|
||||
let textContent;
|
||||
if (position?.options?.response) {
|
||||
@@ -1541,7 +1533,6 @@ export const multiSignEmbed = async (
|
||||
lines.push(currentLine.trim());
|
||||
return lines;
|
||||
};
|
||||
|
||||
// Function to break text into lines based on when user go next line on press enter button
|
||||
const breakTextIntoLines = (textContent, width) => {
|
||||
const lines = [];
|
||||
@@ -1562,7 +1553,6 @@ export const multiSignEmbed = async (
|
||||
|
||||
return lines;
|
||||
};
|
||||
|
||||
//check if text content have `\n` string it means user press enter to go next line and handle condition
|
||||
//else auto adjust text content according to container width
|
||||
const lines = isNewOnEnterLineExist
|
||||
@@ -1589,7 +1579,6 @@ export const multiSignEmbed = async (
|
||||
}
|
||||
} else if (position.type === "dropdown") {
|
||||
const fontsize = parseInt(position?.options?.fontSize) || 12;
|
||||
|
||||
const dropdownRandomId = "dropdown" + randomId();
|
||||
const dropdown = form.createDropdown(dropdownRandomId);
|
||||
dropdown.addOptions(position?.options?.values);
|
||||
@@ -1688,7 +1677,7 @@ export const multiSignEmbed = async (
|
||||
}
|
||||
if (!hasError) {
|
||||
const pdfBytes = await pdfDoc.saveAsBase64({ useObjectStreams: false });
|
||||
// console.log("pdf", pdfBytes);
|
||||
//console.log("pdf", pdfBytes);
|
||||
return pdfBytes;
|
||||
} else {
|
||||
return {
|
||||
|
||||
@@ -924,9 +924,7 @@ function PdfRequestFiles(props) {
|
||||
widgets,
|
||||
pdfDoc,
|
||||
isSignYourSelfFlow,
|
||||
scale,
|
||||
pdfOriginalWH,
|
||||
containerWH
|
||||
scale
|
||||
);
|
||||
// console.log("pdfte", pdfBytes);
|
||||
//get ExistUserPtr object id of user class to get tenantDetails
|
||||
|
||||
@@ -814,9 +814,7 @@ function PlaceHolderSign() {
|
||||
placeholder,
|
||||
pdfDoc,
|
||||
isSignYourSelfFlow,
|
||||
scale,
|
||||
pdfOriginalWH,
|
||||
containerWH
|
||||
scale
|
||||
);
|
||||
const pdfUrl = await convertBase64ToFile(pdfDetails[0].Name, pdfBase64);
|
||||
const tenantId = localStorage.getItem("TenantId");
|
||||
|
||||
@@ -457,9 +457,7 @@ function SignYourSelf() {
|
||||
const getWidth = widgetTypeExist
|
||||
? calculateInitialWidthHeight(widgetValue).getWidth
|
||||
: defaultWidthHeight(dragTypeValue).width;
|
||||
const getHeight = widgetTypeExist
|
||||
? calculateInitialWidthHeight(widgetValue).getHeight
|
||||
: defaultWidthHeight(dragTypeValue).height;
|
||||
const getHeight = defaultWidthHeight(dragTypeValue).height;
|
||||
dropObj = {
|
||||
xPosition: getXPosition / (containerScale * scale),
|
||||
yPosition: getYPosition / (containerScale * scale),
|
||||
@@ -661,9 +659,7 @@ function SignYourSelf() {
|
||||
xyPostion,
|
||||
pdfDoc,
|
||||
isSignYourSelfFlow,
|
||||
scale,
|
||||
pdfOriginalWH,
|
||||
containerWH
|
||||
scale
|
||||
);
|
||||
// console.log("pdf", pdfBytes);
|
||||
//function for call to embed signature in pdf and get digital signature pdf
|
||||
|
||||
Reference in New Issue
Block a user