Bookmark Destination

Hi,


We are trying to go through all bookmark present in a PDF Document and Verify their action,
I have attached a sample PDF document with 3 bookmarks present, where we are getting bookmark Action as null for 2 bookmarks. but, bookmark Destination will have some value.

We are handling the above scenario but using code as below:

private void ExtractBookmarkInformation(OutlineItemCollection pdbmk)
{
PdfAction action = pdbmk.Action;
if(action != null)
{
}
else if(pdbmk.Destination != null )
{
}
}

For attached PDF document we notice following issues,
1. The Bookmark action is reported as null in Aspose, but actually it is not null when we verify in Adobe (correct me if I am wrong).

2. Also from the above code (in else part) for the same PDF Bookmark checking the destination (if(pdbmk.Destination != null )) is taking very long time when we are navigating through hundreds of bookmarks.

The good thing is Aspose is doing very good job in Performance compared to other competitors except the above performance issue.

Is there any alternative to overcome this performance problem.

Thanks in Advance.


Hi Chenna,


Thanks for contacting support.

Can you please share your complete code snippet as I am unable to replicate the issues when using latest release of Aspose.Pdf for .NET 10.5.0. We are sorry for this inconvenience.

Hi,


We prepared Demo project and instructions to reproduce the issue and attached them.

The following are the details of attached 3 files,
1. Acuta Bookmark Null Details.docx : Contains instructions to reproduce the issue.
2. BookmarkAction.zip : Demo C# source code project
3. Sample.pdf : Sample PDF document to use to reproduce the issue.


Thanks

Hi Chenna,


Thanks for sharing the resource files.

I
have tested the scenario and I am able to reproduce the same problem. For the
sake of correction, I have logged it in our issue tracking system as
PDFNEWNET-39012. We
will investigate this issue in details and will keep you updated on the status
of a correction. <o:p></o:p>

We apologize for your inconvenience.

Hi Nayyer Shahbaz,


Any update on the issue (Issue ID: PDFNEWNET-39012)?
We verified this issue in last release of Aspose.Pdf for .NET v10.6.0 (Released on 13-Jul-2015) and the issue is still exists. This issue is very critical for us now. When can I expect this issue will be resolved?
Or Do I have any workaround for this issue.


Thanks

Chenna Basappa C

Hi Cheena,


Thanks for your inquiry. I am afraid we noticed your reported issue recently and yet it is pending for the investigation in the queue with other issues, already under investigation/resolution. We can not share an ETA, we will be in a good position to share an ETA as soon as our team completes its analysis. We have shared your concern with our product team and will keep you updated about the issue resolution progress within this forum thread.

We are sorry for the inconvenience caused.

Best Regards,

Hi Nayyer Shahbaz,

We did not see the Issue ID: PDFNEWNET-39012 resolved in "Aspose.Pdf for .NET 10.7.0". Can I know when this will be resolved? This is very critical for us now.

Thanks

Chenna Basappa C

Hi Cheena,


Thanks for your feedback. I am afraid as your issue is still not resolved so it was not included in 10.7.0 release notes. You issue is still pending for investigation in the queue. Currently product team is busy to resolve other issues, reported earlier. We will notify you as soon as we made some significant progress towards issue resolution.

We are sorry for the inconvenience caused.


Best Regards,

Hi Cheena,


Thanks for your patience. Customer’s document contains Action for 1st bookmark, but other bookmarks contain Destinations. Thus customer should check also Destination property.

private void
itratethroughBookmarks(OutlineItemCollection
outlineItem)<o:p></o:p>

{

Aspose.Pdf.InteractiveFeatures.PdfAction action = outlineItem.Action;

IAppointment dest = outlineItem.Destination;

if (action != null)

{

System.Console.WriteLine("Action: " + outlineItem.Title + " : " + action.GetType().Name + "\n");

}

else if (dest != null)

{

if (dest is XYZExplicitDestination)

{

System.Console.WriteLine("XYZ Destination: " + (dest as XYZExplicitDestination).Left + " " + (dest as XYZExplicitDestination).Top + " " + (dest as XYZExplicitDestination).Zoom + " " + (dest as XYZExplicitDestination).Page.Number);

}

System.Console.WriteLine("Destination: ");

}

else

{

System.Console.WriteLine(outlineItem.Title + " : null" + "\n");

}

if (outlineItem.Count > 0)

{

foreach (OutlineItemCollection outlinechild in outlineItem)

{

itratethroughBookmarks(outlinechild);

}

}

}

Please feel free to contact us for any further assistance.


Best Regards,

Hi Talil Ashmed,

Thank You for your Co-Operation, This work fine now. There is little performance degradation when we use IAppointment dest = outlineItem.Destination; , But this works fine now.

Thanks & Regards

Chenna Basappa C

Hi Chenna,


Thanks for your feedback. It is good to know that the shared solution worked for you. Moreover in reference to IAppointment, it is obvious it will add little time as now we need to check the destination of each bookmark for processing. However if you are facing some big delay then please share your sample document and details here, so we will investigate it and will share our findings accordingly.

Please feel free to contact us for any further assistance.

Best Regards,