динамический URL-адрес adobe-dc-view

Я хочу получить файл из кода на C # с Adobe dc view, и я не знаю, как это сделать, и не нахожу примеров в Интернете.

Если кто-то может помочь, вот код

      <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">  
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div id="adobe-dc-view"></div>
<script src="https://documentcloud.adobe.com/view-sdk/main.js"></script>
<script type="text/javascript">
    document.addEventListener("adobe_dc_view_sdk.ready", function () {
        var adobeDCView = new AdobeDC.View({ clientId: "xxxxxxxxxx", divId: "adobe-dc-view" });
        adobeDCView.previewFile({
            content: { location: { url: "myfile.pdf" } },
            metaData: { fileName: "myfile.pdf" }
        }, {
showAnnotationTools: false, showLeftHandPanel: false, showDownloadPDF: false,showPrintPDF: false });
    });
</script>
</asp:Content>

1 ответ

Решение

Вместо использования content.location.url передайте содержимое как Promise, которое разрешается в ByteArray. Попросите ваше приложение C# вернуть Blob-объект на HTML-страницу, а затем загрузить его в Embed API (view-sdk) через Promise.

      adobeDCView.previewFile(
      {
        content: { promise: Promise.resolve(blob.arrayBuffer()) },
        metaData: { fileName: url.split("/").slice(-1)[0] }
      },

Полный код находится на CodePen

Другие вопросы по тегам