這篇文章將為大家詳細(xì)講解有關(guān)怎么將SAP Document Builder的word控件設(shè)置成只讀模式,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到汪清網(wǎng)站設(shè)計(jì)與汪清網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋汪清地區(qū)。最近我正在從事一個(gè)客戶(hù)項(xiàng)目,客戶(hù)的一個(gè)要求是他們不希望word文檔在word控件中可編輯。
這意味著工具欄中的所有按鈕和菜單都應(yīng)該被禁用。
image
The first idea comes to my mind is the flag “enableReadWrite“.
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.
然后我推測(cè),如果上傳的文檔是只讀的,那么工具欄肯定會(huì)被禁用。因此,問(wèn)題變成了如何在上傳過(guò)程中將文檔標(biāo)記為只讀。
自word 2007以來(lái),MS office的格式遵循所謂的“Open office”協(xié)議,其規(guī)范可在此處找到。
如果將文件類(lèi)型擴(kuò)展名從更改為。docx到。使用WinRAR壓縮并打開(kāi)它,您會(huì)發(fā)現(xiàn)該文檔實(shí)際上是由多個(gè)單個(gè)文件組成的包(在SAP internal中稱(chēng)為文檔部分)??删庉嬓杂晌募O(shè)置控制。xml。
如果你不知道確切的語(yǔ)法,就用谷歌搜索。我在谷歌的解釋中使用了:
現(xiàn)在任務(wù)非常簡(jiǎn)單,只需在文檔源代碼中添加必要的xml標(biāo)記即可。您不需要手動(dòng)解析文檔源代碼,因?yàn)镾AP已經(jīng)完成了這項(xiàng)工作。您可以重用標(biāo)準(zhǔn)類(lèi)CL_DOCX_文檔。
由于我需要在“設(shè)置”節(jié)點(diǎn)中插入文檔保護(hù)節(jié)點(diǎn),因此為此編寫(xiě)了一個(gè)簡(jiǎn)單的轉(zhuǎn)換。魔術(shù)在第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:
image
The word control before upload document looks like below, buttons and menus available:
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.
當(dāng)然,此解決方案不適用于較低版本的MS word,如word2003。幸運(yùn)的是,我的客戶(hù)有足夠的錢(qián),他們已經(jīng)在使用Office 2013,所以我不必為此擔(dān)心。
關(guān)于怎么將SAP Document Builder的word控件設(shè)置成只讀模式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站欄目:怎么將SAPDocumentBuilder的word控件設(shè)置成只讀模式-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://jinyejixie.com/article34/gpjpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、域名注冊(cè)、響應(yīng)式網(wǎng)站、Google、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)