150 Commits

Author SHA1 Message Date
Mihai Bazon
b60fe860e0 Fix reading UInt32
In JS, 0x80 << 24 yields a negative result.  Also, 0x80000000|0 < 0.
Bitwise ops should be avoided for very long unsigned ints.
2014-08-16 11:57:54 +03:00
Devon Govett
1241997715 Refactor font loading code and add support for ArrayBuffers 2014-07-29 09:42:48 -07:00
Aaron Fischer
c2c61bb2e2 added support for add font as Uint8Array 2014-07-29 09:15:39 -07:00
Devon Govett
e58a7ce809 Formatting 2014-07-14 20:48:00 -07:00
jkol
64df00fa13 Added "valign" option to image "fit" scaling
valign can be set to "center" or "bottom" now and when "valign" === "center" is combined with "align" === "center" any aspect ratio image can be centered into a bounding area.
2014-07-14 18:23:11 -05:00
Ryan Wersal
c77add8f56 Remove text state handling as it doesn't surive graphic stack saves/restores
Saving and/or restoring the graphics state causes each text object to have to
reinitialize that text state. As a result, the mode/characterSpacing commands
would not get re-added until their value(s) had changed.
2014-05-10 01:11:06 -05:00
Ryan Wersal
aadc589a62 Improve sizing of text underline 2014-05-09 00:05:17 -05:00
Ryan Wersal
acc0a2e4ba Use a regex to capture the base64 encoded string 2014-05-06 00:43:02 -05:00
Ryan Wersal
2b34173dec Add ability to add base64 URI images 2014-05-05 22:47:33 -05:00
Devon Govett
a6f6f4df8a Don't use trimRight since it isn't supported in IE 2014-04-14 09:58:26 -07:00
Devon Govett
6e447cae7a Don't embed fonts that haven't been referenced 2014-04-13 19:54:18 -07:00
Devon Govett
22499ee4bd Include a static list of standard fonts so they can be included by browserify/brfs 2014-04-12 20:48:29 -07:00
Devon Govett
78946e97fc Rework mixin so it can be statically compiled by browserify 2014-04-12 20:47:54 -07:00
Devon Govett
98489d64a8 Store the font name 2014-04-12 20:45:42 -07:00
Devon Govett
4b8b031188 Don't embed fonts until they are actually used 2014-04-12 20:45:15 -07:00
Devon Govett
bb9b77cb82 Allow loading fonts from Buffers in addition to filenames 2014-04-12 20:44:19 -07:00
Devon Govett
801981728c Make AFMFont.open different from constructor 2014-04-12 20:35:14 -07:00
Devon Govett
8c51ee077f Make sure that sfnt key exists in dfont so we don't throw random errors 2014-04-09 23:44:31 -07:00
Devon Govett
f463512b2f Don't embed fonts more than once 2014-04-09 23:41:40 -07:00
Devon Govett
87fd69b7e5 Don't overwrite cmap method 2014-04-09 23:41:06 -07:00
Devon Govett
ae28782eb1 Fix writing indexed PNG palettes 2014-04-09 09:51:59 -07:00
Devon Govett
876db9e067 Don't set the Length key on images. It will be set by the PDFReference class automatically 2014-04-09 09:51:43 -07:00
Devon Govett
665fd935ef Make loading images from buffers way faster by not converting to a string inadvertently 2014-04-06 19:19:17 -07:00
Devon Govett
8eece7e9ea Make sure heightOfString doesn't break pages 2014-03-29 20:36:10 -07:00
Devon Govett
c72b50927c Add heightOfString method that uses the line wrapper without actually adding content to the document.
Very useful for layout purposes
2014-03-29 20:22:21 -07:00
Devon Govett
cf564ac3da Fixes for text justification 2014-03-29 19:56:36 -07:00
Devon Govett
16e00aa9e2 Allow setting compress option from constructor 2014-03-29 19:45:41 -07:00
Devon Govett
0907968905 Don't store all objects in memory, just offsets once they are written 2014-03-23 18:16:42 -07:00
Devon Govett
f6c4b2c226 Free memory after embedding images 2014-03-23 17:37:13 -07:00
Devon Govett
b570ac219e Simplify image loading 2014-03-23 17:31:07 -07:00
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
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
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
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
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
3f15f761e2 Calculate lineWidth of underline/strike based on font size 2014-02-17 02:34:27 -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