{"id":152,"date":"2007-02-21T23:21:00","date_gmt":"2007-02-21T23:21:00","guid":{"rendered":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/"},"modified":"2007-02-21T23:21:00","modified_gmt":"2007-02-21T23:21:00","slug":"svg-apache-batik","status":"publish","type":"post","link":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/","title":{"rendered":"SVG, Apache Batik"},"content":{"rendered":"<p><a href=\"http:\/\/astore.amazon.com\/extcas-20\/detail\/0975212893\/002-4982393-9382434\" target=\"_blank\" rel=\"noopener\">The Java Drawing with Apache Batik tutorial book <\/a>I ordered from <a href=\"http:\/\/www.amazon.com\/?%5Fencoding=UTF8&amp;tag=extcas-20\" target=\"_blank\" rel=\"noopener\">Amazon<\/a> arrived, very fast by the way. It seems pretty good. I think it is a must have for anybody starting out with <a href=\"http:\/\/xmlgraphics.apache.org\/batik\/\" target=\"_blank\" rel=\"noopener\">batik<\/a>. I&#8217;m only half way through, but so far I&#8217;m glad I bought it. Examples are good. Covers the main parts of<a href=\"http:\/\/xmlgraphics.apache.org\/batik\/\" target=\"_blank\" rel=\"noopener\"> Batik<\/a>: Generator, Transcoder, PrettyPrinter, JSVGCanvas. Also covers DOM, how to save to a file. Doesn&#8217;t seem to do much with glyphs though or get into how to use it in specific areas such as GIS. Although I&#8217;m not finished yet, so maybe in later chapters. Here&#8217;s the table of contents:<\/p>\n<p>Introduction<\/p>\n<p>Chapter 1 Getting Started with Batik<br \/>Batik Overview<br \/>Batik in Real World Projects<br \/>Your First SVG Document<br \/>Using SVG Rasterizer<br \/>Using Pretty-Printer<br \/>What Else Comes with Batik?<br \/>Summary<\/p>\n<p>Chapter 2 Creating SVG<br \/>Drawing in Java<br \/>Using SVG Creator<br \/>Other Features of SVG Generator<br \/>Summary<\/p>\n<p>Chapter 3 Viewing SVG<br \/>Displaying Generated SVG Documents<br \/>JSVGCanvas Interactivity<br \/>Saving the Generated Document<br \/>Displaying an SVG File<br \/>Summary<\/p>\n<p>Chapter 4 Working with Transcoders<br \/>The Transcoder API<br \/>Using Transcoders in Applications<br \/>Setting the Area of Interest<br \/>Using the SVGTranscoder for Pretty Printing<br \/>The Enhanced Version of the SVG File Viewer<br \/>Summary<\/p>\n<p>Chapter 5 Document Object Model<br \/>SVG Document as a DOM Tree<br \/>Creating Documents with the DOM API<br \/>Building an SVG Document<br \/>Working with Gradients<br \/>Using the DOM API<br \/>Other Thoughts<br \/>Summary<\/p>\n<p>Chapter 6 Working with Text and Fonts<br \/>Using the text Element<br \/>SVG Fonts<br \/>Using the Font Converter<br \/>Using SVG Fonts in a Document<br \/>Text Workbench: SVG Writer<br \/>Text Elements, Text Nodes, and Text Content<br \/>Characters Positioning<br \/>Using tspan elements<br \/>Text Layout<br \/>Text on A Path<br \/>Text Selection<br \/>Summary<\/p>\n<p>Chapter 7 Batik on the Server Side<br \/>The SVG Graph Web Application<br \/>SVG Filter Effects<br \/>SVG Filters Web Application<br \/>Summary<\/p>\n<p>Chapter 8 Batik Interactive<br \/>SVG and Scripts<br \/>Interactivity<br \/>Animation<br \/>Scripting Alternatives<br \/>Using Java for Scripting<br \/>Adding Animation 205 Summary<\/p>\n<p>Appendix A Introduction to XML<br \/>Benefits of XML<br \/>Well-Formed XML Documents<br \/>Validating XML Documents<br \/>Related XML Resources<\/p>\n<p>Appendix B Introduction to JavaScript<br \/>Your First Script<br \/>Variables<br \/>Arrays<br \/>Operators<br \/>Loops<br \/>Branching in JavaScript<br \/>Functions<br \/>Objects<\/p>\n<p>and a description: <br \/>This guide to Apache Batik, the Java library that can be used to read SVG files and translate the instructions in the files into graphics, shows how Batik can also be used to save the graphics as JPEG, TIFF, PNG, GIF, and other formats, so that the graphics can be transferred. Using Batik to create animation similar to Flash movies and its use for creating a drawing program such as Corel DRAW are also covered.  <\/p>\n<p>Scalable Vector Graphics (SVG) is an XML-based language for describing two-dimensional vector graphics and vector\/raster graphics. The SVG specification describes in great detail how different shapes can be created, manipulated, transformed, and animated. In particular, SVG 1.1 defines:  <br \/>Basic shape elements such as rectangle, circle, ellipse, line, polyline, and polygon. <br \/>Basic data types, such as integer, number, length, and angle. <br \/>The structure of an SVG document. <br \/>How to apply styles in an SVG document. <br \/>How to deal with text and how to use fonts. <br \/>How to work with colors, gradients, and patterns. <br \/>How and in which order elements should be rendered. <br \/>Which filter effects should be available and how to apply them. <br \/>How to animate images. <\/p>\n<p>Apache Batik is a free and open-sourced implementation of SVG. It comes with tools and sample applications that demonstrate the power of SVG and Batik. This book is an easy-to-read tutorial on Batik. It teaches you how to use the tools in Batik and gets you started with Batik programming. In addition, it explains the following topics:  <br \/>Batik implementation of the SVG specification <br \/>Batik API <br \/>SVG viewer <br \/>Transcoder and image format transcoding <br \/>Rasterizer <br \/>Document Object Model API <br \/>Text and fonts <br \/>Using Batik on the server side <br \/>Interactivity <br \/>Animation <br \/>Gradients <br \/>Filter effects <\/p>\n<p>This info was taken from <a href=\"http:\/\/www.brainysoftware.com\/index.php?show=batik\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>Yes, I was able to get <a href=\"http:\/\/xmlgraphics.apache.org\/batik\/\" target=\"_blank\" rel=\"noopener\">batik<\/a> to draw a polygon, using an svg as the stroke and to do it correctly, not with the fill setting. <br \/>What you do is, first create a skeleton svg which contains a script to get the paths, calculate each path length, get the width of the svg you want to use as stroke. Divide path length by that to get the number of glyphs &#038; then do a loop creating the glyph string. <\/p>\n<p>?xml version=&#8221;1.0&#8243; standalone=&#8221;no&#8221;?><br \/>!DOCTYPE svg PUBLIC &#8220;-\/\/W3C\/\/DTD SVG 1.0\/\/EN&#8221;<br \/>  &#8220;http:\/\/www.w3.org\/TR\/2001\/REC-SVG-20010904\/DTD\/svg10.dtd&#8221;><br \/>svg  onload=&#8221;load(evt)&#8221; xmlns=&#8221;http:\/\/www.w3.org\/2000\/svg&#8221;<br \/>     xmlns:xlink=&#8221;http:\/\/www.w3.org\/1999\/xlink&#8221;><\/p>\n<p>   script type=&#8221;text\/ecmascript&#8221;>![CDATA[<\/p>\n<p>      var svgNS = &#8220;http:\/\/www.w3.org\/2000\/svg&#8221;;<\/p>\n<p>      function load(evt)<br \/>      {<br \/>         var doc = evt.target.ownerDocument;<\/p>\n<p>         var geometryGroup = doc.getElementById(&#8220;geometryGroup&#8221;);<br \/>         var pathList = geometryGroup.getElementsByTagNameNS(svgNS, &#8220;path&#8221;);<br \/>         var numPaths = pathList.length;<br \/>         for (var i = 0; i < numPaths; i++)<br \/>         {<br \/>            var path = pathList.item(i);<\/p>\n<p>            var pathLength = path.getTotalLength();<br \/>            \/\/var pt  = path.getPointAtLength(dist);<\/p>\n<p>            var glyphDefs = doc.getElementById(&#8220;glyphDefs&#8221;);<br \/>            var symbolSVG = glyphDefs.getElementsByTagNameNS(svgNS, &#8220;svg&#8221;).item(0);<br \/>            var widthAttribute = symbolSVG.getAttributeNS(null, &#8220;width&#8221;);<br \/>            var patternWidth = parseFloat(widthAttribute.substring(0, widthAttribute.length &#8211; 2));<\/p>\n<p>            var numGlyphs = Math.floor((pathLength \/ patternWidth) * 2);<\/p>\n<p>            var glyphsStr = &#8220;&#8221;;<\/p>\n<p>            for (var j = 0; j <= numGlyphs; j++)<br \/>            {<br \/>               glyphsStr += &#8220;A&#8221;;<br \/>            }<\/p>\n<p>            var glyphTextPath = document.getElementById(&#8220;glyphTextPath&#8221; + i);<br \/>            glyphTextPath.appendChild(document.createTextNode(glyphsStr));<br \/>         }<br \/>      }<\/p>\n<p>   ]]>\/script><\/p>\n<p>   defs id=&#8221;glyphDefs&#8221;><\/p>\n<p>      font id=&#8221;myFont&#8221;><br \/>         font-face font-family=&#8221;myFont&#8221;\/><br \/>         missing-glyph\/><br \/>         glyph unicode=&#8221;A&#8221;><br \/>            g><br \/>               use\/><br \/>            \/g><br \/>         \/glyph><br \/>      \/font><br \/>   \/defs><\/p>\n<p>   g id=&#8221;geometryGroup&#8221;><br \/>   \/g><\/p>\n<p><\/svg><\/p>\n<p>Using <a href=\"http:\/\/xmlgraphics.apache.org\/batik\/\" target=\"_blank\" rel=\"noopener\">batik<\/a>, you create a group for each path, add that info to the skeleton svg using the dom, add the svg you want to use as the stroke to the defs section, fill in units-per-em &#038; horiz-adv-x info &#038; any other missing info. Add that to the canvas &#038; draw. Very cool.<br \/>This <a href=\"http:\/\/www.carto.net\/\" target=\"_blank\" rel=\"noopener\">site<\/a> is also invaluable.<\/p>\n<p><iframe src=\"http:\/\/rcm.amazon.com\/e\/cm?t=extcas-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0975212893&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr\" style=\"width:120px;height:240px;\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Java Drawing with Apache Batik tutorial book I ordered from Amazon arrived, very fast by the way. It seems pretty good. I think it is a must have for anybody starting out with batik. I&#8217;m only half way through, but so far I&#8217;m glad I bought it. Examples are good. Covers the main parts [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[234,316],"tags":[],"class_list":["post-152","post","type-post","status-publish","format-standard","hentry","category-apache-batik","category-svg"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SVG, Apache Batik - Zofxare Blog Home<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SVG, Apache Batik - Zofxare Blog Home\" \/>\n<meta property=\"og:description\" content=\"The Java Drawing with Apache Batik tutorial book I ordered from Amazon arrived, very fast by the way. It seems pretty good. I think it is a must have for anybody starting out with batik. I&#8217;m only half way through, but so far I&#8217;m glad I bought it. Examples are good. Covers the main parts [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/\" \/>\n<meta property=\"og:site_name\" content=\"Zofxare Blog Home\" \/>\n<meta property=\"article:published_time\" content=\"2007-02-21T23:21:00+00:00\" \/>\n<meta name=\"author\" content=\"zofxare\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"zofxare\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/\"},\"author\":{\"name\":\"zofxare\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/#\\\/schema\\\/person\\\/094f5dde70100b9f8fbc63174a2a40ce\"},\"headline\":\"SVG, Apache Batik\",\"datePublished\":\"2007-02-21T23:21:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/\"},\"wordCount\":872,\"commentCount\":0,\"articleSection\":[\"Apache Batik\",\"SVG\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/\",\"url\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/\",\"name\":\"SVG, Apache Batik - Zofxare Blog Home\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/#website\"},\"datePublished\":\"2007-02-21T23:21:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/#\\\/schema\\\/person\\\/094f5dde70100b9f8fbc63174a2a40ce\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/2007\\\/02\\\/21\\\/svg-apache-batik\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SVG, Apache Batik\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/\",\"name\":\"Zofxare Blog Home\",\"description\":\"The Zofxare blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/#\\\/schema\\\/person\\\/094f5dde70100b9f8fbc63174a2a40ce\",\"name\":\"zofxare\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=retro&r=g\",\"caption\":\"zofxare\"},\"url\":\"https:\\\/\\\/zofxare.com\\\/zofxare\\\/blog\\\/author\\\/zofxare\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SVG, Apache Batik - Zofxare Blog Home","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/","og_locale":"en_US","og_type":"article","og_title":"SVG, Apache Batik - Zofxare Blog Home","og_description":"The Java Drawing with Apache Batik tutorial book I ordered from Amazon arrived, very fast by the way. It seems pretty good. I think it is a must have for anybody starting out with batik. I&#8217;m only half way through, but so far I&#8217;m glad I bought it. Examples are good. Covers the main parts [&hellip;]","og_url":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/","og_site_name":"Zofxare Blog Home","article_published_time":"2007-02-21T23:21:00+00:00","author":"zofxare","twitter_card":"summary_large_image","twitter_misc":{"Written by":"zofxare","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/#article","isPartOf":{"@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/"},"author":{"name":"zofxare","@id":"https:\/\/zofxare.com\/zofxare\/blog\/#\/schema\/person\/094f5dde70100b9f8fbc63174a2a40ce"},"headline":"SVG, Apache Batik","datePublished":"2007-02-21T23:21:00+00:00","mainEntityOfPage":{"@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/"},"wordCount":872,"commentCount":0,"articleSection":["Apache Batik","SVG"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/","url":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/","name":"SVG, Apache Batik - Zofxare Blog Home","isPartOf":{"@id":"https:\/\/zofxare.com\/zofxare\/blog\/#website"},"datePublished":"2007-02-21T23:21:00+00:00","author":{"@id":"https:\/\/zofxare.com\/zofxare\/blog\/#\/schema\/person\/094f5dde70100b9f8fbc63174a2a40ce"},"breadcrumb":{"@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zofxare.com\/zofxare\/blog\/2007\/02\/21\/svg-apache-batik\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zofxare.com\/zofxare\/blog\/"},{"@type":"ListItem","position":2,"name":"SVG, Apache Batik"}]},{"@type":"WebSite","@id":"https:\/\/zofxare.com\/zofxare\/blog\/#website","url":"https:\/\/zofxare.com\/zofxare\/blog\/","name":"Zofxare Blog Home","description":"The Zofxare blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zofxare.com\/zofxare\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zofxare.com\/zofxare\/blog\/#\/schema\/person\/094f5dde70100b9f8fbc63174a2a40ce","name":"zofxare","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=retro&r=g","caption":"zofxare"},"url":"https:\/\/zofxare.com\/zofxare\/blog\/author\/zofxare\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":0,"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"wp:attachment":[{"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zofxare.com\/zofxare\/blog\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}