/* http://www.cgsoso.com/forum-211-1.html CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源! CGSOSO 主打游戏开发,影视设计等CG资源素材。 插件如若商用,请务必官网购买! daily assets update for try. U should buy the asset from home store if u use it in your project! */ using System.IO; namespace Paroxe.PdfRenderer { #if !UNITY_WEBGL /// /// Provides default action handling implementation. /// public static class PDFActionHandlerHelper { public static void ExecuteAction(IPDFDeviceActionHandler actionHandler, IPDFDevice device, PDFAction action) { if (action != null) { PDFAction.ActionType type = action.GetActionType(); switch (type) { case PDFAction.ActionType.Unsupported: break; case PDFAction.ActionType.GoTo: PDFDest dest = action.GetDest(); actionHandler.HandleGotoAction(device, dest.PageIndex); break; case PDFAction.ActionType.RemoteGoTo: string resolvedFilePath = actionHandler.HandleRemoteGotoActionPathResolving(device, action.GetFilePath()); #if !((UNITY_4_6 || UNITY_4_7) && UNITY_WINRT) if (File.Exists(resolvedFilePath)) { string password = actionHandler.HandleRemoteGotoActionPasswordResolving(device, resolvedFilePath); PDFDocument newDocument = new PDFDocument(resolvedFilePath, password); if (newDocument.IsValid) actionHandler.HandleRemoteGotoActionResolved(device, newDocument, action.GetDest().PageIndex); else actionHandler.HandleRemoteGotoActionUnresolved(device, resolvedFilePath); } else #endif actionHandler.HandleRemoteGotoActionUnresolved(device, resolvedFilePath); break; case PDFAction.ActionType.Uri: actionHandler.HandleUriAction(device, action.GetURIPath()); break; case PDFAction.ActionType.Launch: actionHandler.HandleLaunchAction(device, action.GetFilePath()); break; } } } public static void ExecuteBookmarkAction(IPDFDevice device, PDFBookmark bookmark) { if (device.BookmarksActionHandler != null) { PDFDest dest = bookmark.GetDest(); if (dest != null) { device.BookmarksActionHandler.HandleGotoAction(device, dest.PageIndex); } else { PDFAction action = bookmark.GetAction(); if (action != null) ExecuteAction(device.BookmarksActionHandler, device, action); } } } public static void ExecuteLinkAction(IPDFDevice device, PDFLink link) { if (device.LinksActionHandler != null) { PDFDest dest = link.GetDest(); if (dest != null) { device.LinksActionHandler.HandleGotoAction(device, dest.PageIndex); } else { PDFAction action = link.GetAction(); if (action != null) ExecuteAction(device.LinksActionHandler, device, action); } } } } #endif }