Index: Scribus/scribus/pdflib_core.cpp =================================================================== --- Scribus/scribus/pdflib_core.cpp (revision 22789) +++ Scribus/scribus/pdflib_core.cpp (working copy) @@ -9044,11 +9044,36 @@ PutDoc("/Subtype /Link\n"); if (ite->annotation().ActionType() == Annotation::Action_GoTo) { + QString name = ite->getObjectAttribute(QString("ltarget")).value; + int ownpage = -1; + QString laction = QString("%1 %2 0"); + if(name != ""){ + ScribusDoc * sdoc = ScCore->primaryMainWindow()->doc; + PageItem * linked = sdoc->getItemFromName(name); + if(linked != nullptr){ + ownpage = linked->OwnPage; + ScPage * spage = sdoc->Pages->at(ownpage); + int poffx = spage->xOffset(); + int poffy = spage->yOffset(); + int lx = linked->xPos() - poffx; + int ly = spage->height()-(linked->yPos() - poffy); + laction = laction.arg(lx).arg(ly); + } + } + PutDoc("/Dest /"+NDnam+Pdf::toPdf(NDnum)+"\n"); PdfDest de; de.Name = NDnam+Pdf::toPdf(NDnum); - de.PageNr = ite->annotation().Ziel(); - de.Act = ite->annotation().Action(); + + if(ownpage == -1){ + de.PageNr = ite->annotation().Ziel(); + de.Act = ite->annotation().Action(); + } + else{ + de.PageNr = ownpage; + de.Act = laction; + } + NamedDest.append(de); NDnum++; }