171 Commits

Author SHA1 Message Date
Devon Govett
f8a40dba76 Make PDFDocument a node stream 2014-03-23 17:11:48 -07:00
Devon Govett
1305a9592a Switch to 2 space indentation 2014-03-23 12:25:09 -07:00
Devon Govett
d95b826475 Release v0.4.3 2014-02-25 01:03:44 -08:00
Devon Govett
fda5b400e6 Another path parser fix 2014-02-25 00:42:25 -08:00
Devon Govett
06e6419533 Handle reused commands in path parser for last command 2014-02-25 00:08:41 -08:00
Devon Govett
67e6640b92 Fix bug in path parser 2014-02-24 23:44:50 -08:00
Devon Govett
350863bfda Fix the ellipse method 2014-02-24 23:25:41 -08:00
Devon Govett
c1319acff8 Allow 0 opacities 2014-02-24 01:09:27 -08:00
Devon Govett
50b560debf Add Google analytics tracker for website 2014-02-23 00:25:05 -08:00
Devon Govett
b1aec438e2 Fix link 2014-02-22 23:53:48 -08:00
Devon Govett
bea45827c0 Update link to example PDF 2014-02-22 23:45:00 -08:00
Devon Govett
cb2abf97fc Add script to generate website 2014-02-22 23:33:36 -08:00
Devon Govett
cd0d096e8c Update readme 2014-02-22 23:27:14 -08:00
Devon Govett
98b1e4f953 Clarify docs on margin vs margins properties (#199) 2014-02-22 16:49:46 -08:00
Devon Govett
f3c6e890b2 Release v0.4.2 2014-02-19 12:04:42 -08:00
Devon Govett
4257e69e07 Fix typo 2014-02-19 12:02:57 -08:00
Devon Govett
8139b4fa30 Add missing word count 2014-02-19 12:02:53 -08:00
Devon Govett
55ffe97f03 Merge pull request #200 from dariusk/master
Correcting for edge case in line wrapping
2014-02-19 11:58:50 -08:00
Darius Kazemi
d7336a4bd0 "Dangling" single word lines now get emitted
This commit adds an extra emit to a required line break if there's a "dangling" word on the end.
2014-02-19 14:54:47 -05:00
Darius Kazemi
6637dca8eb Correcting for edge case in line wrapping
If you look at the flow of the `eachWord` function, you'll notice that we add the word to the buffer if the width of the word `w` is less than the space available.

There's an edge case where `linebreaker` says that a line break is required on a word (because of a manual break: `theword\n`) and the width of the word being considered is greater than `spaceLeft`. In the current pdfkit, if this is the case:

 * we do not append the word to the buffer
 * we emit the line
 * we break and move on to the next line, starting with a clean line

This omits the word entirely.

This commit makes it so that we only break the line and start with a clean line if we already had the space to write the line to the buffer. Otherwise, we append the word to the buffer and go to a new line.
2014-02-19 13:38:50 -05:00
Devon Govett
5a530712c3 Fix some typos 2014-02-18 08:26:54 -08:00
Devon Govett
c77d23f1f9 Use old (working) version of codemirror 2014-02-18 08:26:42 -08:00
Devon Govett
b381bd5b05 npm ignore docs 2014-02-18 00:36:43 -08:00
Devon Govett
3c79667337 Add dev dependencies for generator script 2014-02-18 00:34:08 -08:00
Devon Govett
82dd9fc7b7 Update readme with link to new pdf guide 2014-02-18 00:24:31 -08:00
Devon Govett
7825ed41dd Override continued link in doc generator 2014-02-18 00:12:35 -08:00
Devon Govett
a5a9ac4da8 Release 0.4.1 2014-02-18 00:01:11 -08:00
Devon Govett
e11a800af3 Add new self-generating guide
Takes Literate CoffeeScript (Markdown) files and generates a PDF. Includes syntax highlighting for the examples, and even runs them to show the results inline. Good example of new rich text features. Eventually, the website will be generated from the same Markdown files.
2014-02-17 23:43:22 -08:00
Devon Govett
a0901c75a0 Make sure we use global.setImmediate 2014-02-17 23:20:32 -08:00
Devon Govett
cb81273b49 Trim spaces from the ends of lines when right aligning 2014-02-17 22:02:55 -08:00
Devon Govett
18512661b5 Apply current transformation to annotations 2014-02-17 22:01:49 -08:00
Devon Govett
415d5a371a Reset continuedX if there is more than one line 2014-02-17 13:53:39 -08:00
Devon Govett
7fdc3b8d14 Fix for multiple continuations on the same line 2014-02-17 13:35:49 -08:00
Devon Govett
d5374d6c58 Release v0.4.0 2014-02-17 02:35:55 -08:00
Devon Govett
3f15f761e2 Calculate lineWidth of underline/strike based on font size 2014-02-17 02:34:27 -08:00
Devon Govett
fae1b4a208 Update example to use link and underline options instead of annotations 2014-02-17 02:28:18 -08:00
Devon Govett
7df3ccdf4d Add link, underline, and strike options to text method. #183
Should make it way easier to do these common things.
2014-02-17 02:21:29 -08:00
Devon Govett
6a323bf0a2 Make sure justified wordSpacing value is always > 0 2014-02-17 02:19:11 -08:00
Devon Govett
9357ff5a4a Extend text options for continued segments 2014-02-17 02:18:40 -08:00
Devon Govett
00c6dabf3c Stop wrapping text after filling specified height, and add ellipsis option. Fixes #149.
No longer makes new pages after user specified heights, but still does so if no height is given (page edge by default). This works with multiple columns too. It will fill the columns in the horizontal and vertical space provided and then stop, rather than going to a new page.

Also adds the `ellipsis` option which can be used to append an ellipsis character like `…` to the end of the cut off text. If you set `ellipsis: true`, it will use the default ellipsis character, but you can also set the option to any string you want to use.
2014-02-16 20:08:19 -08:00
Devon Govett
25c0348755 Fix character width calculations (#185, #169)
Follows TTF hmtx rules for missing entries, and encodes WinAnsi first for builtin fonts.
2014-02-16 19:46:35 -08:00
Devon Govett
5b1f030329 Move WinAnsi encoding to AFMFont class 2014-02-16 19:43:25 -08:00
Devon Govett
087f3f4aca Reset the X position to the starting X after line wrapping is done (unless continued) 2014-02-16 18:33:39 -08:00
Devon Govett
da593f077f Force break words that are longer than the entire line into pieces. Fixes #159. 2014-02-16 15:55:41 -08:00
Devon Govett
630bfd74a6 Make sure we don't divide by zero when calculating justification word spacing 2014-02-16 15:54:42 -08:00
Devon Govett
5a74677c66 Store continuedX on the line wrapper instead of the document, since the line wrapper is now reused 2014-02-16 14:48:40 -08:00
Devon Govett
7fafa309b8 Use the same line wrapper instance when text is continued, fixes multicolumns 2014-02-16 14:41:26 -08:00
Devon Govett
50b6bab177 Make sure we don't pass the maximum Y position 2014-02-16 13:17:45 -08:00
Devon Govett
b0de8975f9 Fix justification of embedded TTF fonts. Closes #52.
Encodes each word separately instead of relying on Tw operator, which only supports character code 32, which isn't used by embedded fonts.

Still to do: proper unicode word breaking with support for non-space separated languages.
2014-02-16 13:10:18 -08:00
Devon Govett
670bb09bf7 Reset X position to start on new page (fix for columns) 2014-02-16 13:07:24 -08:00