Introduced a signature input feature in `ReportViewer.razor` to allow users to draw a signature on a canvas and embed it into reports before exporting as a signed PDF. - Added a canvas (`receiver-signature-pad`) and buttons for clearing, applying, and exporting signatures. - Injected `IJSRuntime` for JavaScript interop and added methods for signature handling (`ClearSignatureAsync`, `ApplySignatureAsync`, `ExportSignedPdfAsync`). - Embedded the signature as an image and label in the report's bottom margin. - Added `receiver-signature.js` to manage the signature pad, including drawing, clearing, and exporting the signature as a Base64 image. - Updated `index.html` to include the new JavaScript file. - Displayed validation messages for missing or invalid signatures.
69 lines
2.2 KiB
HTML
69 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
<title>EnvelopeGenerator.ReceiverUI</title>
|
|
<base href="/" />
|
|
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
|
|
<link href="EnvelopeGenerator.ReceiverUI.styles.css" rel="stylesheet" />
|
|
<link href="css/app.css" rel="stylesheet" />
|
|
<style type="text/css">
|
|
.splash-screen {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-flow: column nowrap;
|
|
height: 100vh;
|
|
font-family: "Segoe UI",Roboto,"Helvetica Neue","-apple-system",BlinkMacSystemFont,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
|
|
font-size: .88rem;
|
|
font-weight: 400;
|
|
line-height: 1.5;
|
|
text-align: center;
|
|
}
|
|
|
|
.splash-screen .spinner-border {
|
|
border: .2em solid;
|
|
border-color: #5f368d #bfbfbf #bfbfbf;
|
|
width: 120px;
|
|
height: 120px;
|
|
}
|
|
|
|
.splash-screen-caption {
|
|
font-size: 1.5rem;
|
|
font-weight: 600;
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.splash-screen-text {
|
|
color: #a1a1a1;
|
|
margin-top: .5rem;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app">
|
|
<script type="text/javascript">
|
|
if(/MSIE \d|Trident.*rv:|Edge\//.test(window.navigator.userAgent))
|
|
window.location.href = "browserNotSupported.html";
|
|
</script>
|
|
<div class="splash-screen">
|
|
<div class="spinner-border"></div>
|
|
<div class="splash-screen-caption">EnvelopeGenerator.ReceiverUI</div>
|
|
<div class="splash-screen-text">Loading...</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="blazor-error-ui">
|
|
An unhandled error has occurred.
|
|
<a href="" class="reload">Reload</a>
|
|
<a class="dismiss">X</a>
|
|
</div>
|
|
<script src="_content/DevExpress.Blazor.Resources/js/preload-script.js"></script>
|
|
<script src="js/receiver-signature.js"></script>
|
|
<script src="_framework/blazor.webassembly.js"></script>
|
|
</body>
|
|
|
|
</html> |