diff --git a/PdfFile/SrcReader/PdfAnnot.cpp b/PdfFile/SrcReader/PdfAnnot.cpp index b1c3978320..cb8f90cc5c 100644 --- a/PdfFile/SrcReader/PdfAnnot.cpp +++ b/PdfFile/SrcReader/PdfAnnot.cpp @@ -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; } } diff --git a/PdfFile/SrcWriter/Document.cpp b/PdfFile/SrcWriter/Document.cpp index c4bd90466f..4d6322d906 100644 --- a/PdfFile/SrcWriter/Document.cpp +++ b/PdfFile/SrcWriter/Document.cpp @@ -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); diff --git a/PdfFile/SrcWriter/Field.h b/PdfFile/SrcWriter/Field.h index 5c11b57be4..ca2750a156 100644 --- a/PdfFile/SrcWriter/Field.h +++ b/PdfFile/SrcWriter/Field.h @@ -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; }