Skip to content

Latest commit

 

History

History
45 lines (37 loc) · 2.44 KB

README.md

File metadata and controls

45 lines (37 loc) · 2.44 KB

PdfBuilder

markdown-like language to generate pdf documents.

The reason to be created

As you can know the pdf was created as portable format of textual information.
So i prefer to share some documents with .pdf format instead of .txt, .doc, .docx e.t.c
But every .doc/.docx editors are very clumsy in my opinion. So i was inspired by LaTex to
create language to generate pdf generators, because i prefer Emacs above all else.

Current state of language is very minimalistic, but it is able to create simple documents.

How to use

pdfbuilder.exe -sscriptname -doutput -mmacrofile
macrofile is optional.

Syntax

There are 2 elements: regular text and tags, changing rendering state.
Every tag is surrounded with <>, so it looks like <tag>
Also it can have arguments, so it will look like <tag:arg1,argn>

So check list of tag below:

<br> - moves the cursor down to the start of new line.
<rs> - resets state of rendering, setting the default values.
<hr> - sets horizontal line at current place of cursor.(i mean current position along Y axis).
<np> - creates new page. <ss:arg> - takes any natural number and sets spaces.
<str:arg> - takes any number and sets text rise.
<fs:arg> - takes any natural number and sets the size of font.

<fc:red,green,blue> - takes 3 number beetween 0 and 255 and sets the color in RGB-space.
<img:path> - takes the path of image and sets it at current position of cursor
<rt:angle> - takes the angle between 0 and 360 and sets rotation angle of every object on page.
<mx:arg> - takes number between 0% and 100% and moves position from right side to left one along X axis.
<my:arg> - takes number between 0% and 100% and moves position from right side to left one along Y axis.
<sk:arg> - takes real number as a value of kerning.

Macro

Macro acts in the same way like DEFINE from C/C++ programming language. It is used to replace complex anything.
to define macro write - <mac:name#value>
to use macro write anywhere you need @name, so macro value will be put instead of @name

Macro file

Just a regular file, containg a list of predefined macroses.
Before your script is loaded and processed, it reads the macro script and saves all macroses and then
they can be used in your script