2015-09-26 76 views
1

我需要調整取決於相鄰小區背景單元顏色。openTbs標籤不更新

我的模板是一個Word文檔,我設置單元格顏色一些隨機的顏色,所以我的興趣XML看起來是這樣的:

<w:tc> 
    <w:tcPr> 
    <w:tcW w:w="5400" w:type="dxa"/> 
    <w:tcBorders> 
     <w:left w:val="single" w:sz="4" w:space="0" w:color="D9D9D9" w:themeColor="background1" w:themeShade="D9"/> 
    </w:tcBorders> 
    <w:shd w:val="clear" w:color="auto" w:fill="D9D9D9" w:themeFill="background1" w:themeFillShade="D9"/> 
    </w:tcPr> 
    <w:pPr><w:rPr><w:sz w:val="20"/><w:szCs w:val="20"/></w:rPr></w:pPr> 
    <w:r> 
    <w:rPr> 
    <w:sz w:val="20"/><w:szCs w:val="20"/> 
    </w:rPr> 
    <w:t>[title.bg;att=w:shd#w:fill][title.quoteFOB]</w:t> 
    </w:r> 

與正在要點:

  • 我有aw:shd標籤,其中wfill ='D9D9D9'屬性分配爲
  • 我在模板0123中的[title.bg; att = w:shd#w:fill]條目 將合併塊title.bg路由到wfill屬性。
  • 我有一個合併條目[title.quoteFOB]打算路由合併 字段title.quoteFOB的單元格內容。

的調用執行合併看起來是這樣的:

$TBS->MergeField('title', array('custName' => $custName, 
    'compName' => $compName, 'custAddress1' => $custAddr1, 
    'custAddress2' => $custAddr2, 'quoteNum' => $quoteNum, 
    'quoteRev' => $quoteRev, 'quoteForm' => $quoteForm, 
    'quoteExpDate' => $quoteExp, quoteTerms' => $quoteTerm, 
    'quoteFOB' => $quoteFob, bg'=>'00FF00')); 

這是一個包含多種細胞更新多個合併塊所有這些似乎按預期方式工作之一。除了單元格顏色改變之外的所有東

我嘗試了很多可能導致問題的事情,例如:禁用除一個合併以外的所有操作,重新排列字段的順序以及讀取許多計算器條目的方式。沒有一個工作。

我認爲我是一個白癡,我可以通過查看代碼來了解這一點。並通過代碼追蹤。我發現,在Show()調用之前,TBS-> Source與預期的一樣。所有合併都發生了,並且在修改的XML中正確地替換了w:fill值。但是當我打電話時

$TBS->Show(OPENTBS_DOWNLOAD, "$fileName.docx") and 
$TBS->Show(OPENTBS_STRING); 

輸出docx文件不包含-w:填充更改。在它之前和之後的一切,但沒有改變。現在我回過頭來想我是個白癡,我做錯了什麼。

任何想法我做錯了嗎?,請幫助我。

+0

我無法重現你的錯誤。我測試了你的PHP和你的XML,並且所有東西都被正確地合併了。您只能爲每個加載的模板執行一個Show()。但我想這不是合併只有一個字段的原因。你有其他的「att」參數嗎?目標是哪個屬性?你能發送一段代碼來重現錯誤嗎? – Skrol29

回答

1

僅僅用'[title.bg; att = w:shd#w:fill]'來改變-w:fill屬性是不夠的。看起來,只要-w:themeFill =「background1」在那裏,MS-Word就忽略了這個屬性。一旦我添加'[title.tf; att = w:shd#w:themeFill]將themeFill屬性更改爲空字符串,一切都按預期工作。

我很尷尬我花了多少時間退後一步,並且第二次/第三次查看輸出XML。我希望這能幫助其他人避免像我一樣浪費時間。