PDFsharp & MigraDoc Foundation

PDFsharp - A .NET library for processing PDF & MigraDoc Foundation - Creating documents on the fly
It is currently Thu Mar 28, 2024 6:53 pm

All times are UTC


Forum rules


Please read this before posting on this forum: Forum Rules



Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Wed Mar 02, 2011 3:00 pm 
Offline

Joined: Thu Jun 24, 2010 10:29 am
Posts: 5
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 5705 times ]
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 56 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Privacy Policy, Data Protection Declaration, Impressum
Powered by phpBB® Forum Software © phpBB Group