{"id":45,"date":"2010-04-03T09:07:31","date_gmt":"2010-04-03T14:07:31","guid":{"rendered":"http:\/\/coherentpdf.com\/blog\/?p=45"},"modified":"2010-04-03T09:07:31","modified_gmt":"2010-04-03T14:07:31","slug":"graphpdf-a-pdf-version-of-ocamls-graphics-module","status":"publish","type":"post","link":"https:\/\/coherentpdf.com\/blog\/?p=45","title":{"rendered":"GraphPDF: A PDF Version of Ocaml&#8217;s Graphics Module"},"content":{"rendered":"<p>I&#8217;ve written a version of Ocaml&#8217;s Graphics module which outputs PDF directly, using the <a href=\"http:\/\/www.coherentpdf.com\/ocaml-libraries.html\">CamlPDF<\/a> library &#8211; its only dependency. It&#8217;s based on the approach of Pierre Weis&#8217; <a href=\"http:\/\/pauillac.inria.fr\/graphps\/\">GraphPS<\/a> program.<\/p>\n<p>It has the same API as Ocaml&#8217;s module &#8211; just have your build process find the GraphPDF files before it finds the system ones &#8211; the vast majority of programs shouldn&#8217;t need altering.<\/p>\n<p>Get it <a href=\"http:\/\/www.coherentpdf.com\/graphpdf-1.0.tar.bz2\">here<\/a>.<br \/>\n<img decoding=\"async\" src=\"https:\/\/coherentpdf.com\/blog\/wp-content\/uploads\/2009\/03\/pdf.png\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve written a version of Ocaml&#8217;s Graphics module which outputs PDF directly, using the CamlPDF library &#8211; its only dependency. It&#8217;s based on the approach of Pierre Weis&#8217; GraphPS program. It has the same API as Ocaml&#8217;s module &#8211; just &hellip; <a href=\"https:\/\/coherentpdf.com\/blog\/?p=45\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[8,21,5],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-camlpdf","tag-graphpdf","tag-ocaml"],"_links":{"self":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":0,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}