将外部PDF / xod文件加载到PDFTron中

时间:2016-01-18 11:33:55

标签: javascript html5 pdftron

我有PDFTron的演示项目,并且在我当地的同一项目位置也有Booking.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

请帮我解决此问题。

1 个答案:

答案 0 :(得分:1)

InitialDoc不一定是绝对路径,它可以是某些令牌,即会话中的某些内容等。您可以读取并获取文件二进制文件。在我的情况下,asp.net Web-forms ASMX服务,我使用GET创建一个Web方法,所有PDFViewere都使用指定的intialDoc值进行HTTP GET。你只需要像那样捕捉:

[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'));
});