PDFsharp & MigraDoc Foundation
http://forum.pdfsharp.com/

MigraDoc: Bug in justified paragraphs with hyphenation
http://forum.pdfsharp.com/viewtopic.php?f=3&t=1568
Page 1 of 1

Author:  aadler [ Wed Mar 02, 2011 3:00 pm ]
Post subject:  MigraDoc: Bug in justified paragraphs with hyphenation

Hi!

I think I encountered a bug in a fairly rare use case. I've got some paragraphs with alignment set to Justified. The paragraph text contains pre-hyphenated Text, that is: In every place where a word-break may occur a soft-hyphen character is added. I was a bit suprised that this was working out of the box - the hyphen char in the rendered PDF document is only printed when a word break actually did appear.
Unfortunately there is still a drawback: Some paragraphs with justified alignment don't work properly. I've attached an image where the bug can be seen in action.

This (VB.NET) code reproduces the error (a bit long):
Code:
Dim doc As New Document()
doc.Styles(StyleNames.Normal).ParagraphFormat.Alignment = ParagraphAlignment.Justify
Dim sect As Section = doc.AddSection()
sect.AddParagraph("Lo­rem ip­sum do­lor sit amet con­sec­te­tu­er ur­na so­da­les ju­sto mas­sa sem­per. Par­tu­ri­ent congue non Prae­sent sit lo­b­or­tis se­nec­tus at ut dui cur­sus. Ut eget Cras ri­di­cu­lus elit nibh Donec adi­pis­cing tin­cid­unt nibh tur­pis. Ac odio vel ne­tus sem non do­lor pel­len­tes­que Pel­len­tes­que in­ter­dum vi­tae. Con­se­quat nibh nibh or­ci Ves­ti­bu­lum In ma­le­sua­da Cu­ra­bi­tur at Fusce la­ci­nia. Ege­stas sem­per nunc elit tel­lus est na­to­que odio In sa­pi­en enim. Ip­sum nec ha­bi­tas­se dui gra­vi­da Nul­lam me­tus ali­quam dui eu pul­vi­nar. Dic­tumst ege­stas et Sed Mor­bi Mor­bi est amet ma­gna at ha­bi­tant. In na­to­que Nul­la con­se­quat ha­bi­tant ut tin­cid­unt nibh mi Nul­lam sem­per. Cu­ra­bi­tur Mor­bi pe­de tel­lus ve­ne­na­tis nul­la Nul­la odio or­ci et non. Mau­ris elit Cu­ra­bi­tur nunc Ali­quam dic­tumst con­sec­te­tu­er fe­lis sed pe­de Cum. Hac pel­len­tes­que hend­re­rit tel­lus tin­cid­unt eget sed ju­sto Cu­ra­bi­tur con­se­quat Ali­quam. Ne­que mas­sa auc­tor id con­val­lis elit wi­si or­ci Mor­bi lao­reet ur­na. Augue mat­tis eros fa­ci­li­sis Nam nec tel­lus gra­vi­da nul­la ac tur­pis. Mo­les­tie tin­cid­unt so­ci­is nec ve­lit non nibh elit quis eget sit. Eu id con­val­lis tur­pis cur­sus gra­vi­da Ves­ti­bu­lum tur­pis nisl wi­si Lo­rem.", StyleNames.Normal)
sect.AddParagraph("Ju­sto Quis­que con­di­men­tum mat­tis est ju­sto pre­ti­um et nibh est con­di­men­tum. Pha­sel­lus Pro­in ne­que sem vi­tae nibh do­lor Nam Nunc me­tus nul­la. Tin­cid­unt Mor­bi In Pro­in et wi­si amet li­be­ro pe­de Ali­quam ne­tus. Mae­cen­as Fusce fa­ci­li­sis or­ci sem­per Nam Pha­sel­lus port­ti­tor par­tu­ri­ent Cu­ra­bi­tur li­be­ro. Ve­lit elit vi­tae Lo­rem frin­gil­la leo adi­pis­cing Donec sem­per elit non. Rhon­cus mi tris­ti­que amet in­ter­dum fau­ci­bus et wi­si or­ci ve­lit id. Et Nul­la tor­tor ut elit augue elit nunc gra­vi­da id vi­tae. Pre­ti­um enim congue vi­tae pe­de ri­sus in­ter­dum id Nam Nam elit. Lo­rem id ac­cumsan tur­pis or­ci ali­quet in­ter­dum pe­de Donec sed me­tus. Vi­tae augue ip­sum ul­lam­cor­per sem­per ac.", StyleNames.Normal)
sect.AddParagraph("Congue pre­ti­um tin­cid­unt ip­sum fer­men­tum or­ci Vi­va­mus pre­ti­um Sus­pen­dis­se In tel­lus. Sed la­cus tin­cid­unt est tel­lus fa­ci­li­sis elit mor­bi Mae­cen­as et pe­de. Et dis enim tur­pis congue con­di­men­tum Ves­ti­bu­lum nisl lao­reet eros fau­ci­bus. Sed nisl at tem­pus augue nul­la an­te vel elit mi pre­ti­um. Con­se­quat et la­ci­nia sa­pi­en vel Sus­pen­dis­se a adi­pis­cing fa­ci­li­si ac­cumsan elit. In ar­cu mau­ris id nunc or­ci or­ci fa­ci­li­sis elit nec sa­pi­en. Et vi­tae Sus­pen­dis­se wi­si in Ali­quam nunc an­te nisl eu odio. Con­sec­te­tu­er mau­ris con­se­quat mas­sa est pul­vi­nar Ae­nean eu so­da­les Nam la­cus. Leo or­ci Sed ac tor­tor.", StyleNames.Normal)
sect.AddParagraph("Elit adi­pis­cing Cu­ra­bi­tur quis odio elit mi quis ri­di­cu­lus pre­ti­um et. Et la­cus Sed cur­sus di­g­nis­sim mas­sa mau­ris ul­tri­ces pre­ti­um Ae­nean auc­tor. Ip­sum Ves­ti­bu­lum tin­cid­unt Donec et ut elit eget Pha­sel­lus vi­tae elei­fend. Lo­rem sed a Donec fe­lis Ae­nean ur­na nunc ip­sum fau­ci­bus mau­ris. Vel elit ut elit tor­tor dui elit.", StyleNames.Normal)
sect.AddParagraph("Ne­que mat­tis id Nam euis­mod pel­len­tes­que dui nec Nul­la Cum amet. At wi­si da­pi­bus sit tor­tor con­di­men­tum ne­que Nul­lam nunc me­tus tem­pus. Mau­ris la­ci­nia In est con­sec­te­tu­er pel­len­tes­que ju­sto elit lo­rem Duis a. Congue id nisl ul­lam­cor­per Mor­bi in id nunc tris­ti­que ip­sum la­ci­nia. Do­lor non non Cu­ra­bi­tur la­cus or­ci ju­sto Duis Vi­va­mus Ali­quam mor­bi. Con­di­men­tum ut eget Fusce lao­reet congue tin­cid­unt ma­le­sua­da lo­b­or­tis con­se­quat Donec. Fa­ci­li­sis leo Cum mi et In Mor­bi hac pha­re­tra mau­ris fa­ci­li­sis. Nul­la feu­gi­at no­num­my In­te­ger mas­sa ac ul­tri­ces con­di­men­tum pel­len­tes­que nunc Mae­cen­as. Leo sce­le­ris­que id pla­tea Ae­nean pe­de li­gu­la amet congue dui pre­ti­um. Ma­le­sua­da lo­rem lo­b­or­tis Sed hac sa­pi­en Nul­lam amet sem­per Nul­la nul­la. Con­val­lis ri­sus con­di­men­tum et eget cur­sus mas­sa mau­ris Quis­que Ves­ti­bu­lum enim. So­da­les vi­tae con­val­lis et leo Cu­ra­bi­tur tin­cid­unt vo­lut­pat Pha­sel­lus sem­per Mau­ris. Me­tus Cu­ra­bi­tur mon­tes sa­git­tis ac­cumsan sem mor­bi hend­re­rit sem ar­cu vel. Lo­b­or­tis Nunc lao­reet ar­cu no­num­my Nam dis Nul­la me­tus tin­cid­unt pu­rus. Tem­pus Vi­va­mus mi Pel­len­tes­que est at fa­ci­li­sis et wi­si.", StyleNames.Normal)

Dim renderer As New PdfDocumentRenderer(True, PdfSharp.Pdf.PdfFontEmbedding.Always)
renderer.Document = doc
renderer.RenderDocument()
renderer.PdfDocument.Save("test-doc.pdf")
Process.Start("test-doc.pdf")

EDIT: The browser interprets the soft hyphen chars and doesn't display it. If you copy the code you should get the paragraph text with the inserted soft hyphen chars.

I hope this bug is fixable. If not - are there other ways to work with hyphenated and justified text?

Attachments:
rendering-bug.png
rendering-bug.png [ 95.26 KiB | Viewed 5898 times ]

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/