pdf-writer 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +1 -1
- data/LICENCE +9 -3
- data/README +1 -1
- data/bin/techbook +1 -1
- data/demo/chunkybacon.rb +1 -1
- data/demo/code.rb +1 -1
- data/demo/colornames.rb +1 -1
- data/demo/demo.rb +1 -1
- data/demo/gettysburg.rb +1 -1
- data/demo/hello.rb +1 -1
- data/demo/individual-i.rb +1 -1
- data/demo/pac.rb +1 -1
- data/demo/qr-language.rb +4 -4
- data/demo/qr-library.rb +1 -1
- data/lib/pdf/charts.rb +1 -1
- data/lib/pdf/charts/stddev.rb +2 -2
- data/lib/pdf/math.rb +1 -1
- data/lib/pdf/quickref.rb +17 -15
- data/lib/pdf/simpletable.rb +24 -23
- data/lib/pdf/techbook.rb +1 -1
- data/lib/pdf/writer.rb +21 -52
- data/lib/pdf/writer/arc4.rb +1 -1
- data/lib/pdf/writer/fontmetrics.rb +2 -1
- data/lib/pdf/writer/fonts/MustRead.html +19 -1
- data/lib/pdf/writer/graphics.rb +3 -3
- data/lib/pdf/writer/graphics/imageinfo.rb +365 -365
- data/lib/pdf/writer/lang.rb +1 -1
- data/lib/pdf/writer/lang/en.rb +1 -1
- data/lib/pdf/writer/object.rb +1 -1
- data/lib/pdf/writer/object/action.rb +1 -1
- data/lib/pdf/writer/object/annotation.rb +1 -1
- data/lib/pdf/writer/object/catalog.rb +1 -1
- data/lib/pdf/writer/object/contents.rb +1 -5
- data/lib/pdf/writer/object/destination.rb +1 -1
- data/lib/pdf/writer/object/encryption.rb +1 -1
- data/lib/pdf/writer/object/font.rb +1 -1
- data/lib/pdf/writer/object/fontdescriptor.rb +1 -1
- data/lib/pdf/writer/object/fontencoding.rb +1 -1
- data/lib/pdf/writer/object/image.rb +1 -5
- data/lib/pdf/writer/object/info.rb +3 -7
- data/lib/pdf/writer/object/outline.rb +1 -1
- data/lib/pdf/writer/object/outlines.rb +1 -1
- data/lib/pdf/writer/object/page.rb +1 -1
- data/lib/pdf/writer/object/pages.rb +1 -1
- data/lib/pdf/writer/object/procset.rb +1 -1
- data/lib/pdf/writer/object/viewerpreferences.rb +1 -1
- data/lib/pdf/writer/ohash.rb +1 -1
- data/lib/pdf/writer/oreader.rb +1 -1
- data/lib/pdf/writer/state.rb +1 -1
- data/lib/pdf/writer/strokestyle.rb +1 -1
- data/manual.pwd +1 -1
- metadata +115 -119
- data/demo/pagenumber.rb +0 -79
data/ChangeLog
CHANGED
@@ -105,6 +105,6 @@
|
|
105
105
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
106
106
|
# for full licensing information.
|
107
107
|
#
|
108
|
-
# $Id: ChangeLog
|
108
|
+
# $Id: ChangeLog 184 2007-12-10 03:18:48Z sandal $
|
109
109
|
#++
|
110
110
|
# vim: sts=2 sw=2 ts=4 et ai tw=77
|
data/LICENCE
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
= PDF::Writer for Ruby
|
2
2
|
Homepage:: http://rubyforge.org/projects/ruby-pdf/
|
3
|
-
Copyright:: Copyright � 2003�2005 Austin Ziegler.
|
4
|
-
Summary:: MIT-style
|
3
|
+
Copyright:: Copyright � 2003�2005 Austin Ziegler.
|
4
|
+
Summary:: MIT-style
|
5
|
+
|
6
|
+
This project had a change of maintainers in November, 2007.
|
7
|
+
New developments are now copyrighted by Gregory Brown and Michael Milner,
|
8
|
+
unless otherwise noted.
|
9
|
+
|
10
|
+
---
|
5
11
|
|
6
12
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
13
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -121,5 +127,5 @@ feature for any purpose other than as set forth in the applicable license
|
|
121
127
|
grant. Adobe has other patents in various fields, none of which are hereby
|
122
128
|
licensed.
|
123
129
|
|
124
|
-
$Id: LICENCE
|
130
|
+
$Id: LICENCE 184 2007-12-10 03:18:48Z sandal $
|
125
131
|
# vim: sts=2 sw=2 ts=4 et ai tw=77
|
data/README
CHANGED
@@ -28,6 +28,6 @@ Transaction::Simple 1.3.0 or better.
|
|
28
28
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
29
29
|
# for full licensing information.
|
30
30
|
#
|
31
|
-
# $Id: README
|
31
|
+
# $Id: README 184 2007-12-10 03:18:48Z sandal $
|
32
32
|
#++
|
33
33
|
# vim: sts=2 sw=2 ts=4 et ai tw=77
|
data/bin/techbook
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
8
8
|
# for full licensing information.
|
9
9
|
#
|
10
|
-
# $Id: techbook
|
10
|
+
# $Id: techbook 184 2007-12-10 03:18:48Z sandal $
|
11
11
|
#++
|
12
12
|
begin
|
13
13
|
require 'pdf/techbook'
|
data/demo/chunkybacon.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
# and are from "Why's (Poignant) Guide to Ruby" at
|
11
11
|
# <http://poignantguide.net/ruby> with permission.
|
12
12
|
#
|
13
|
-
# $Id: chunkybacon.rb
|
13
|
+
# $Id: chunkybacon.rb 184 2007-12-10 03:18:48Z sandal $
|
14
14
|
#++
|
15
15
|
begin
|
16
16
|
require 'pdf/writer'
|
data/demo/code.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
# I'll need to play with the X position some to get it right. This will NOT
|
12
12
|
# make it into the 1.0 release. Maybe 1.1 or 1.2.
|
13
13
|
#
|
14
|
-
# $Id: code.rb
|
14
|
+
# $Id: code.rb 184 2007-12-10 03:18:48Z sandal $
|
15
15
|
#++
|
16
16
|
begin
|
17
17
|
require 'pdf/writer'
|
data/demo/colornames.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: colornames.rb
|
9
|
+
# $Id: colornames.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/demo.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: demo.rb
|
9
|
+
# $Id: demo.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/gettysburg.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: gettysburg.rb
|
9
|
+
# $Id: gettysburg.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/hello.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: hello.rb
|
9
|
+
# $Id: hello.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/individual-i.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: individual-i.rb
|
9
|
+
# $Id: individual-i.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/pac.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: pac.rb
|
9
|
+
# $Id: pac.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
begin
|
12
12
|
require 'pdf/writer'
|
data/demo/qr-language.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# See LICENCE in the main distribution for full licensing information.
|
12
12
|
#
|
13
|
-
# $Id: qr-language.rb
|
13
|
+
# $Id: qr-language.rb 184 2007-12-10 03:18:48Z sandal $
|
14
14
|
#++
|
15
15
|
begin
|
16
16
|
require 'pdf/writer'
|
@@ -42,7 +42,7 @@ usage: #{File.basename($0)} [paper-size]
|
|
42
42
|
end
|
43
43
|
|
44
44
|
PDF::QuickRef.make(paper, 3) do
|
45
|
-
|
45
|
+
# pdf.compressed = true
|
46
46
|
pdf.info.author = "Ryan Davis"
|
47
47
|
pdf.info.title = "Ruby Language Quick Reference"
|
48
48
|
pdf.info.subject = "The Ruby Programming Language"
|
@@ -167,11 +167,11 @@ variables, and operators.
|
|
167
167
|
range = RangeThingy.new(lower_bound) .. RangeThingy.new(upper_bound)
|
168
168
|
EOS
|
169
169
|
|
170
|
-
h2 "
|
170
|
+
h2 "Regular Expressions"
|
171
171
|
pre <<-'EOS'
|
172
172
|
/normal regex/[xim]
|
173
173
|
%r|alternate form|[xim]
|
174
|
-
|
174
|
+
Regexp.new(pattern, options)
|
175
175
|
EOS
|
176
176
|
pairs <<-'EOS'
|
177
177
|
. any character except newline
|
data/demo/qr-library.rb
CHANGED
data/lib/pdf/charts.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: charts.rb
|
9
|
+
# $Id: charts.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
# A namespace for charts that can be drawn on PDF::Writer canvases.
|
12
12
|
module PDF::Charts
|
data/lib/pdf/charts/stddev.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: stddev.rb
|
9
|
+
# $Id: stddev.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
require 'pdf/writer'
|
12
12
|
require 'pdf/charts'
|
@@ -20,7 +20,7 @@ require 'ostruct'
|
|
20
20
|
# The scale of responses is the vertical scale; the average data points
|
21
21
|
# and standard deviation values are the horizontal scale.
|
22
22
|
class PDF::Charts::StdDev
|
23
|
-
VERSION = '1.1.
|
23
|
+
VERSION = '1.1.4'
|
24
24
|
|
25
25
|
# A data element.
|
26
26
|
DataPoint = Struct.new(:label, :average, :stddev)
|
data/lib/pdf/math.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: math.rb
|
9
|
+
# $Id: math.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
# Encapsulate some of the mathematical calculations that need to be
|
12
12
|
# performed when working with PDF documents. All angles in PDF::Writer are
|
data/lib/pdf/quickref.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: quickref.rb
|
9
|
+
# $Id: quickref.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
require 'pdf/simpletable'
|
12
12
|
|
@@ -51,7 +51,7 @@ require 'pdf/simpletable'
|
|
51
51
|
# qr.lines "Text to put after the header."
|
52
52
|
# qr.save_as "MyQuickRef.pdf"
|
53
53
|
class PDF::QuickRef
|
54
|
-
VERSION = '1.1.
|
54
|
+
VERSION = '1.1.4'
|
55
55
|
|
56
56
|
# Create the quick reference document. +paper+ is passed unchanged to
|
57
57
|
# the PDF::Writer.new; the page is always created landscape. Margins
|
@@ -62,7 +62,7 @@ class PDF::QuickRef
|
|
62
62
|
#
|
63
63
|
# After the columns are started, lines will be drawn between column
|
64
64
|
# positions.
|
65
|
-
def initialize(paper = "LETTER", columns = 3)
|
65
|
+
def initialize(paper = "LETTER", columns = 3, column_separators_visible = true)
|
66
66
|
@pdf = PDF::Writer.new(:paper => paper, :orientation => :landscape)
|
67
67
|
@pdf.margins_pt 18
|
68
68
|
@pdf.y = @pdf.absolute_top_margin
|
@@ -107,20 +107,22 @@ class PDF::QuickRef
|
|
107
107
|
@ptab.maximum_width = @pdf.column_width - 10
|
108
108
|
@ltab.maximum_width = @pdf.column_width - 10
|
109
109
|
|
110
|
+
if column_separators_visible
|
110
111
|
# Put lines between the columns.
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
112
|
+
all = @pdf.open_object
|
113
|
+
@pdf.save_state
|
114
|
+
@pdf.stroke_color! Color::RGB::Black
|
115
|
+
@pdf.stroke_style PDF::Writer::StrokeStyle::DEFAULT
|
116
|
+
(1 .. (columns - 1)).each do |ii|
|
117
|
+
x = @pdf.left_margin + (@pdf.column_width * ii)
|
118
|
+
x += (@pdf.column_gutter * (ii - 0.5))
|
119
|
+
@pdf.line(x, @pdf.page_height - @pdf.top_margin, x, @pdf.bottom_margin)
|
120
|
+
@pdf.stroke
|
121
|
+
end
|
122
|
+
@pdf.restore_state
|
123
|
+
@pdf.close_object
|
124
|
+
@pdf.add_object(all, :all_pages)
|
120
125
|
end
|
121
|
-
@pdf.restore_state
|
122
|
-
@pdf.close_object
|
123
|
-
@pdf.add_object(all, :all_pages)
|
124
126
|
end
|
125
127
|
|
126
128
|
# Access to the raw PDF canvas for normal PDF::Writer configuration.
|
data/lib/pdf/simpletable.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: simpletable.rb
|
9
|
+
# $Id: simpletable.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
require 'pdf/writer'
|
12
12
|
require 'transaction/simple/group'
|
@@ -14,7 +14,7 @@ require 'transaction/simple/group'
|
|
14
14
|
# This class will create tables with a relatively simple API and internal
|
15
15
|
# implementation.
|
16
16
|
class PDF::SimpleTable
|
17
|
-
VERSION = '1.1.
|
17
|
+
VERSION = '1.1.4'
|
18
18
|
|
19
19
|
include Transaction::Simple
|
20
20
|
|
@@ -555,7 +555,7 @@ class PDF::SimpleTable
|
|
555
555
|
mx = 0
|
556
556
|
|
557
557
|
if @show_headings
|
558
|
-
|
558
|
+
old_y = y
|
559
559
|
|
560
560
|
pdf.fill_color @heading_color
|
561
561
|
_height, y = __table_column_headings__(pdf, pos, max_width,
|
@@ -566,12 +566,13 @@ class PDF::SimpleTable
|
|
566
566
|
y1 = y
|
567
567
|
|
568
568
|
if @shade_headings
|
569
|
-
pdf.close_object
|
570
569
|
pdf.fill_color! @shade_heading_color
|
571
570
|
pdf.rectangle(x0 - @gap / 2, y, x1 - x0, _height).fill
|
572
|
-
pdf.
|
573
|
-
pdf
|
574
|
-
|
571
|
+
pdf.fill_color @heading_color
|
572
|
+
__table_column_headings__(pdf, pos, max_width, height,
|
573
|
+
descender, @row_gap,
|
574
|
+
@heading_font_size, old_y)
|
575
|
+
pdf.fill_color @text_color
|
575
576
|
end
|
576
577
|
|
577
578
|
dm = pdf.absolute_left_margin - base_left_margin
|
@@ -769,29 +770,29 @@ class PDF::SimpleTable
|
|
769
770
|
|
770
771
|
# Find the maximum widths of the text within each column. Default to
|
771
772
|
# zero.
|
772
|
-
def __find_table_max_width__(pdf)
|
773
|
-
max_width = PDF::Writer::OHash.new(
|
773
|
+
def __find_table_max_width__(pdf)
|
774
|
+
max_width = PDF::Writer::OHash.new(-1)
|
774
775
|
|
775
|
-
|
776
|
-
|
777
|
-
|
776
|
+
# Find the maximum cell widths based on the data and the headings.
|
777
|
+
# Passing through the data multiple times is unavoidable as we must
|
778
|
+
# do some analysis first.
|
778
779
|
@data.each do |row|
|
779
|
-
|
780
|
-
|
781
|
-
|
780
|
+
@cols.each do |name, column|
|
781
|
+
w = pdf.text_width(row[name].to_s, @font_size)
|
782
|
+
w *= PDF::SimpleTable::WIDTH_FACTOR
|
782
783
|
|
783
|
-
|
784
|
-
|
784
|
+
max_width[name] = w if w > max_width[name]
|
785
|
+
end
|
785
786
|
end
|
786
787
|
|
787
788
|
@cols.each do |name, column|
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
789
|
+
title = column.heading.title if column.heading
|
790
|
+
title ||= column.name
|
791
|
+
w = pdf.text_width(title, @heading_font_size)
|
792
|
+
w *= PDF::SimpleTable::WIDTH_FACTOR
|
793
|
+
max_width[name] = w if w > max_width[name]
|
793
794
|
end
|
794
|
-
max_width
|
795
|
+
max_width
|
795
796
|
end
|
796
797
|
private :__find_table_max_width__
|
797
798
|
|
data/lib/pdf/techbook.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
8
8
|
# for full licensing information.
|
9
9
|
#
|
10
|
-
# $Id: techbook.rb
|
10
|
+
# $Id: techbook.rb 184 2007-12-10 03:18:48Z sandal $
|
11
11
|
#++
|
12
12
|
require 'pdf/simpletable'
|
13
13
|
require 'pdf/charts/stddev'
|
data/lib/pdf/writer.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
7
|
# for full licensing information.
|
8
8
|
#
|
9
|
-
# $Id: writer.rb
|
9
|
+
# $Id: writer.rb 184 2007-12-10 03:18:48Z sandal $
|
10
10
|
#++
|
11
11
|
require 'thread'
|
12
12
|
require 'open-uri'
|
@@ -19,7 +19,7 @@ require 'color'
|
|
19
19
|
module PDF
|
20
20
|
class Writer
|
21
21
|
# The version of PDF::Writer.
|
22
|
-
VERSION = '1.1.
|
22
|
+
VERSION = '1.1.4'
|
23
23
|
|
24
24
|
# Escape the text so that it's safe for insertion into the PDF
|
25
25
|
# document.
|
@@ -370,9 +370,8 @@ class PDF::Writer
|
|
370
370
|
# Initialize the default font families.
|
371
371
|
init_font_families
|
372
372
|
|
373
|
-
# Items formerly in EZWriter
|
374
373
|
@font_size = 10
|
375
|
-
@pageset = []
|
374
|
+
@pageset = [@pages.first_page]
|
376
375
|
|
377
376
|
if paper.kind_of?(Array)
|
378
377
|
if paper.size == 4
|
@@ -400,7 +399,6 @@ class PDF::Writer
|
|
400
399
|
@y = absolute_top_margin
|
401
400
|
# Get the ID of the page that was created during the instantiation
|
402
401
|
# process.
|
403
|
-
@pageset[1] = @pages.first_page
|
404
402
|
|
405
403
|
fill_color! Color::RGB::Black
|
406
404
|
stroke_color! Color::RGB::Black
|
@@ -697,38 +695,6 @@ class PDF::Writer
|
|
697
695
|
:add => 32
|
698
696
|
}
|
699
697
|
|
700
|
-
# Encrypts the document. This will set the user and owner passwords that
|
701
|
-
# will be used to access the document and set the permissions the user
|
702
|
-
# has with the document. The passwords are limited to 32 characters.
|
703
|
-
#
|
704
|
-
# The permissions provided are an array of symbols, allowing identified
|
705
|
-
# users to perform particular actions:
|
706
|
-
# <tt>:print</tt>:: Print.
|
707
|
-
# <tt>:modify</tt>:: Modify text or objects.
|
708
|
-
# <tt>:copy</tt>:: Copy text or objects.
|
709
|
-
# <tt>:add</tt>:: Add text or objects.
|
710
|
-
def encrypt(user_pass = nil, owner_pass = nil, permissions = [])
|
711
|
-
perms = ["11000000"].pack("B8")
|
712
|
-
|
713
|
-
permissions.each do |perm|
|
714
|
-
perms += ENCRYPT_OPTIONS[perm] if ENCRYPT_OPTIONS[perm]
|
715
|
-
end
|
716
|
-
|
717
|
-
@arc4 ||= PDF::ARC4.new
|
718
|
-
owner_pass ||= user_pass
|
719
|
-
|
720
|
-
options = {
|
721
|
-
:owner_pass => owner_pass,
|
722
|
-
:user_pass => user_pass,
|
723
|
-
:permissions => perms,
|
724
|
-
}
|
725
|
-
@encryption = PDF::Writer::Object::Encryption.new(self, options)
|
726
|
-
end
|
727
|
-
|
728
|
-
def encrypted?
|
729
|
-
not @encryption.nil?
|
730
|
-
end
|
731
|
-
|
732
698
|
# should be used for internal checks, not implemented as yet
|
733
699
|
def check_all_here
|
734
700
|
end
|
@@ -743,7 +709,7 @@ class PDF::Writer
|
|
743
709
|
|
744
710
|
xref = []
|
745
711
|
|
746
|
-
content = "%PDF-#{@version}\n
|
712
|
+
content = "%PDF-#{@version}\n%âãÏÓ\n"
|
747
713
|
pos = content.size
|
748
714
|
|
749
715
|
objects.each do |oo|
|
@@ -2186,12 +2152,14 @@ class PDF::Writer
|
|
2186
2152
|
# number of pages in the page numbering scheme. The default +pattern+ is
|
2187
2153
|
# "<PAGENUM> of <TOTALPAGENUM>".
|
2188
2154
|
#
|
2189
|
-
# If +starting+ is non-nil, this is the first page number. The number of
|
2190
|
-
# total pages will be adjusted to account for this.
|
2191
2155
|
#
|
2192
2156
|
# Each time page numbers are started, a new page number scheme will be
|
2193
2157
|
# started. The scheme number will be returned.
|
2194
|
-
def start_page_numbering(x, y, size, pos = nil, pattern = nil
|
2158
|
+
def start_page_numbering(x, y, size, pos = nil, pattern = nil)
|
2159
|
+
if starting
|
2160
|
+
raise "We have currently disabled starting values for start_page_numbering" +
|
2161
|
+
" because it is buggy."
|
2162
|
+
end
|
2195
2163
|
pos ||= :left
|
2196
2164
|
pattern ||= "<PAGENUM> of <TOTALPAGENUM>"
|
2197
2165
|
starting ||= 1
|
@@ -2279,7 +2247,7 @@ class PDF::Writer
|
|
2279
2247
|
def add_page_numbers
|
2280
2248
|
# This will go through the @page_numbering array and add the page
|
2281
2249
|
# numbers are required.
|
2282
|
-
if @page_numbering
|
2250
|
+
if @page_numbering
|
2283
2251
|
page_count = @pageset.size
|
2284
2252
|
pn_tmp = @page_numbering.dup
|
2285
2253
|
|
@@ -2288,10 +2256,10 @@ class PDF::Writer
|
|
2288
2256
|
# First, find the total pages for this schemes.
|
2289
2257
|
page = page_number_search(:stop_total, scheme)
|
2290
2258
|
|
2291
|
-
if page
|
2259
|
+
if page
|
2292
2260
|
total_pages = page
|
2293
2261
|
else
|
2294
|
-
page = page_number_search(:stop_total_next, scheme)
|
2262
|
+
page = page_number_search(:stop_total_next, scheme)
|
2295
2263
|
if page
|
2296
2264
|
total_pages = page
|
2297
2265
|
else
|
@@ -2300,7 +2268,7 @@ class PDF::Writer
|
|
2300
2268
|
end
|
2301
2269
|
|
2302
2270
|
status = nil
|
2303
|
-
|
2271
|
+
pattern = pos = x = y = size = nil
|
2304
2272
|
|
2305
2273
|
@pageset.each_with_index do |page, index|
|
2306
2274
|
next if status.nil? and scheme[index].nil?
|
@@ -2309,11 +2277,6 @@ class PDF::Writer
|
|
2309
2277
|
if info
|
2310
2278
|
if info[:start]
|
2311
2279
|
status = true
|
2312
|
-
if info[:starting]
|
2313
|
-
delta = info[:starting] - index
|
2314
|
-
else
|
2315
|
-
delta = index
|
2316
|
-
end
|
2317
2280
|
|
2318
2281
|
pattern = info[:pattern]
|
2319
2282
|
pos = info[:pos]
|
@@ -2333,8 +2296,8 @@ class PDF::Writer
|
|
2333
2296
|
|
2334
2297
|
if status
|
2335
2298
|
# Add the page numbering to this page
|
2336
|
-
num = index +
|
2337
|
-
total = total_pages
|
2299
|
+
num = index + 1
|
2300
|
+
total = total_pages
|
2338
2301
|
patt = pattern.gsub(/<PAGENUM>/, num.to_s).gsub(/<TOTALPAGENUM>/, total.to_s)
|
2339
2302
|
reopen_object(page.contents.first)
|
2340
2303
|
|
@@ -2783,5 +2746,11 @@ class PDF::Writer
|
|
2783
2746
|
# Save the PDF as a file to disk.
|
2784
2747
|
def save_as(name)
|
2785
2748
|
File.open(name, "wb") { |f| f.write self.render }
|
2749
|
+
end
|
2750
|
+
|
2751
|
+
# memory improvement for transaction-simple
|
2752
|
+
def _post_transaction_rewind
|
2753
|
+
@objects.each { |e| e.instance_variable_set(:@parent,self) }
|
2786
2754
|
end
|
2755
|
+
|
2787
2756
|
end
|