2011-12-07 51 views
5

如何從TTF字體創建文本並將其轉換爲靜態SVG路徑?所以任何人都可以在插畫中打開它並看到這個詞(如.SVG)。將文本轉換爲服務器上的路徑(svg)?

我們的服務器是Debain,我們主要使用PHP進行後端編碼。

很高興使用Imagemagick或Inkscape - 無論它做什麼!

+0

請訪問http://計算器。com/questions/8296964/is-there-a-php-library-for-drawing-text-as-a-vector-outline –

回答

7

試試這個:

  1. 創建在Inkscape SVG模板文件(見下面的例子)。
  2. 用文本編輯器打開該文件,併爲要更改的變量放置一些佔位符標記:字體和文本。
  3. 創建一個網頁,以便用戶可以選擇字體和寫入文本。
  4. 檢索服務器中的數據。
  5. 閱讀模板文件,並使用用戶數據更改佔位符標記。
  6. 通過命令行調用Inkscape。
inkscape template.svg --export-text-to-path --export-id=maintext --export-pdf=new_file.pdf 

現在,我知道,我知道,你說你想要一個SVG輸出......我試過選項:

--export-plain-svg=new_file.svg 

但根據Inkscape的手冊頁:

-T, --export-text-to-path 
    Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export). 

Soooo ...無法獲得普通的svg導出和導出文本到路徑:S ...順便說一句,這應該填補作爲一個錯誤。

可以服務於PDF,或再次致電:

inkscape -l new_file.svg new_file.pdf 

哪......我知道,是很愚蠢的。不,真的,文件上Inkscape的錯誤:P

這是例如Inkscape中的模板:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!-- Created with Inkscape (http://www.inkscape.org/) --> 

<svg 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:cc="http://creativecommons.org/ns#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:svg="http://www.w3.org/2000/svg" 
    xmlns="http://www.w3.org/2000/svg" 
    version="1.1" 
    width="440.29297" 
    height="39.824219" 
    id="svg2"> 
    <defs 
    id="defs4" /> 
    <metadata 
    id="metadata7"> 
    <rdf:RDF> 
     <cc:Work 
     rdf:about=""> 
     <dc:format>image/svg+xml</dc:format> 
     <dc:type 
      rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 
     <dc:title></dc:title> 
     </cc:Work> 
    </rdf:RDF> 
    </metadata> 
    <text 
    x="-3.4374955" 
    y="30.390625" 
    id="maintext" 
    xml:space="preserve" 
    style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:[FONT_PLACEHOLDER]"><tspan 
     x="-3.4374955" 
     y="30.390625" 
     id="tspan3006" 
     style="fill:#000000">[TEXT_PLACEHOLDER]</tspan></text> 
</svg> 

親切的問候。

+0

謝謝你的幫助! – Justin

1

你也可以告訴inkscape打開你的文件 gui模式然後發出commands。以下命令行輸入將打開一個svg,選擇所有節點,並將它們轉換爲路徑。這將允許您將轉換後的svg保存回svg。

inkscape -f your.svg --with-gui --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit 

當心,這將覆蓋您的文件!

0

或者甚至更簡單,使用EasySVG,這個庫將文本轉換爲SVG定義。然後你可以把這個定義放在一個路徑中,或者其他什麼。

的定義是基於字體的SVG文件,但你可以很容易地TTF文件轉換爲SVG ...