Signature plugin: digital signing

This commit is contained in:
Jakub Melka
2022-05-22 17:17:06 +02:00
parent aebed28c6d
commit 3d6954dc41
4 changed files with 241 additions and 53 deletions

View File

@@ -4542,6 +4542,31 @@ PDFObjectReference PDFDocumentBuilder::createFileSpecification(QString fileName)
}
PDFObjectReference PDFDocumentBuilder::createFormFieldSignature(QString fieldName,
PDFObjectReferenceVector kids,
PDFObjectReference signatureValue)
{
PDFObjectFactory objectBuilder;
objectBuilder.beginDictionary();
objectBuilder.beginDictionaryItem("FT");
objectBuilder << WrapName("Sig");
objectBuilder.endDictionaryItem();
objectBuilder.beginDictionaryItem("Kids");
objectBuilder << kids;
objectBuilder.endDictionaryItem();
objectBuilder.beginDictionaryItem("T");
objectBuilder << fieldName;
objectBuilder.endDictionaryItem();
objectBuilder.beginDictionaryItem("V");
objectBuilder << signatureValue;
objectBuilder.endDictionaryItem();
objectBuilder.endDictionary();
PDFObjectReference formFieldSignature = addObject(objectBuilder.takeObject());
return formFieldSignature;
}
PDFObjectReference PDFDocumentBuilder::createSignatureDictionary(QByteArray filter,
QByteArray subfilter,
QByteArray contents,
@@ -5075,6 +5100,14 @@ void PDFDocumentBuilder::setFormFieldValue(PDFObjectReference formField,
}
void PDFDocumentBuilder::setLanguage(QLocale locale)
{
PDFObjectFactory objectBuilder;
setLanguage(locale.name());
}
void PDFDocumentBuilder::setLanguage(QString language)
{
PDFObjectFactory objectBuilder;
@@ -5089,14 +5122,6 @@ void PDFDocumentBuilder::setLanguage(QString language)
}
void PDFDocumentBuilder::setLanguage(QLocale locale)
{
PDFObjectFactory objectBuilder;
setLanguage(locale.name());
}
void PDFDocumentBuilder::setOutline(PDFObjectReference outline)
{
PDFObjectFactory objectBuilder;

View File

@@ -1226,6 +1226,15 @@ public:
PDFObjectReference createFileSpecification(QString fileName);
/// Creates form field of type signature.
/// \param fieldName Field name
/// \param kids Kids of the signature field.
/// \param signatureValue Signature value
PDFObjectReference createFormFieldSignature(QString fieldName,
PDFObjectReferenceVector kids,
PDFObjectReference signatureValue);
/// Creates signature dictionary used for preparation in signing process. Can define parameters of the
/// signature.
/// \param filter Filter (for example, Adobe.PPKLite, Entrust.PPKEF, CiCi.SignIt, ...)
@@ -1441,6 +1450,11 @@ public:
PDFObject value);
/// Set document language.
/// \param locale Locale, from which is language determined
void setLanguage(QLocale locale);
/// Set document language.
/// \param language Document language. It should be a language identifier, as defined in ISO 639
/// and ISO 3166. For example, "en-US", where first two letter means language code (en =
@@ -1448,11 +1462,6 @@ public:
void setLanguage(QString language);
/// Set document language.
/// \param locale Locale, from which is language determined
void setLanguage(QLocale locale);
/// Set document outline.
/// \param outline Document outline root
void setOutline(PDFObjectReference outline);