2014-02-19 70 views
3

我有一些問題在XSL-FO實現以下佈局:XSL-FO邊界重疊圖形

enter image description here

我以爲我會創建一個圍繞它一個堅實的黑色邊框是簡單的塊。 然後,我會將圖像放在此區域的右上角,以便覆蓋邊框。最後,我可以給這個圖像一個左邊框和下邊框。

編輯:這是我的用於放置image..In第一塊我會試圖將圖像從塊內放置代碼,並且在從所述塊之外的第二個。

<?xml version="1.0" encoding="UTF-8"?> 
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <!-- Layout--> 
    <fo:layout-master-set> 
     <fo:simple-page-master master-name = "ticket_layout" 
               page-height = "297mm" 
               page-width = "210mm" 
               margin-left = "10mm" 
               margin-right = "5mm" 
               margin-top = "10mm" 
               margin-bottom = "10mm"> 

      <fo:region-body margin-bottom = "20mm" margin-top = "25mm"/> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <!-- page sequence--> 
    <fo:page-sequence master-reference = "ticket_layout"> 
     <!-- Body--> 
     <fo:flow flow-name = "xsl-region-body"> 
     <!-- Info Image--> 
      <fo:block-container position="absolute" bottom="10" left="10"> 
       <fo:block text-align = "right"> 
        <fo:external-graphic src="url('Info_Icon.jpg')" border-left= "1pt solid black" border-bottom = "1pt solid black" content-height = "50%"/> 
       </fo:block> 
      </fo:block-container> 
      <!-- Table--> 
       <fo:table margin-top = "2mm" padding-bottom = "230mm" font-family = "Agenda" font-size = "11"> 
        <fo:table-body> 
         <fo:table-row> 
          <!-- InfoBlock1--> 
          <fo:table-cell > 
           <fo:block padding-bottom= "48mm" margin-right = "1mm" margin-bottom = "1mm" border = "1pt solid black" > 
            <!-- InfoImage--> 
            <fo:block-container position="absolute" bottom="60" left="110"> 
             <fo:block text-align = "right"> 
              <fo:external-graphic src="url('Info_Icon.jpg')" border-left= "1pt solid black" border-bottom = "1pt solid black" content-height = "50%"/> 
             </fo:block> 
            </fo:block-container> 
           </fo:block> 
          </fo:table-cell> 
          <!-- InfoBlock_2--> 
          <fo:table-cell > 
           <fo:block padding-bottom= "48mm" margin-left = "1mm" margin-bottom = "1mm" border = "1pt solid black"> 
           </fo:block> 
          </fo:table-cell> 
         </fo:table-row> 
        </fo:table-body> 
       </fo:table> 
     </fo:flow> 
    </fo:page-sequence> 
</fo:root> 

但我有問題將圖像準確地放在邊界上。它甚至有可能嗎?

鏈接到圖片:http://i.stack.imgur.com/9FvVr.jpg

我也很歡迎其他一些建議!

+0

請示出了完整的,最小的XSL-FO示例,您的問題仍然存在。這樣,人們可以真正測試你的代碼。 –

+0

對不起,你是對的。我改變了我的問題中的代碼! – Zalem

+1

在我看來,將整個結構保存爲圖像並將其用作'fo:table-cell'的背景會更容易:http://www.w3.org/TR/xsl/#background-圖片。 –

回答

0

在您的樣品,則放置在包含更大的塊內的{I}圖像塊。你永遠不會讓邊界以這種方式重疊。根據定義,一個塊在另一個塊內。

有幾種prossible解決方案:

  • 創建一個表,4個單元,使用單元格邊框以創建邊界圖像
  • 使用背景圖片(或者外部圖形或嵌入SVG)爲邊界線
  • 使用2同級塊的容器與絕對位置=「絕對」放置爲彼此重疊,一個與所述盒內容,一個與{I}圖像