Zuerst müssen Sie die Schriftart-Datei von TTF in SVG mit Batiks ttf2svg transformieren, sobald Sie die konvertierte Datei müssen Sie Verweis hinzufügen in der "Defs" -Abschnitt Ihres SVG-Dokuments. das ist, wie ich es tat:
Element defs = doc.createElementNS(svgNS, "defs");
Element fontface = doc.createElementNS(svgNS, "font-face");
fontface.setAttributeNS(null, "font-family", "DroidSansRegular");
Element fontfacesrc = doc.createElementNS(svgNS, "font-face-src");
Element fontfaceuri = doc.createElementNS(svgNS, "font-face-uri");
fontfaceuri.setAttributeNS(svgNS, "xlink:href", "fonts/DroidSans-webfont.svg#DroidSansRegular");
Element fontfaceformat = doc.createElementNS(svgNS, "font-face-format");
fontfaceformat.setAttributeNS(svgNS, "string", "svg");
fontfaceuri.appendChild(fontfaceformat);
fontfacesrc.appendChild(fontfaceuri);
fontface.appendChild(fontfacesrc);
defs.appendChild(fontface);
svgRoot.appendChild(defs);
wenn das Textelement die Schriftfamilie wie jede andere Schriftart
Element txtElem = doc.createElementNS(svgNS, "text");
txtElem.setAttributeNS(svgNS, "style", "font-family:DroidSansRegular;font-size:" + fontsize + ";stroke:#000000;#fill:#00ff00;");
txtElem.setTextContent("some text");
svgRoot.appendChild(txtElem);
Ich habe die Informationen aus diesem Artikel Set zu erstellen: http://frabru.de/c.php/article/SVGFonts-usage hoffen, es hilft.
keine Notwendigkeit, die Schrift zu SVG zu konvertieren. Batik kann explizit mit TrueType-Schriften arbeiten. Fügen Sie einfach eine ähnliche CSS-Deklaration hinzu: @ font-face {font-family: 'Your Font Family'; src: url ('fonts/yourfontfile.ttf') format ('truetype'); } –
@ Jiří Vypědřík: Könnten Sie näher erläutern, wie Sie mithilfe von CSS eine benutzerdefinierte Schriftart zu SVG in Batik hinzufügen können? Ich kann kein Beispiel bei Google finden. (Das Hinzufügen von CSS zu Batik ist fast nicht existent.) –
Wenn ich alle * .ttf-Fonts in einem einzigen Ordner habe, kann ich sie global registrieren, damit sie sowohl für PNGTranscoder als auch für PDFTranscoder verfügbar sind? Ich habe tagelang herumgespielt und war noch nicht in der Lage, etwas zum Laufen zu bringen, außer dem Hinzufügen einer 'font-face-uri' zu einer lokalen Datei in der SVG selbst. Bis jetzt funktionierte http://wiki.apache.org/xmlgraphics-fop/SvgNotes/PdfTranscoderTrueTypeEmbedding nicht für mich, wenn ich '' benutzte, sogar thoughha ähnliche Konfiguration mit nur FOP funktionierte. –