@@ -12,9 +12,11 @@ import { useParams } from "react-router-dom";
12
12
import SignPad from "./component/signPad" ;
13
13
import RenderAllPdfPage from "./component/renderAllPdfPage" ;
14
14
import {
15
+ convertPNGtoJPEG ,
15
16
contractDocument ,
16
17
getBase64FromIMG ,
17
- getBase64FromUrl
18
+ getBase64FromUrl ,
19
+ urlValidator
18
20
} from "../utils/Utils" ;
19
21
import Loader from "./component/loader" ;
20
22
import HandleError from "./component/HandleError" ;
@@ -346,38 +348,13 @@ function PdfRequestFiles() {
346
348
imgUrlList . map ( async ( data ) => {
347
349
//cheking signUrl is defau;t signature url of custom url
348
350
let ImgUrl = data . SignUrl ;
349
- const checkUrl = ImgUrl . includes ( "https:" ) ;
351
+ const checkUrl = urlValidator ( ImgUrl ) ;
350
352
351
353
//if default signature url then convert it in base 64
352
354
if ( checkUrl ) {
353
355
ImgUrl = await getBase64FromIMG ( ImgUrl + "?get" ) ;
354
356
}
355
357
//function for called convert png signatre to jpeg in base 64
356
- const convertPNGtoJPEG = ( base64Data ) => {
357
- return new Promise ( ( resolve , reject ) => {
358
- const canvas = document . createElement ( "canvas" ) ;
359
- const img = new Image ( ) ;
360
- img . src = base64Data ;
361
-
362
- img . onload = ( ) => {
363
- canvas . width = img . width ;
364
- canvas . height = img . height ;
365
-
366
- const ctx = canvas . getContext ( "2d" ) ;
367
- ctx . drawImage ( img , 0 , 0 ) ;
368
-
369
- // Convert to JPEG by using the canvas.toDataURL() method
370
- const jpegBase64Data = canvas . toDataURL ( "image/jpeg" ) ;
371
-
372
- resolve ( jpegBase64Data ) ;
373
- } ;
374
-
375
- img . onerror = ( error ) => {
376
- reject ( error ) ;
377
- } ;
378
- } ) ;
379
- } ;
380
-
381
358
convertPNGtoJPEG ( ImgUrl )
382
359
. then ( ( jpegBase64Data ) => {
383
360
const removeBase64Fromjpeg = "data:image/jpeg;base64," ;
@@ -433,32 +410,21 @@ function PdfRequestFiles() {
433
410
const images = await Promise . all (
434
411
imgUrlList . map ( async ( url ) => {
435
412
let signUrl = url . SignUrl ;
436
-
437
- const checkUrl = url . SignUrl . includes ( "https:" ) ;
413
+ if ( url . ImageType === "image/png" ) {
414
+ //function for convert signature png base64 url to jpeg base64
415
+ const newUrl = await convertPNGtoJPEG ( signUrl ) ;
416
+ signUrl = newUrl ;
417
+ }
418
+ const checkUrl = urlValidator ( signUrl ) ;
438
419
if ( checkUrl ) {
439
420
signUrl = signUrl + "?get" ;
440
421
}
441
422
const res = await fetch ( signUrl ) ;
442
-
443
423
return res . arrayBuffer ( ) ;
444
424
} )
445
425
) ;
446
426
images . forEach ( async ( imgData , id ) => {
447
- let img ;
448
- if (
449
- imgUrlList [ id ] . ImageType &&
450
- imgUrlList [ id ] . ImageType === "image/jpeg"
451
- ) {
452
- img = await pdfDoc . embedJpg ( imgData ) ;
453
- } else if (
454
- imgUrlList [ id ] . ImageType &&
455
- imgUrlList [ id ] . ImageType === "image/png"
456
- ) {
457
- img = await pdfDoc . embedPng ( imgData ) ;
458
- } else {
459
- img = await pdfDoc . embedPng ( imgData ) ;
460
- }
461
-
427
+ let img = await pdfDoc . embedJpg ( imgData ) ;
462
428
const imgHeight = imgUrlList [ id ] . Height
463
429
? imgUrlList [ id ] . Height
464
430
: 60 ;
0 commit comments