summaryrefslogtreecommitdiff
path: root/spec/page_spec.rb
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2022-06-23 13:41:07 -0600
committerDan Allen <dan.j.allen@gmail.com>2022-06-23 15:03:03 -0600
commit57cb24a04c990b8b190469e4bf24243c8550dd70 (patch)
treef0eb6a6a5ece2a891e3cb91d381f8668d8ce1b52 /spec/page_spec.rb
parent4975a77a7bd89fb1be49ccda54781034f0ff3836 (diff)
backport fix for #2253 restore column layout after importing page(s) from PDF
Diffstat (limited to 'spec/page_spec.rb')
-rw-r--r--spec/page_spec.rb101
1 files changed, 101 insertions, 0 deletions
diff --git a/spec/page_spec.rb b/spec/page_spec.rb
index 4486d1dc..bbe5823d 100644
--- a/spec/page_spec.rb
+++ b/spec/page_spec.rb
@@ -707,6 +707,107 @@ describe 'Asciidoctor::PDF::Converter - Page' do
column_gap = (images[1][:x] - (images[0][:x] + images[0][:width])).to_f
(expect column_gap).to eql 12.0
end
+
+ it 'should restore columns following imported page' do
+ pdf = to_pdf <<~'EOS', pdf_theme: { page_columns: 2, page_column_gap: 12 }, analyze: true
+ = Document Title
+
+ left column
+
+ image::blue-letter.pdf[]
+
+ left column
+
+ <<<
+
+ right column
+ EOS
+
+ midpoint = pdf.pages[0][:size][0] * 0.5
+ (expect pdf.pages).to have_size 3
+ left_column_text = pdf.find_text 'left column'
+ right_column_text = pdf.find_unique_text 'right column'
+ (expect left_column_text).to have_size 2
+ initial_left_column_y = left_column_text[0][:y]
+ (expect left_column_text[0][:page_number]).to eql 1
+ (expect left_column_text[0][:x]).to eql 48.24
+ (expect left_column_text[1][:page_number]).to eql 3
+ (expect left_column_text[1][:x]).to eql 48.24
+ (expect left_column_text[1][:y]).to be > initial_left_column_y
+ (expect right_column_text[:page_number]).to eql 3
+ (expect right_column_text[:x]).to be > midpoint
+ (expect left_column_text[1][:y]).to eql right_column_text[:y]
+ end
+
+ it 'should reset column index following imported page' do
+ pdf = to_pdf <<~'EOS', pdf_theme: { page_columns: 2, page_column_gap: 12 }, analyze: true
+ = Document Title
+
+ left column
+
+ <<<
+
+ right column
+
+ image::blue-letter.pdf[]
+
+ left column
+
+ <<<
+
+ right column
+ EOS
+
+ midpoint = pdf.pages[0][:size][0] * 0.5
+ (expect pdf.pages).to have_size 3
+ left_column_text = pdf.find_text 'left column'
+ right_column_text = pdf.find_text 'right column'
+ (expect left_column_text).to have_size 2
+ (expect right_column_text).to have_size 2
+ (expect left_column_text[0][:page_number]).to eql 1
+ (expect left_column_text[0][:x]).to eql 48.24
+ (expect right_column_text[0][:page_number]).to eql 1
+ (expect right_column_text[0][:x]).to be > midpoint
+ (expect left_column_text[1][:page_number]).to eql 3
+ (expect left_column_text[1][:x]).to eql 48.24
+ (expect right_column_text[1][:page_number]).to eql 3
+ (expect right_column_text[1][:x]).to be > midpoint
+ end
+
+ it 'should restore column layout following missing imported page' do
+ pdf = to_pdf <<~'EOS', pdf_theme: { page_columns: 2, page_column_gap: 12 }, analyze: true
+ = Document Title
+
+ left column
+
+ <<<
+
+ right column
+
+ image::blue-letter.pdf[page=10]
+
+ left column
+
+ <<<
+
+ right column
+ EOS
+
+ midpoint = pdf.pages[0][:size][0] * 0.5
+ (expect pdf.pages).to have_size 2
+ left_column_text = pdf.find_text 'left column'
+ right_column_text = pdf.find_text 'right column'
+ (expect left_column_text).to have_size 2
+ (expect right_column_text).to have_size 2
+ (expect left_column_text[0][:page_number]).to eql 1
+ (expect left_column_text[0][:x]).to eql 48.24
+ (expect right_column_text[0][:page_number]).to eql 1
+ (expect right_column_text[0][:x]).to be > midpoint
+ (expect left_column_text[1][:page_number]).to eql 2
+ (expect left_column_text[1][:x]).to eql 48.24
+ (expect right_column_text[1][:page_number]).to eql 2
+ (expect right_column_text[1][:x]).to be > midpoint
+ end
end
context 'Background' do