динамический 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