2017-10-04 107 views
0

我想將此SVG轉換爲PDF,尺寸最大可達x10它的當前尺寸不會丟失圖片的質量。 PDF也應該在300 PPI。我怎樣才能達到某種輸出?使用ImageMagick調整大小並將SVG導出爲PDF

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="248.1" height="350.7" viewBox="0 0 248.1 350.7" xml:space="preserve"> 
<desc>Created with Fabric.js 1.7.19</desc> 
<defs> 
</defs> 
<g transform="translate(51.2 34.1) scale(0.1 0.1)"> 
<image xlink:href="./cat.jpg" x="-512" y="-341" style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" width="1024" height="682" preserveAspectRatio="none"></image> 
</g> 
</svg> 

enter image description here

這SVG來自fabricjs toSVG()代碼。我可以使用fabricjs調整它的大小,但我想知道是否可以這樣做以及如何使用ImageMagick。

+0

這沒有多大意義。 SVG不過是你的cat.jpg的封裝。你爲什麼不把它轉換成pdf? (這相當於用PDF包裝圖像。) – ccprog

+0

我只是想學習新的東西。我的主要目標是試圖構建一個圖像編輯器,在那裏我可以放置很多照片,這樣我就可以像照片書一樣打印出來(例如:like mixbook.com) – amree

+0

那麼SVG的作用是什麼?佈局任務? – ccprog

回答

1

ImageMagick是一個針對光柵圖像的程序套件。你擁有的是一種混合矢量和光柵內容的輸入和輸出格式。

ImageMagick的可以處理,但只能通過需要安裝額外的程序:由SVG

  • 進口使用Inkscape或的librsvg
  • 導出爲PDF使用Ghostscript

可以切口中間人。 Inkscape雖然主要是SVG編輯器GUI,但也具有命令行模式,例如用於導出任務。你可以通過你的規模根元素的heightwidth值乘以縮放SVG - 不改變viewBox屬性:

<svg width="2481" height="3507" viewBox="0 0 248.1 350.7" ...> 

或者,如果你知道你想要的頁面的目標大小,你可以設置它們。即使縱橫比不適合,您的內容也將在頁面上適合大小。例如用A4頁面:

<svg width="210mm" height="297mm" viewBox="0 0 248.1 350.7" ...> 

然後執行Inkscape中:

inkscape --without-gui --export-pdf=out.pdf in.svg 

圖片被包埋原樣,所以你不鬆分辨率。

+0

嘗試了你的建議,它的工作原理。非常感謝。所以基本上我需要手動更改svg的寬度和高度,對吧?這是調整SVG大小的正常方法嗎? – amree

+0

對於獨立的SVG文件,通常可能會有一個可定義大小的環境(如將頁面嵌入svg作爲圖像的環境)。 Inkscape PDF導出不提供這種功能(雖然它不會那麼複雜),所以它更像是一種替代解決方案。根據您的工作流程,可能會將變更大小的SVG視爲臨時文件。 – ccprog