/* * Dashed lines: * Create some dash patterns to be used as line styles * * Required software: PDFlib/PDFlib+PDI/PPS 9 * Required data: none */ package com.pdflib.cookbook.pdflib.graphics; import com.pdflib.pdflib; import com.pdflib.PDFlibException; public class dashed_lines { public static void main (String argv[]) { /* This is where the data files are. Adjust if necessary. */ String searchpath = "../input"; String outfile = "dashed_lines.pdf"; String title = "Dashed Lines"; pdflib p = null; int font; int startx = 10, starty = 200, x = 200, y = 200; int exitcode = 0; try { p = new pdflib(); p.set_option("searchpath={" + searchpath + "}"); /* This means we must check return values of load_font() etc. */ p.set_option("errorpolicy=return"); if (p.begin_document(outfile, "") == -1) throw new Exception("Error: " + p.get_errmsg()); p.set_info("Creator", "PDFlib Cookbook"); p.set_info("Title", title); font = p.load_font("Helvetica", "unicode", ""); if (font == -1) throw new Exception("Error: " + p.get_errmsg()); p.begin_page_ext(250, 250, ""); /* Set the drawing properties for the dash patterns */ p.setlinewidth(0.6); /* Set the first dash pattern with a dash and gap length of 3 */ p.set_graphics_option("dasharray={3 3}"); /* Stroke a line with that pattern */ p.moveto(startx, starty); p.lineto(x, y); p.stroke(); /* Set the second dash pattern with a dash length of 3 and * a gap length of 6 */ p.set_graphics_option("dasharray={3 6}"); /* Stroke a line with that pattern */ p.moveto(startx, starty-20); p.lineto(x, y-20); p.stroke(); /* Set the third dash pattern with a dash length of 6 and * a gap length of 3 */ p.set_graphics_option("dasharray={6 3}"); /* Stroke a line with that pattern */ p.moveto(startx, starty-40); p.lineto(x, y-40); p.stroke(); /* Set the fourth dash pattern with a dash length of 5 and * a gap length of 3, then a dash of 0.5 and a gap of 3, then a dash * of 3 and a gap of 3, then a dash of 0.0 and a gap of 3 and so forth */ p.set_graphics_option("dasharray={5 3 0.5 3 3 3 0.5 3}"); /* Stroke a line with that pattern */ p.moveto(startx, starty-60); p.lineto(x, y-60); p.stroke(); p.end_page_ext(""); p.end_document(""); } catch (PDFlibException e) { System.err.println("PDFlib exception occurred:"); System.err.println("[" + e.get_errnum() + "] " + e.get_apiname() + ": " + e.get_errmsg()); exitcode = 1; } catch (Exception e) { System.err.println(e); exitcode = 1; } finally { if (p != null) { p.delete(); } System.exit(exitcode); } } }