diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2022-06-23 13:41:07 -0600 |
|---|---|---|
| committer | Dan Allen <dan.j.allen@gmail.com> | 2022-06-23 15:03:03 -0600 |
| commit | 57cb24a04c990b8b190469e4bf24243c8550dd70 (patch) | |
| tree | f0eb6a6a5ece2a891e3cb91d381f8668d8ce1b52 /spec/page_spec.rb | |
| parent | 4975a77a7bd89fb1be49ccda54781034f0ff3836 (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.rb | 101 |
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 |
