2012-07-27 234 views
3

我一直在試圖將兩個SVG文件合併爲一個SVG文件。到處都是使用pageSet。下面的代碼是將兩個SVG文件合併到一個文件中。如何合併多個SVG文件?

<pageSet> 
    <page> 
     <circle cx="300" cy="150" r="90" fill="red" stroke="black" 
       stroke-width="4" fill-opacity="0.7" /> 
    </page> 
    <page> 
     <circle cx="240" cy="250" r="90" fill="green" stroke="black" 
       stroke-width="4" fill-opacity="0.7" /> 
    </page> 
    <page> 
     <circle cx="360" cy="250" r="90" fill="blue" stroke="black" 
       stroke-width="4" fill-opacity="0.7" /> 
    </page> 
</pageSet> 

我嘗試使用上面的代碼,但沒有什麼是顯示。

+0

你是如何試圖顯示它 - 在瀏覽器中?大概以上不是整個文件 - 一個SVG文件需要在''標籤中。你如何合併文件? – halfer 2012-07-27 09:11:55

+2

這看起來像是使用SVG Print,http://www.w3.org/TR/SVGPrint12/,該規範仍然是一個工作草案,並沒有正在進行的工作來完成它。沒有一款網頁瀏覽器支持AFAIK。 – 2012-07-27 11:27:56

+0

合併這兩個文件的目標是什麼?你試圖並排顯示它們,還是將第二個(和第三個等)文件的內容重疊在同一個圖形上? – Phrogz 2012-07-27 17:40:08

回答

5

您可以將SVG文件一個接一個地嵌入到HTML文檔中。例如,無論是SVG內容在線:

<html><head>…</head><body> 
    <svg xmlns="http://www.w3.org/2000/svg"><!-- SVG Data --></svg> 
    <svg xmlns="http://www.w3.org/2000/svg"><!-- SVG Data --></svg> 
    <svg xmlns="http://www.w3.org/2000/svg"><!-- SVG Data --></svg> 
    <svg xmlns="http://www.w3.org/2000/svg"><!-- SVG Data --></svg> 
</body></html> 

...或referencing an external file

<html><head>…</head><body> 
    <object type="image/svg+xml" data="file1.svg"></object> 
    <object type="image/svg+xml" data="file2.svg"></object> 
    <object type="image/svg+xml" data="file3.svg"></object> 
    <object type="image/svg+xml" data="file4.svg"></object> 
</body></html> 

然後,您可以使用CSS來control the page breaks when printing

svg, object { page-break-before:always } 
+0

非常感謝。你的代碼真的有效。 – Dalee 2012-07-31 11:34:15

+0

Phrogz,我還有一個疑問。我需要將所有svg文件嵌入後生成的結果html文件轉換爲pdf文件。我嘗試使用包含svg元素的示例html文件在java中進行轉換,但我無法查看svg圖形。 – Dalee 2012-07-31 12:01:59

+1

@Dalee歡迎來到Stack Overflow!我很高興獲得幫助。請注意,您的後續問題應該[作爲單獨問題發佈](http://stackoverflow.com/questions/ask)以獲得適當的曝光和幫助;像_「將SVG轉換爲PDF」_。請注意,如果(並且只有當!)你覺得這個答案已經完全解決了你提出的問題,你應該[將它標記爲已接受](http://meta.stackexchange.com/a/5235/153741)。這有助於您的聲譽,我的聲譽,並且也向其他用戶指出類似的問題,即此答案有幫助。 – Phrogz 2012-07-31 12:59:04