@@ -1920,6 +1934,16 @@ function PdfRequestFiles(props) {
containerWH={containerWH}
setZoomPercent={setZoomPercent}
zoomPercent={zoomPercent}
+ setRotateDegree={setRotateDegree}
+ rotateDegree={rotateDegree}
+ file={
+ pdfDetails[0] &&
+ (pdfDetails[0].SignedUrl || pdfDetails[0].URL)
+ }
+ setPdfArrayBuffer={setPdfArrayBuffer}
+ setPdfRotatese64={setPdfRotatese64}
+ pageNumber={pageNumber}
+ pdfRotateBase64={pdfRotateBase64}
/>
{/* this modal is used show this document is already sign */}
@@ -2108,6 +2132,7 @@ function PdfRequestFiles(props) {
uniqueId={uniqueId}
ispublicTemplate={isPublicTemplate}
handleUserDetails={handleUserDetails}
+ pdfRotateBase64={pdfRotateBase64}
/>
)}
diff --git a/apps/OpenSign/src/pages/PlaceHolderSign.js b/apps/OpenSign/src/pages/PlaceHolderSign.js
index 3b8c99634..59cbeb693 100644
--- a/apps/OpenSign/src/pages/PlaceHolderSign.js
+++ b/apps/OpenSign/src/pages/PlaceHolderSign.js
@@ -141,6 +141,8 @@ function PlaceHolderSign() {
const [isCustomize, setIsCustomize] = useState(false);
const [zoomPercent, setZoomPercent] = useState(0);
const [scale, setScale] = useState(1);
+ const [rotateDegree, setRotateDegree] = useState(0);
+ const [pdfRotateBase64, setPdfRotatese64] = useState("");
const isMobile = window.innerWidth < 767;
const [, drop] = useDrop({
accept: "BOX",
@@ -805,6 +807,7 @@ function PlaceHolderSign() {
function changePage(offset) {
setSignBtnPosition([]);
setPageNumber((prevPageNumber) => prevPageNumber + offset);
+ setRotateDegree(0);
}
//function for capture position on hover or touch widgets
@@ -853,7 +856,7 @@ function PlaceHolderSign() {
});
const isSignYourSelfFlow = false;
try {
- const pdfBytes = await multiSignEmbed(
+ const pdfBase64 = await multiSignEmbed(
placeholder,
pdfDoc,
isSignYourSelfFlow,
@@ -863,18 +866,29 @@ function PlaceHolderSign() {
);
const fileName = sanitizeFileName(pdfDetails[0].Name) + ".pdf";
- const pdfFile = new Parse.File(fileName, { base64: pdfBytes });
+ const pdfFile = new Parse.File(fileName, { base64: pdfBase64 });
// Save the Parse File if needed
const pdfData = await pdfFile.save();
const pdfUrl = pdfData.url();
const tenantId = localStorage.getItem("TenantId");
- const buffer = atob(pdfBytes);
+ const buffer = atob(pdfBase64);
SaveFileSize(buffer.length, pdfUrl, tenantId);
return pdfUrl;
} catch (e) {
console.log("error", e);
}
+ } else if (pdfRotateBase64) {
+ const fileName = sanitizeFileName(pdfDetails[0].Name) + ".pdf";
+ const pdfFile = new Parse.File(fileName, { base64: pdfRotateBase64 });
+
+ // Save the Parse File if needed
+ const pdfData = await pdfFile.save();
+ const pdfUrl = pdfData.url();
+ const tenantId = localStorage.getItem("TenantId");
+ const buffer = atob(pdfRotateBase64);
+ SaveFileSize(buffer.length, pdfUrl, tenantId);
+ return pdfUrl;
} else {
return pdfDetails[0].URL;
}
@@ -1739,6 +1753,8 @@ function PlaceHolderSign() {
setPageNumber={setPageNumber}
setSignBtnPosition={setSignBtnPosition}
pageNumber={pageNumber}
+ setRotateDegree={setRotateDegree}
+ pdfRotateBase64={pdfRotateBase64}
/>
{/* pdf render view */}
@@ -1748,6 +1764,16 @@ function PlaceHolderSign() {
containerWH={containerWH}
setZoomPercent={setZoomPercent}
zoomPercent={zoomPercent}
+ setRotateDegree={setRotateDegree}
+ rotateDegree={rotateDegree}
+ file={
+ pdfDetails[0] &&
+ (pdfDetails[0].SignedUrl || pdfDetails[0].URL)
+ }
+ setPdfArrayBuffer={setPdfArrayBuffer}
+ setPdfRotatese64={setPdfRotatese64}
+ pageNumber={pageNumber}
+ pdfRotateBase64={pdfRotateBase64}
/>
{/* this modal is used show alert set placeholder for all signers before send mail */}
@@ -2025,6 +2051,7 @@ function PlaceHolderSign() {
setScale={setScale}
scale={scale}
setIsSelectId={setIsSelectId}
+ pdfRotateBase64={pdfRotateBase64}
/>
)}
diff --git a/apps/OpenSign/src/pages/SignyourselfPdf.js b/apps/OpenSign/src/pages/SignyourselfPdf.js
index 20b1b58e1..f8bc6d573 100644
--- a/apps/OpenSign/src/pages/SignyourselfPdf.js
+++ b/apps/OpenSign/src/pages/SignyourselfPdf.js
@@ -123,6 +123,8 @@ function SignYourSelf() {
const [zoomPercent, setZoomPercent] = useState(0);
const isHeader = useSelector((state) => state.showHeader);
const [scale, setScale] = useState(1);
+ const [rotateDegree, setRotateDegree] = useState(0);
+ const [pdfRotateBase64, setPdfRotatese64] = useState("");
const divRef = useRef(null);
const nodeRef = useRef(null);
const [, drop] = useDrop({
@@ -862,6 +864,7 @@ function SignYourSelf() {
function changePage(offset) {
setSignBtnPosition([]);
setPageNumber((prevPageNumber) => prevPageNumber + offset);
+ setRotateDegree(0);
}
//function for image upload or update
const onImageChange = (event) => {
@@ -1213,6 +1216,8 @@ function SignYourSelf() {
setSignBtnPosition={setSignBtnPosition}
pageNumber={pageNumber}
containerWH={containerWH}
+ setRotateDegree={setRotateDegree}
+ pdfRotateBase64={pdfRotateBase64}
/>
)}
diff --git a/apps/OpenSign/src/pages/TemplatePlaceholder.js b/apps/OpenSign/src/pages/TemplatePlaceholder.js
index 18c350ec8..3dc2b9258 100644
--- a/apps/OpenSign/src/pages/TemplatePlaceholder.js
+++ b/apps/OpenSign/src/pages/TemplatePlaceholder.js
@@ -26,7 +26,8 @@ import {
radioButtonWidget,
fetchSubscription,
getContainerScale,
- openInNewTab
+ openInNewTab,
+ convertPdfArrayBuffer
} from "../constant/Utils";
import RenderPdf from "../components/pdf/RenderPdf";
import "../styles/AddUser.css";
@@ -93,6 +94,9 @@ const TemplatePlaceholder = () => {
const [isNameModal, setIsNameModal] = useState(false);
const [isTextSetting, setIsTextSetting] = useState(false);
const [pdfLoad, setPdfLoad] = useState(false);
+ const [rotateDegree, setRotateDegree] = useState(0);
+ const [pdfRotateBase64, setPdfRotatese64] = useState("");
+ const [pdfArrayBuffer, setPdfArrayBuffer] = useState("");
const color = [
"#93a3db",
"#e6c3db",
@@ -230,6 +234,18 @@ const TemplatePlaceholder = () => {
: [];
if (documentData && documentData.length > 0) {
+ const url = documentData[0] && documentData[0]?.URL;
+ if (url) {
+ //convert document url in array buffer format to use embed widgets in pdf using pdf-lib
+ const arrayBuffer = await convertPdfArrayBuffer(url);
+ if (arrayBuffer === "Error") {
+ setHandleError(t("something-went-wrong-mssg"));
+ } else {
+ setPdfArrayBuffer(arrayBuffer);
+ }
+ } else {
+ setHandleError(t("something-went-wrong-mssg"));
+ }
if (isEnableSubscription) {
checkIsSubscribed(documentData[0]?.ExtUserPtr?.Email);
}
@@ -691,6 +707,7 @@ const TemplatePlaceholder = () => {
function changePage(offset) {
setSignBtnPosition([]);
setPageNumber((prevPageNumber) => prevPageNumber + offset);
+ setRotateDegree(0);
}
//function for capture position on hover or touch widgets
@@ -1321,6 +1338,16 @@ const TemplatePlaceholder = () => {
containerWH={containerWH}
setZoomPercent={setZoomPercent}
zoomPercent={zoomPercent}
+ setRotateDegree={setRotateDegree}
+ rotateDegree={rotateDegree}
+ file={
+ pdfDetails[0] &&
+ (pdfDetails[0].SignedUrl || pdfDetails[0].URL)
+ }
+ setPdfArrayBuffer={setPdfArrayBuffer}
+ setPdfRotatese64={setPdfRotatese64}
+ pageNumber={pageNumber}
+ pdfRotateBase64={pdfRotateBase64}
/>
{/* this modal is used show alert set placeholder for all signers before send mail */}
@@ -1496,6 +1523,7 @@ const TemplatePlaceholder = () => {
setScale={setScale}
scale={scale}
setIsSelectId={setIsSelectId}
+ pdfRotateBase64={pdfRotateBase64}
/>
)}