Found the issue myself, make sure to use a reference here:
auto& dict = anno->GetObject()->GetDictionary();
On 06/14/2017 04:18 PM, Florian Hänel wrote:
> With the following code I am trying to update Ink Annotations by first
> removing them, then writing them with new InkList data.
>
> However, when I read the file back, the InkList key is missing in the
> dictionary - what am I missing?
>
>
> PdfDocumentData::PdfSaveResult PdfDocumentData::saveAs(QString fileName)
> {
> QByteArray fn = fileName.toLocal8Bit();
> try {
> qDebug()<<"saving"<<fileName;
> for(int pn = 0; pn < m_doc2->GetPageCount(); pn++) {
> qDebug()<<"updating page"<<pn;
> auto page = m_doc2->GetPage(pn);
> for(int an = page->GetNumAnnots() - 1; an >= 0; an--) {
> auto anno = page->GetAnnotation(an);
> if(anno->GetType() == PoDoFo::ePdfAnnotation_Ink) {
> page->DeleteAnnotation(an);
> }
> }
> if(m_annotations.contains(pn)) {
> QList<QList<QPointF> >& annots = m_annotations[pn];
> for(int an = 0; an < annots.size(); an++) {
> qDebug()<<"writing annotation"<<an;
> QList<QPointF>& str = annots[an];
> PoDoFo::PdfRect rect(0,100,100,0); //FIXME
> auto anno =
> page->CreateAnnotation(PoDoFo::ePdfAnnotation_Ink, rect);
> auto dict = anno->GetObject()->GetDictionary();
> PoDoFo::PdfArray points;
> for (int p=0; p<str.size(); p++) {
> points.push_back(str[p].x());
> points.push_back(str[p].y());
> }
> PoDoFo::PdfArray array;
> array.push_back(points); // InkList is Array of Array of
> Points
>
> dict.AddKey("InkList", array);
>
> }
> }
> }
> m_doc2->Write(fn.data());
> } catch(...) {
> qDebug()<<"exception saving"<<fileName;
> return SaveError;
> }
> return SaveSuccess;
> }
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Podofo-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/podofo-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Podofo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/podofo-users