Fix ExportValue from parent

This commit is contained in:
Svetlana Kulikova
2025-03-28 17:31:56 +03:00
parent 723e4713fd
commit 29c8e185ca
3 changed files with 6 additions and 31 deletions

View File

@ -1180,7 +1180,7 @@ CAnnotWidgetBtn::CAnnotWidgetBtn(PDFDoc* pdfDoc, AcroFormField* pField) : CAnnot
// 14 - Имя вкл состояния - AP - N - Yes
Object oNorm;
if (pField->fieldLookup("AP", &oObj)->isDict() && oObj.dictLookup("N", &oNorm)->isDict())
if (pField->fieldLookup("AP", &oObj)->isDict() && oObj.dictLookup("N", &oNorm)->isDict() && oOpt.isNull())
{
for (int j = 0, nNormLength = oNorm.dictGetLength(); j < nNormLength; ++j)
{
@ -1189,36 +1189,6 @@ CAnnotWidgetBtn::CAnnotWidgetBtn(PDFDoc* pdfDoc, AcroFormField* pField) : CAnnot
{
m_unFlags |= (1 << 14);
m_sAP_N_Yes = sNormName;
int nOptI;
if (oOpt.isArray() && isdigit(sNormName[0]) && (nOptI = std::stoi(sNormName)) >= 0 && nOptI < oOpt.arrayGetLength())
{
Object oOptJ;
if (!oOpt.arrayGet(nOptI, &oOptJ) || !(oOptJ.isString() || oOptJ.isArray()))
{
oOptJ.free();
break;
}
if (oOptJ.isString())
{
TextString* s = new TextString(oOptJ.getString());
m_sAP_N_Yes = NSStringExt::CConverter::GetUtf8FromUTF32(s->getUnicode(), s->getLength());
delete s;
}
else if (oOptJ.isArray() && oOptJ.arrayGetLength() > 0)
{
Object oOptJ2;
if (oOptJ.arrayGet(0, &oOptJ2)->isString())
{
TextString* s = new TextString(oOptJ2.getString());
m_sAP_N_Yes = NSStringExt::CConverter::GetUtf8FromUTF32(s->getUnicode(), s->getLength());
delete s;
}
oOptJ2.free();
}
oOptJ.free();
}
break;
}
}

View File

@ -686,6 +686,7 @@ namespace PdfWriter
CWidgetAnnotation* pWidget = new CPushButtonWidget(m_pXref);
m_pXref->Add(pWidget);
pWidget->Add("FT", "Btn");
CArrayObject* ppFields = (CArrayObject*)m_pAcroForm->Get("Fields");
ppFields->Add(pWidget);
@ -698,6 +699,7 @@ namespace PdfWriter
CWidgetAnnotation* pWidget = new CCheckBoxWidget(m_pXref);
m_pXref->Add(pWidget);
pWidget->Add("FT", "Btn");
CArrayObject* ppFields = (CArrayObject*)m_pAcroForm->Get("Fields");
ppFields->Add(pWidget);
@ -723,6 +725,7 @@ namespace PdfWriter
CAnnotation* pWidget = new CChoiceWidget(m_pXref);
m_pXref->Add(pWidget);
pWidget->Add("FT", "Ch");
CArrayObject* ppFields = (CArrayObject*)m_pAcroForm->Get("Fields");
ppFields->Add(pWidget);

View File

@ -418,6 +418,8 @@ namespace PdfWriter
void DrawTextUpArrow(const std::string& sColor);
void DrawTextUpLeftArrow(const std::string& sColor);
void DrawRadiobuttonCircle();
CStream* GetStream() const { return m_pStream; }
CFontDict* GetFont() { return m_pFont; }