日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

快速入門

文檔預覽V1將輸入文檔轉換為VECTOR向量格式后,通過對接智能媒體管理提供的前端渲染引擎,實現更易用、功能更強大、定制化的文檔預覽效果。文檔預覽時支持復制文檔中的文字,縮放文檔內容不失真,自定義廣告等功能。

重要

此文檔已不再維護,建議您使用新版智能媒體管理。

  • 關于智能媒體管理新版與舊版的對比,請參見新舊版本使用指引。

  • 關于如何快速使用新版智能媒體管理文檔處理功能,請參見快速入門。

將輸入文檔轉換為JPG、PNG等格式時,您可以直接搭建一個在線文檔預覽系統進行文檔預覽。

預覽原理

將輸入文檔轉換為VECTOR向量格式后,通過對接智能媒體管理提供的前端渲染引擎實現文檔預覽。

a1

準備工作

  1. 設置跨域訪問規則。

    由于訪問的OSS Bucket域名與預覽引擎的域名不同,因此請通過OSS管理控制臺將預覽引擎域名添加到存儲轉換后文檔的OSS Bucket的跨域訪問列表中。更多信息,請參見設置跨域資源共享。設置跨域訪問規則的具體操作步驟如下:

    1. 登錄OSS管理控制臺后,單擊目標Bucket名稱,選擇權限管理 > 跨域設置

    2. 跨域設置區域單擊設置。

    3. 單擊創建規則,配置跨域規則。

      配置跨域規則時,來源需要配置為*.imm.aliyuncs.com,允許Methods選擇GETHEAD,其他參數請根據需要填寫。

      figimmcros1
    4. 單擊確定

  2. 獲取預覽文件的臨時訪問權限。

    為了數據安全性,預覽引擎只支持從私有的OSS Bucket中讀取文檔。當OSS Bucket設置為私有時,此時需要通過OSS STS獲取該文件臨時的訪問權限,獲取臨時訪問憑證后傳遞給預覽引擎,預覽引擎通過憑證獲取相關權限,實現文檔預覽。

    臨時訪問憑證包括臨時訪問密鑰(AccessKey ID和AccessKey Secret)和安全令牌(SecurityToken),關于獲取臨時訪問權限的具體操作,請參見使用STS臨時訪問憑證訪問OSS。

    說明

    由于預覽引擎需要從用戶的OSS Bucket讀取轉換后的文檔,受用戶OSS Bucket的讀取權限影響。OSS權限的更多信息,請參見了解OSS讀寫權限控制。

  3. 上傳原始文檔到對象存儲OSS中。具體操作,請參見控制臺上傳文件。

  4. 調用智能媒體管理的CreateOfficeConversionTask接口,將原始文檔轉換為VECTOR向量格式輸出到指定的OSS目錄。

預覽方式對比

智能媒體管理的預覽引擎支持URL參數預覽和JavaScript API預覽兩種方式,兩種預覽方式的對比如下,請根據應用場景選擇合適的預覽方式,推薦使用JavaScript API預覽方式。

說明

預覽引擎支持的瀏覽器包括Internet Explorer 10+、Microsoft Edge、Google Chrome、Firefox、Safari和Opera。

預覽方式

描述

URL參數預覽

通過URL QueryString將必要的參數傳遞給預覽引擎,預覽引擎獲取相關參數后在頁面中展示文檔。

此方式操作快捷方便,但是相關臨時授權憑證會暴露在iframe的URL地址中。當用戶的OSS Bucket為私有讀并且簽名有效期內時,只要把對應的URL從iframe src屬性中復制出來即可分享給別人,對安全性要求較高的業務不建議使用此方式。

JavaScript API預覽

通過postMessage將必要參數發送給預覽引擎頁并完成初始化工作。

JavaScript API預覽具有更高的安全性,并且支持全屏預覽、文字和演示頁碼跳轉控制、文字和演示預覽界面UI自定義等高級功能配置。更多信息,請參見JavaScript API預覽高級功能配置。

此方式采用隱式傳遞參數,安全性較高,但是需要部分額外的前端編程工作。由于iframe的URL地址中不包含簽名,因此即使復制了URL地址也無法預覽。

說明

postMessage瀏覽器兼容的更多信息,請參見postMessage瀏覽器兼容性

URL參數預覽

您可以通過完整的URL在瀏覽器中直接預覽文檔,也可以將智能媒體管理提供的預覽引擎嵌入到頁面或者Web App中進行文檔預覽。

  • 通過完整的URL預覽文檔

    完整的預覽URL格式如下所示:

    https://preview.imm.aliyuncs.com/index.html?url=[url]&accessKeyId=[accessKeyId]&accessKeySecret=[accessKeySecret]&stsToken=[stsToken]&bucket=[bucket]&region=[region]           

    其中https://preview.imm.aliyuncs.com/index.html為智能媒體管理服務提供的預覽引擎地址,無法直接訪問,問號(?)后的參數為預覽文檔的信息,如果未提供必填參數,則會預覽失敗。

    • 參數

      參數

      類型

      是否必填

      描述

      url

      String

      文檔轉換后的向量文件所在OSS目錄。

      如果提交文檔轉換任務的TgtUri為oss://your-bucket/paxos.pptx/output,則URL的格式為https://your-bucket.oss-{region}.aliyuncs.com/paxos.pptx/output。

      重要

      填寫時無需在OSS目錄結尾加/。

      accessKeyId

      String

      從STS獲取的訪問OSS的訪問密鑰標識(AccessKeyId)。

      accessKeySecret

      String

      從STS獲取的訪問OSS的訪問密鑰(AccessKeySecret)。

      stsToken

      String

      從STS獲取訪問OSS的安全令牌(SecurityToken)后,對SecurityToken進行編碼得到的結果。編碼的具體操作,請參見RPC 調用機制。

      region

      String

      OSS Bucket所在地域,例如oss-cn-shanghai。

      重要

      請注意添加OSS前綴。

      bucket

      String

      文檔轉換后的向量文件所在OSS Bucket的名稱,例如your-bucket。

      endpoint

      String

      使用與OSS Bucket綁定的用戶域名進行預覽,使用此參數時無需傳遞bucket和region參數。

      pageIndex

      Int

      從指定的頁碼開始預覽。

      serverTime

      Int

      服務器當前時間,用于校準本地OSS簽名時的時間,避免本地與服務器時差大于15分鐘導致簽名失敗。單位為秒。

      expires

      Int

      文檔預覽的有效時間。默認值為1800,單位為秒。

    • 示例

      https://preview.imm.aliyuncs.com/index.html
      ?url=https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/paxos.pptx/output   //文檔轉換后的向量文件所在OSS目錄。請注意無需在output后加/。
      &accessKeyId=STS.AAAA    //從STS獲取的AccessKey ID。請注意參數的access小寫。
      &accessKeySecret=BBBB    //從STS獲取的AccessKey Secret。請注意參數的access小寫。
      &stsToken=CCCC    //CCCC是編碼從STS獲取的SecurityToken后得到的結果,從STS獲取的SecurityToken不能直接使用。
      &region=oss-cn-shanghai    //OSS Bucket所在地域,請注意添加OSS前綴。
      &bucket=bucket-name    //文檔轉換后的向量文件所在OSS Bucket的名稱。
      &...
  • 將預覽引擎嵌入到頁面或者Web App中預覽文檔

    將智能媒體管理提供的預覽引擎preview.imm.aliyuncs.com/index.html?url=[TgtUri]通過HTML的<iframe>標簽嵌入到頁面或者Web App中進行文檔預覽。其中TgtUri為預覽文件在OSS的http(s)路徑,需要通過QueryString參數傳入,如下圖所示。iframe

JavaScript API預覽

為便于描述,以下稱阿里云的iframe頁面為子頁面,嵌入該iframe的接入方頁面稱為父頁面。

  1. 子頁面發送preview.ready事件。

  2. 父頁面接收preview.ready事件后,發送preview.init事件以及傳遞初始化參數。

    父頁面向子頁面發送消息,通過sendMessage完成,調用格式為sendMessage(action, data)。

    參數

    類型

    是否必填

    描述

    action

    String

    事件名稱,包括preview.init和setConfig。

    • preview.init:父頁面傳遞初始化子頁面參數。

    • setConfig:父頁面設置子頁面相關的渲染參數。

    data

    Object

    事件參數。

    • 關于preview.init事件中的參數說明,請參見參數說明。

    • setConfig事件使用setData傳遞參數變量,函數中的變量以window.iframeData形式在子頁面中訪問,可多次調用。支持功能的更多信息,請參見JavaScript API預覽高級功能配置。

      sendMessage("setData", {
        //需要在子頁面中用到的數據。
      });
      
        //注意sendMessage封裝了postMessage,詳細操作請參見示例代碼。                    
  3. 子頁面接收preview.init事件及其參數,并根據參數初始化渲染引擎。

  • 參數

    preview.init事件中父頁面傳遞初始化子頁面參數,詳細參數說明請參見下表。

    參數

    類型

    是否必填

    描述

    url

    String

    文檔轉換后的向量文件所在OSS目錄。

    如果提交文檔轉換任務的TgtUri為oss://your-bucket/paxos.pptx/output,則URL的格式為https://your-bucket.oss-{region}.aliyuncs.com/paxos.pptx/output。

    重要

    填寫時無需在OSS目錄結尾加/。

    region

    String

    OSS Bucket所在地域,例如oss-cn-shanghai。

    重要

    請注意添加OSS前綴。

    bucket

    String

    文檔轉換后的向量文件所在OSS Bucket的名稱,例如your-bucket。

    accessKeyId

    String

    從STS獲取的訪問OSS的訪問密鑰標識(AccessKey ID)。

    accessKeySecret

    String

    從STS獲取的訪問OSS的訪問密鑰(AccessKey Secret)。

    stsToken

    String

    從STS獲取的訪問OSS的安全令牌(SecurityToken)。

    endpoint

    String

    使用與OSS Bucket綁定的用戶域名進行預覽,使用此參數時無需傳遞bucket和region參數。

    copy

    Int

    是否允許文字拷貝,可選值如下:

    • 0(默認值):禁止文字拷貝。

    • 1:允許文字拷貝。

    wmType

    Int

    水印類型,可選值如下:

    • 0(默認值):關閉水印。

    • 1:文字水印。

    • 2:圖片水印。

    wmValue

    String

    水印值。

    • 當wmType設置為1時,填寫水印內容。

    • 當wmType設置為2時,填寫圖片水印地址。

    wmColor

    String

    水印顏色的RGBA值。默認值為rgba(192, 192, 192, 0.6)。

    wmRotate

    Float

    水印角度。默認值為-Math.PI/4。

    wmFont

    String

    水印字體。默認值為bold 20px Serif。

    wmHeight

    Int

    水印高度。默認值為170,單位為px。

    wmWidth

    Int

    水印寬度。默認值為195,單位為px。

  • 示例

    <html>
      <head>
        <meta charset="UTF-8">
        <!-- 建議禁用外框瀏覽器自帶的縮放 -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,user-scalable=no">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title></title>
        <style>
          * {
            box-sizing: border-box;
          }
          html, body {
            padding: 0;
            margin: 0;
            height: 100%;
            /* 防止雙擊縮放 */
            touch-action: manipulation;
          }
          .main {
            display: flex;
            flex-direction: column;
            height: 100%;
          }
          #aliyunPreview {
            flex: 1;
          }
        </style>
        <script type="text/javascript" charset="utf-8">
          function json2str(obj) {
            return JSON.stringify(obj, function(key, val) {
              if (typeof val === 'function') {
                val = val.toString();
              }
              return val;
            });
          };
    
          window.sendMessage = function(action, data) {
            var iframe = document.getElementById('aliyunPreview');
            iframe.contentWindow.postMessage(json2str({ action: action, data: data }), '*');
          };
    
          window.addEventListener('message', function(e) {
            try {
              var res = JSON.parse(e.data);
            } catch(err) {
              return;
            }
    
            switch (res.action) {
              case 'preview.ready':
                window.sendMessage('preview.init', {
                  url: '',
                  region: '',
                  bucket: '',
                  accessKeyId: '',
                  accessKeySecret: '',
                  stsToken: ''
                });
                break;
            }
          }, false);
    
          //禁止雙指縮放手勢。
          document.addEventListener('gesturestart', function (e) {
            e.preventDefault();
          });
        </script>
      </head>
      <body>
        <iframe
          allowfullscreen
          id="aliyunPreview"
          frameborder="0"
          src="https://preview.imm.aliyuncs.com/index.html"
        ></iframe>
      </body>
    </html>
                

錯誤碼參考

錯誤碼

描述

-1002

無效的AccessKey ID。

-1003

無權限訪問該文檔。

-1004

無效的STS Token。

-1005

STS Token已過期。

-1006

簽名錯誤。

-1007

OSS Bucket未配置跨域。

-1008

Refers配置錯誤。

-1100

其他原因造成的錯誤。

常見問題處理

如下方案僅為建議的通用解決方案,不同的應用場景請根據實際分析和處理問題。

常見問題

解決方案

iframe內部預覽界面被遮擋問題

  • 禁止iframe滾動,設置iframe屬性scrolling="no"(預覽界面實現了局部滾動,可以放心把該屬性設置為no)。

  • 通過flex布局來給iframe彈性高度或者通過js計算設置iframe一個具體高度值,不能用百分比。

父級窗口縮放導致預覽界面變形問題

遇到此問題則需要父級窗口禁用瀏覽器自帶的縮放功能。

  • Android平臺

    通過設置viewport的user-scalable屬性來禁止父級窗口縮放,示例代碼如下:

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">                            
  • iOS平臺

    禁用雙擊縮放手勢,示例代碼如下:

    body {
     touch-action: manipulation;
    }                            

    禁止雙指縮放手勢,示例代碼如下:

    document.addEventListener('gesturestart', function(e) {
     e.preventDefault();
    });                           

PPT預覽全屏按鈕在某些瀏覽器中消失

只需在iframe上添加allowfullscreen屬性即可修復,添加此屬性后PPT文件可支持全屏預覽。

IE下通過location.href | window.open打開預覽URL時,如果URL中包含復制功能參數&copy=1,則會被當做HTML字符實體解析為版權符號?=1,導致預覽不成功

由于IE的經典bug導致此問題,此時有如下兩種解決方案:

  • 方式一:使用IE瀏覽器時在跳轉前把&轉義為HTML字符實體&amp;

  • 方式二:將&copy=1的位置調整為緊跟URL的第一個參數,例如?copy=1&...即可解決,推薦使用此方式。