mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
Merge remote-tracking branch 'origin/develop' into feature/pdf-redact
This commit is contained in:
@ -1491,8 +1491,13 @@ CAnnotWidget::CAnnotWidget(PDFDoc* pdfDoc, AcroFormField* pField, int nStartRefI
|
||||
m_sT = DictLookupString(&oField, "T", 18);
|
||||
m_sFullName = m_sT;
|
||||
|
||||
// 20 - OO метаданные форм - OMetadata
|
||||
m_sOMetadata = DictLookupString(&oField, "OMetadata", 20);
|
||||
// 21 - MEOptions
|
||||
if (oField.dictLookup("MEOptions", &oObj)->isInt())
|
||||
{
|
||||
m_unFlags |= (1 << 21);
|
||||
m_unMEOptions = oObj.getInt();
|
||||
}
|
||||
oObj.free();
|
||||
|
||||
// Action - A
|
||||
Object oAction;
|
||||
@ -2411,7 +2416,7 @@ CAnnotStamp::CAnnotStamp(PDFDoc* pdfDoc, Object* oAnnotRef, int nPageIndex, int
|
||||
else
|
||||
sy = (m_pRect[3] - m_pRect[1]) / (formYMax - formYMin);
|
||||
double tx = -formXMin * sx + m_pRect[0];
|
||||
double ty = -formYMin * sy + m_pRect[1];
|
||||
double ty = -formYMin * sy - m_pRect[3] + m_dHeight;
|
||||
|
||||
m[0] *= sx;
|
||||
m[1] *= sy;
|
||||
@ -2882,6 +2887,14 @@ void CAnnots::getParents(PDFDoc* pdfDoc, Object* oFieldRef, int nStartRefID)
|
||||
}
|
||||
oObj.free();
|
||||
|
||||
// 11 - MEOptions
|
||||
if (oField.dictLookup("MEOptions", &oObj)->isInt())
|
||||
{
|
||||
pAnnotParent->unFlags |= (1 << 11);
|
||||
pAnnotParent->unMEOptions = oObj.getInt();
|
||||
}
|
||||
oObj.free();
|
||||
|
||||
m_arrParents.push_back(pAnnotParent);
|
||||
|
||||
Object oParentRefObj;
|
||||
@ -3317,6 +3330,16 @@ CAnnot::CAnnot(PDFDoc* pdfDoc, AcroFormField* pField, int nStartRefID)
|
||||
delete s;
|
||||
}
|
||||
oObj.free();
|
||||
|
||||
// 9 - OO метаданные форм - OMetadata
|
||||
if (pField->fieldLookup("OMetadata", &oObj)->isString())
|
||||
{
|
||||
m_unAFlags |= (1 << 9);
|
||||
TextString* s = new TextString(oObj.getString());
|
||||
m_sOMetadata = NSStringExt::CConverter::GetUtf8FromUTF32(s->getUnicode(), s->getLength());
|
||||
delete s;
|
||||
}
|
||||
oObj.free();
|
||||
}
|
||||
CAnnot::CAnnot(PDFDoc* pdfDoc, Object* oAnnotRef, int nPageIndex, int nStartRefID)
|
||||
{
|
||||
@ -3444,6 +3467,9 @@ CAnnot::CAnnot(PDFDoc* pdfDoc, Object* oAnnotRef, int nPageIndex, int nStartRefI
|
||||
}
|
||||
oObj.free();
|
||||
|
||||
// 9 - OO метаданные форм - OMetadata
|
||||
m_sOMetadata = DictLookupString(&oAnnot, "OMetadata", 9);
|
||||
|
||||
oAnnot.free();
|
||||
}
|
||||
CAnnot::~CAnnot()
|
||||
@ -3920,6 +3946,8 @@ void CAnnots::CAnnotParent::ToWASM(NSWasm::CData& oRes)
|
||||
oRes.AddInt(unMaxLen);
|
||||
if (unFlags & (1 << 10))
|
||||
oRes.WriteString(sTU);
|
||||
if (unFlags & (1 << 11))
|
||||
oRes.AddInt(unMEOptions);
|
||||
}
|
||||
void CAnnot::ToWASM(NSWasm::CData& oRes)
|
||||
{
|
||||
@ -3950,6 +3978,8 @@ void CAnnot::ToWASM(NSWasm::CData& oRes)
|
||||
oRes.WriteString(m_sM);
|
||||
if (m_unAFlags & (1 << 7))
|
||||
oRes.WriteString(m_sOUserID);
|
||||
if (m_unAFlags & (1 << 9))
|
||||
oRes.WriteString(m_sOMetadata);
|
||||
}
|
||||
void CAnnot::CBorderType::ToWASM(NSWasm::CData& oRes)
|
||||
{
|
||||
@ -4015,8 +4045,8 @@ void CAnnotWidget::ToWASM(NSWasm::CData& oRes)
|
||||
oRes.WriteString(m_sT);
|
||||
if (m_unFlags & (1 << 19))
|
||||
oRes.WriteString(m_sButtonFontName);
|
||||
if (m_unFlags & (1 << 20))
|
||||
oRes.WriteString(m_sOMetadata);
|
||||
if (m_unFlags & (1 << 21))
|
||||
oRes.AddInt(m_unMEOptions);
|
||||
oRes.AddInt(m_arrAction.size());
|
||||
for (int i = 0; i < m_arrAction.size(); ++i)
|
||||
{
|
||||
|
||||
@ -204,6 +204,7 @@ private:
|
||||
std::string m_sNM; // Уникальное имя
|
||||
std::string m_sM; // Дата последнего изменения
|
||||
std::string m_sOUserID; // OO User ID
|
||||
std::string m_sOMetadata; // OO метаданные формы
|
||||
std::vector<double> m_arrC; // Специальный цвет
|
||||
CBorderType* m_pBorder; // Граница
|
||||
};
|
||||
@ -241,6 +242,7 @@ private:
|
||||
unsigned int m_unR; // Поворот аннотации относительно страницы - R
|
||||
unsigned int m_unRefNumParent; // Номер ссылки на объект родителя
|
||||
unsigned int m_unFontStyle; // Стиль шрифта - из DA
|
||||
unsigned int m_unMEOptions; // MEOptions
|
||||
double m_dFontSize; // Размер шрифта - из DA
|
||||
std::vector<double> m_arrTC; // Цвет текста - из DA
|
||||
std::vector<double> m_arrBC; // Цвет границ - BC
|
||||
@ -255,7 +257,6 @@ private:
|
||||
std::string m_sFontKey; // Уникальный идентификатор шрифта
|
||||
std::string m_sFullName; // Полное имя поля
|
||||
std::string m_sFontName; // Имя шрифта - из DA
|
||||
std::string m_sOMetadata; // OO метаданные формы
|
||||
std::string m_sActualFontName; // Имя замененного шрифта
|
||||
std::string m_sButtonFontName; // Имя шрифта кнопки
|
||||
};
|
||||
@ -661,6 +662,7 @@ private:
|
||||
unsigned int unRefNum; // Номер ссылки на объект
|
||||
unsigned int unMaxLen; // Ограничение на максимальную длину text field
|
||||
unsigned int unFieldFlag; // Флаг Ff
|
||||
unsigned int unMEOptions; // MEOptions
|
||||
unsigned int unRefNumParent; // Номер ссылки на объект родителя
|
||||
std::vector<int> arrI;
|
||||
std::vector<std::string> arrV;
|
||||
|
||||
Reference in New Issue
Block a user