Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

font-family Helvetica lead to IndexError #982

Closed
fabiobatalha opened this issue Oct 28, 2019 · 5 comments
Closed

font-family Helvetica lead to IndexError #982

fabiobatalha opened this issue Oct 28, 2019 · 5 comments

Comments

@fabiobatalha
Copy link

The HTMLs bellow are identical, the only thing that changes between them is the font-family.

When using the { font-family: Helvetica; }, WeasyPrint throw the exception IndexError (Traceback bellow)

HTML Working:
arial.zip

HTML Failing:
helvetica.zip

Traceback:

  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/__init__.py", line 211, in write_pdf
    font_config=font_config).write_pdf(
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/__init__.py", line 168, in render
    font_config)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/document.py", line 393, in _render
    [Page(page_box, enable_hinting) for page_box in page_boxes],
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/document.py", line 393, in <listcomp>
    [Page(page_box, enable_hinting) for page_box in page_boxes],
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/__init__.py", line 126, in layout_document
    pages = list(make_all_pages(context, root_box, html, pages))
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/pages.py", line 803, in make_all_pages
    page, resume_at = remake_page(i, context, root_box, html)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/pages.py", line 742, in remake_page
    page_number, page_state)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/pages.py", line 553, in make_page
    positioned_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/blocks.py", line 376, in block_container_layout
    for line, resume_at in lines_iterator:
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/inlines.py", line 53, in iter_line_boxes
    absolute_boxes, fixed_boxes, first_letter_style)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/inlines.py", line 70, in get_next_linebox
    skip_stack = skip_first_whitespace(linebox, skip_stack)
  File "/home/fabiobatalha/.Envs/converter/lib/python3.6/site-packages/weasyprint/layout/inlines.py", line 210, in skip_first_whitespace
    result = skip_first_whitespace(box.children[index], next_skip_stack)
IndexError: tuple index out of range
@Tontyna
Copy link
Contributor

Tontyna commented Oct 29, 2019

Cannot reproduce the crash. Probably because my Helvetica is different from your Helvetica. But it might be a duplicate of #953.
@fabiobatalha could you check whether #956 fixes the bug?

@Tontyna
Copy link
Contributor

Tontyna commented Oct 29, 2019

If #956 doesnt fix it, then it's probably related to #984

@fabiobatalha
Copy link
Author

@Tontyna

It is not related to #984

Both examples are not using column-span

@Tontyna
Copy link
Contributor

Tontyna commented Oct 29, 2019

Does #956 fix it?

@fabiobatalha
Copy link
Author

I was just testing it. Yes #956 fixed the issue :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants