中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將SAP Document Builder的word控件設置成只讀模式

發布時間:2021-12-29 19:29:14 來源:億速云 閱讀:165 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關怎么將SAP Document Builder的word控件設置成只讀模式,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

最近我正在從事一個客戶項目,客戶的一個要求是他們不希望word文檔在word控件中可編輯。

這意味著工具欄中的所有按鈕和菜單都應該被禁用。

怎么將SAP Document Builder的word控件設置成只讀模式

image

The first idea comes to my mind is the flag “enableReadWrite“.

怎么將SAP Document Builder的word控件設置成只讀模式

image

As documented in  sap help,it can fulfill my help but unfortunately it is deprecated. Regardless of this warning I have a try and found it does not work indeed.

怎么將SAP Document Builder的word控件設置成只讀模式

然后我推測,如果上傳的文檔是只讀的,那么工具欄肯定會被禁用。因此,問題變成了如何在上傳過程中將文檔標記為只讀。

自word 2007以來,MS office的格式遵循所謂的“Open office”協議,其規范可在此處找到。

如果將文件類型擴展名從更改為。docx到。使用WinRAR壓縮并打開它,您會發現該文檔實際上是由多個單個文件組成的包(在SAP internal中稱為文檔部分)。可編輯性由文件設置控制。xml。

怎么將SAP Document Builder的word控件設置成只讀模式

如果你不知道確切的語法,就用谷歌搜索。我在谷歌的解釋中使用了:

現在任務非常簡單,只需在文檔源代碼中添加必要的xml標記即可。您不需要手動解析文檔源代碼,因為SAP已經完成了這項工作。您可以重用標準類CL_DOCX_文檔。

由于我需要在“設置”節點中插入文檔保護節點,因此為此編寫了一個簡單的轉換。魔術在第18行和第21行之間。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word"xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" mc:Ignorable="w14" version="1.0">
  <xsl:output encoding="UTF-8" indent="no" method="xml" omit-xml-declaration="no" version="1.0"/>
  <!-- Match everything all nodes and attributes -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="w:settings">
    <xsl:element name="w:settings">
      <xsl:for-each select="@*">
        <xsl:copy/>
      </xsl:for-each>
      <xsl:element name="w:documentProtection">
        <xsl:attribute name="w:edit">readOnly</xsl:attribute>
        <xsl:attribute name="w:enforcement">1</xsl:attribute>
      </xsl:element>
      <xsl:copy-of select="./*"/>
    </xsl:element>
  </xsl:template></xsl:stylesheet>

and find a proper place to call the transformation:

 DATA: lr_element   TYPE REF TO if_wd_context_element,
         lv_file_data TYPE xstring,
         lv_ret       TYPE i,
         lx_temp      TYPE xstring,
         lv_msg       TYPE string,
         lt_parms     TYPE /ipro/tt_key_value_pair,
         ls_parm      LIKE LINE OF lt_parms.
   lr_element = me->wd_context->get_element( ).
   CHECK lr_element IS NOT INITIAL.
   lr_element->get_attribute( EXPORTING name = 'BINARY' IMPORTING value = lv_file_data ).
   DATA(lo_docx) = cl_docx_document=>load_document( lv_file_data  ).
   DATA(lo_main_part) = lo_docx->get_maindocumentpart( ).
   DATA(lo_docx_settings) = lo_main_part->get_documentsettingspart( ).
   DATA(lx_settings) = lo_docx_settings->get_data( ).
   /ipro/cl_docx_utilities=>transform( EXPORTING  iv_input_xstring    = lx_settings
                                   iv_transform_name  = '/IPRO/DOCXCC_PROTECT'
                                   it_parameters      = lt_parms
                        IMPORTING  ev_result          = lx_temp
                                   ev_ret             = lv_ret
                                   ev_message         = lv_msg  ).
   lo_docx_settings->feed_data( lx_temp ).
   DATA(lx_docx_package) = lo_docx->get_package_data( ).
   lr_element->set_attribute( EXPORTING name = 'BINARY'  value = lx_docx_package ).

after that the tag will be there in settings.xml:

怎么將SAP Document Builder的word控件設置成只讀模式

image

The word control before upload document looks like below, buttons and menus available:

怎么將SAP Document Builder的word控件設置成只讀模式

image

After upload, menu and button are disabled. If you try to edit the document, there will be notifications in the right pane to give you a hint that is not possible.

怎么將SAP Document Builder的word控件設置成只讀模式

當然,此解決方案不適用于較低版本的MS word,如word2003。幸運的是,我的客戶有足夠的錢,他們已經在使用Office 2013,所以我不必為此擔心。

關于怎么將SAP Document Builder的word控件設置成只讀模式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马山县| 进贤县| 江西省| 龙南县| 五华县| 崇左市| 山西省| 延安市| 关岭| 盖州市| 抚宁县| 铜山县| 莱芜市| 个旧市| 凤冈县| 蕲春县| 建始县| 周口市| 磐安县| 时尚| 法库县| 安岳县| 内乡县| 碌曲县| 昭觉县| 绥化市| 宽甸| 溧阳市| 湖北省| 阳江市| 台安县| 响水县| 潼关县| 永德县| 木里| 迭部县| 开鲁县| 图们市| 米林县| 奉化市| 杨浦区|