mirror of
https://github.com/24eme/signaturepdf
synced 2026-03-14 13:55:44 +01:00
watermark: Resize the canvas to the original size to avoid having a poor quality watermark
This commit is contained in:
parent
526e333ebe
commit
7c9302c0bb
1 changed files with 18 additions and 21 deletions
|
|
@ -21,6 +21,7 @@ let penColor = localStorage.getItem('penColor') ?? '#000000'
|
|||
let nblayers = null;
|
||||
let hasModifications = false;
|
||||
let currentTextScale = 1;
|
||||
const defaultScale = 1.5;
|
||||
|
||||
async function loadPDF(pdfBlob) {
|
||||
let filename = pdfBlob.name;
|
||||
|
|
@ -617,7 +618,6 @@ function createAndAddSvgInCanvas(canvas, item, x, y, height = null) {
|
|||
function autoZoom() {
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(resizePDF, 100);
|
||||
updateWatermark();
|
||||
};
|
||||
|
||||
function zoomChange(inOrOut) {
|
||||
|
|
@ -843,28 +843,15 @@ function createEventsListener() {
|
|||
document.querySelector('input[name=watermark]')?.addEventListener('keyup', debounce(function (e) {
|
||||
setIsChanged(hasModifications || !!e.target.value)
|
||||
updateFlatten();
|
||||
|
||||
// Pourquoi 27 : 40 / 1.5 = 26.6666
|
||||
// fontSize ^ ^ currentScale par défaut
|
||||
// Comme ça le texte de l'overlay ne bouge pas au zoom
|
||||
const text = new fabric.Text(e.target.value, {angle: -40, fill: "#0009", fontSize: 27 * currentScale})
|
||||
const overlay = new fabric.Rect({
|
||||
fill: new fabric.Pattern({
|
||||
source: text.toCanvasElement(),
|
||||
}),
|
||||
})
|
||||
|
||||
canvasEditions.forEach(function (canvas) {
|
||||
overlay.height = canvas.height
|
||||
overlay.width = canvas.width
|
||||
|
||||
canvas.objectCaching = false
|
||||
canvas.setOverlayImage(overlay, canvas.renderAll.bind(canvas), {
|
||||
objectCaching: false
|
||||
})
|
||||
})
|
||||
updateWatermark();
|
||||
}, 750))
|
||||
|
||||
document.querySelector('input[name=watermark]')?.addEventListener('change', function (e) {
|
||||
setIsChanged(hasModifications || !!e.target.value)
|
||||
updateFlatten();
|
||||
updateWatermark();
|
||||
});
|
||||
|
||||
if(document.querySelector('#alert-signature-help')) {
|
||||
document.getElementById('btn-signature-help').addEventListener('click', function(event) {
|
||||
document.querySelector('#alert-signature-help').classList.remove('d-none');
|
||||
|
|
@ -878,6 +865,11 @@ function createEventsListener() {
|
|||
|
||||
if(document.getElementById('save')) {
|
||||
document.getElementById('save').addEventListener('click', function(event) {
|
||||
let previousScale = currentScale;
|
||||
if(currentScale != defaultScale) {
|
||||
resizePDF(defaultScale)
|
||||
while(!renderComplete) { }
|
||||
}
|
||||
let dataTransfer = new DataTransfer();
|
||||
canvasEditions.forEach(function(canvasEdition, index) {
|
||||
dataTransfer.items.add(new File([canvasEdition.toSVG()], index+'.svg', {
|
||||
|
|
@ -885,6 +877,11 @@ function createEventsListener() {
|
|||
}));
|
||||
})
|
||||
document.getElementById('input_svg').files = dataTransfer.files;
|
||||
if(previousScale != currentScale) {
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(resizePDF(previousScale), 100);
|
||||
}
|
||||
|
||||
hasModifications = false;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue