qt5/src/poppler-pdf-converter.cc | 5 +++-- qt6/src/poppler-pdf-converter.cc | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
New commits: commit d672fbe5c1f22c69e30824d7cb896e6b8fb560eb Author: Albert Astals Cid <[email protected]> Date: Tue Apr 13 13:59:47 2021 +0200 qt: Make sure new signatures are always properly oriented With the old code if it the page we were adding a signature was landscape and then rotated 90 degrees to look like portrait (relatively common on scanned documents) the text would appear wrongly oriented diff --git a/qt5/src/poppler-pdf-converter.cc b/qt5/src/poppler-pdf-converter.cc index fa3f797d..32910725 100644 --- a/qt5/src/poppler-pdf-converter.cc +++ b/qt5/src/poppler-pdf-converter.cc @@ -3,6 +3,7 @@ * Copyright (C) 2008, 2009, 2020, Albert Astals Cid <[email protected]> * Copyright (C) 2020, Thorsten Behrens <[email protected]> * Copyright (C) 2020, Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. Work sponsored by Technische Universität Dresden + * Copyright (C) 2021, Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -129,7 +130,7 @@ bool PDFConverter::sign(const NewSignatureData &data) ::Page *destPage = doc->getPage(data.page() + 1); const DefaultAppearance da { { objName, "SigFont" }, data.fontSize(), std::unique_ptr<AnnotColor> { convertQColor(data.fontColor()) } }; - const PDFRectangle rect = boundaryToPdfRectangle(destPage, data.boundingRectangle(), 0 /* no flags */); + const PDFRectangle rect = boundaryToPdfRectangle(destPage, data.boundingRectangle(), Annotation::FixedRotation); Object annotObj = Object(new Dict(doc->getXRef())); annotObj.dictSet("Type", Object(objName, "Annot")); @@ -157,7 +158,7 @@ bool PDFConverter::sign(const NewSignatureData &data) Object refObj(ref); AnnotWidget *signatureAnnot = new AnnotWidget(doc, &annotObj, &refObj, field.get()); - signatureAnnot->setFlags(signatureAnnot->getFlags() | Annot::flagPrint | Annot::flagLocked); + signatureAnnot->setFlags(signatureAnnot->getFlags() | Annot::flagPrint | Annot::flagLocked | Annot::flagNoRotate); Dict dummy(doc->getXRef()); auto appearCharacs = std::make_unique<AnnotAppearanceCharacs>(&dummy); appearCharacs->setBorderColor(std::unique_ptr<AnnotColor> { convertQColor(data.borderColor()) }); diff --git a/qt6/src/poppler-pdf-converter.cc b/qt6/src/poppler-pdf-converter.cc index 91705f6e..3783e9ed 100644 --- a/qt6/src/poppler-pdf-converter.cc +++ b/qt6/src/poppler-pdf-converter.cc @@ -3,6 +3,7 @@ * Copyright (C) 2008, 2009, 2020, Albert Astals Cid <[email protected]> * Copyright (C) 2020, Thorsten Behrens <[email protected]> * Copyright (C) 2020, Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. Work sponsored by Technische Universität Dresden + * Copyright (C) 2021, Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -129,7 +130,7 @@ bool PDFConverter::sign(const NewSignatureData &data) ::Page *destPage = doc->getPage(data.page() + 1); const DefaultAppearance da { { objName, "SigFont" }, data.fontSize(), std::unique_ptr<AnnotColor> { convertQColor(data.fontColor()) } }; - const PDFRectangle rect = boundaryToPdfRectangle(destPage, data.boundingRectangle(), 0 /* no flags */); + const PDFRectangle rect = boundaryToPdfRectangle(destPage, data.boundingRectangle(), Annotation::FixedRotation); Object annotObj = Object(new Dict(doc->getXRef())); annotObj.dictSet("Type", Object(objName, "Annot")); @@ -157,7 +158,7 @@ bool PDFConverter::sign(const NewSignatureData &data) Object refObj(ref); AnnotWidget *signatureAnnot = new AnnotWidget(doc, &annotObj, &refObj, field.get()); - signatureAnnot->setFlags(signatureAnnot->getFlags() | Annot::flagPrint | Annot::flagLocked); + signatureAnnot->setFlags(signatureAnnot->getFlags() | Annot::flagPrint | Annot::flagLocked | Annot::flagNoRotate); Dict dummy(doc->getXRef()); auto appearCharacs = std::make_unique<AnnotAppearanceCharacs>(&dummy); appearCharacs->setBorderColor(std::unique_ptr<AnnotColor> { convertQColor(data.borderColor()) }); _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
