From 0dfcc8f7b1341b4a9cc1e06f4f2cd0644ff82903 Mon Sep 17 00:00:00 2001 From: Sylvain Jermini Date: Sat, 16 Nov 2019 19:09:48 +0100 Subject: [PATCH] List item painter: set font specification when calling drawText #366 --- .../openhtmltopdf/render/ListItemPainter.java | 3 +++ .../expected/list-counter-after-page-break.pdf | Bin 0 -> 1676 bytes .../html/list-counter-after-page-break.html | 17 +++++++++++++++++ .../VisualRegressionTest.java | 9 +++++++++ 4 files changed, 29 insertions(+) create mode 100644 openhtmltopdf-examples/src/main/resources/visualtest/expected/list-counter-after-page-break.pdf create mode 100644 openhtmltopdf-examples/src/main/resources/visualtest/html/list-counter-after-page-break.html diff --git a/openhtmltopdf-core/src/main/java/com/openhtmltopdf/render/ListItemPainter.java b/openhtmltopdf-core/src/main/java/com/openhtmltopdf/render/ListItemPainter.java index a2f146ecc..e4025bedc 100755 --- a/openhtmltopdf-core/src/main/java/com/openhtmltopdf/render/ListItemPainter.java +++ b/openhtmltopdf-core/src/main/java/com/openhtmltopdf/render/ListItemPainter.java @@ -134,6 +134,9 @@ private static void drawText(RenderingContext c, BlockBox box, IdentValue listSt c.getOutputDevice().setColor(box.getStyle().getColor()); c.getOutputDevice().setFont(box.getStyle().getFSFont(c)); + if (c.getOutputDevice() instanceof AbstractOutputDevice) { + ((AbstractOutputDevice) c.getOutputDevice()).setFontSpecification(box.getStyle().getFontSpecification()); + } c.getTextRenderer().drawString( c.getOutputDevice(), text.getText(), x, y); } diff --git a/openhtmltopdf-examples/src/main/resources/visualtest/expected/list-counter-after-page-break.pdf b/openhtmltopdf-examples/src/main/resources/visualtest/expected/list-counter-after-page-break.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f4dfeb1ceaab2d3a2e09a02743f95debabf397b9 GIT binary patch literal 1676 zcmb_cTWB0r7zPo8XI;FesDyfytWDZx&pER*J2N&-Np^QMjn%kGnqUx|W>1o_yK~l= zS&dp7vBf-uS|NQ%+f*VLBwj#KvAz^-t1nip7}QGbg@}*@D?Vt%*4A@o*>p22mZZXm8hgDP?JeiQxzVq-E^o3CxVOEw#PqR7%zUOsmlsZA7?}L zfvaqYYX0Y(S}>;`$SH~{<$RFZ1KuDcF%2NY%6gn*WMug`lC+Oys9?wS_>^*CFf`G% zXG7>Ht~tJV@iuk-mMg6XM&6p-bq-!zb3B!9nCja1;?5l%Rd=2CHeI-Tb2h)@lYH0= zHJpBYcoNTEw{XX2(>?cWoH)4d)`{^O7j};SKHFIxTK~@Q;+N|8=hH76KYrCydt&Q> zAMl~cvz_ltH;}czZkc;y_1Nr(Ule|B-!xL+F-niFLVKUO_s_7{rD9p7trEPJdNMfs zknl+@+dDx^$)eP?qOYLq+@6iR>)UrPUaaO_kIl$WR(m(q?0#X_;h8t5J_vui>dKMn zbN4r&nOl9~<8H9O=UA1jzOw$c+K;rF`u(#n)lQ8WhkK^Y6D@<=U%&kB{77UDD^K5S zY@ayt_chPSzkQwmrMhkJsYf5N{tC^EuD!EuVc!E)$G#h{Ykp|1?d?m$pU%IR2hV?V zsQ1k1$!`7NNwOgp>bm^usq@z}tbG12RETkx8ZA;G6k9GqpPMBU0!dJ#q+H_$HxQy- z7NJsVA{9U#g>9aH6U1d80JWGd^@~8AR*t$2Ei9V>C}s2Ivg`qfx-GlecC8Xnrba(! zsmS7;Sy_rS%bE7datt}NA7DsifR`Q^SCp6n`@>5Z;UX0ew3jdv=PU;>tnw8LU{Z_| z6~JP0rJWq-$0uMHSGiCFm?}mWz;u~UCy1$B5X&)wD}4#B^d + + + + +

+ bolded text +

+
    +
  1. counter should not be bold
  2. +
+ + diff --git a/openhtmltopdf-examples/src/test/java/com/openhtmltopdf/visualregressiontests/VisualRegressionTest.java b/openhtmltopdf-examples/src/test/java/com/openhtmltopdf/visualregressiontests/VisualRegressionTest.java index 20b45b5e9..ad15ecea7 100644 --- a/openhtmltopdf-examples/src/test/java/com/openhtmltopdf/visualregressiontests/VisualRegressionTest.java +++ b/openhtmltopdf-examples/src/test/java/com/openhtmltopdf/visualregressiontests/VisualRegressionTest.java @@ -890,6 +890,15 @@ public void testFloatClearBoth() throws IOException { public void testBorderRadius() throws IOException { assertTrue(vt.runTest("border-radius")); } + + /** + * Check counter style after page break, it should not be affected by a previous bolded text, see issue + * https://github.com/danfickle/openhtmltopdf/issues/366 + */ + @Test + public void testListCounterAfterPageBreak() throws IOException { + assertTrue(vt.runTest("list-counter-after-page-break")); + } // TODO: // + Elements that appear just on generated overflow pages.