2016-01-18 3 views
2

У меня есть демонстрационный проект PDFTron, а также имеет Booking.pdf в том же месте проекта на моем местном.Загрузите внешний файл PDF/xod в PDFTron

я пишу следующий код для загрузки PDF в PDFTron

<html> 
<head> 
    <script src="jquery-1.7.2.min.js"></script> 
    <script src="lib/WebViewer.js"></script> 

    <style> 
     #viewer { 
      width: 1024px; 
      height: 600px; 
     } 
    </style> 
</head> 
<body class="page-reader"> 
    <div id="viewer"></div> 
</body> 
<script> 

    $(function() { 
     var viewerElement = document.getElementById("viewer"); 
     var myWebViewer = new PDFTron.WebViewer({ 
      path: "lib", 
      type: "html5", 
      documentType: "pdf", 
      initialDoc: "Booking.pdf" 
     }, viewerElement); 
    }); 

</script> 
</html> 

Теперь вопрос, когда я пытаюсь загрузить PDF/XOD файл из локального каталога он работает нормально, Но предположим, что я хочу, чтобы получить PDF файл с другого сервера, например: http://serverURL/Booking.pdf, в то время я включаю путь сервера в initialDoc: «http://serverURL/Booking.pdf», то это дает мне ошибку.

Ошибка в сетевой ошибке или не найдена.

Как загрузить внешний pdf/xod в pdftron?

Я ссылался на следующие ссылки для решения проблемы, но я не могу разрешить эту ошибку.

http://www.pdftron.com/webviewer/demo/documentation.html

http://www.pdftron.com/webviewer/demo/doc/WebViewer_Developer_Guide.pdf

Пожалуйста, помогите мне решить эту проблему.

+0

Привет Дипак согласно документации initialDoc должен быть абсолютный путь initialDoc URL, путь к XOD документа для загрузки при запуске, рекомендуется использовать абсолютные пути. попробуйте другой вариант –

ответ

0

ИсходныйDoc не обязательно должен быть абсолютным путем, это может быть некоторый токен, например, что-то в вашем сеансе и т. Д. Что вы можете прочитать и получить двоичный файл. В моем случае asp.net Web-формы службы ASMX, я создаю один веб-метод с GET, все, что делает PDFViewere, делает HTTP GET с указанным значением intialDoc. Вам просто нужно, чтобы захватить как то:

[WebMethod(EnableSession = true)] 
[ScriptMethod(UseHttpGet = true)] 
public string GetFile(string token) 
{ 
    byte[] fileBinary = null;// Read file here from DB or Service. 

    if (fileBinary != null) 
    { 
     var response = HttpContext.Current.Response; 
     response.Clear(); 
     response.ContentType = "application/pdf"; 
     response.AddHeader("Content-Length", fileBinary.Length.ToString()); 
     response.OutputStream.Write(fileBinary, 0, fileBinary.Length); 
     response.Flush(); 
     response.End(); 
    } 
    //We need to return this for no apparent reason (PDFViewer get action need that). 
    return token; 
} 


$(function() { 
    var customData = { serviceUrl: 'services/PDFWebService.asmx', token: '<%=initialDoc.Value %>', isReadonly: '<%=IsReadonly?"yes":"no" %>' }; 
    var myWebViewer = new PDFTron.WebViewer({ 
     path: "Resources/js/PDFTron", 
     mobileRedirect: false, 
     stream: true, 
     config: 'Resources/js/PDFViewerConfig.js', 
     documentType: "pdf", 
     custom: JSON.stringify(customData), 
     l: '<%=LicenseKey%>', 
     initialDoc: customData.serviceUrl + '/GetFile?token=' + customData.token 
    }, document.getElementById('viewer')); 
}); 
Смежные вопросы