|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
When trying to render a page I get a internal exception from EO.PDF:
Code: C#
size must be between 0 and 129
Parameter name: size
Actual value was 130. Restarting renditioner.
Qumram.Business.Renditions.RenditionerEnvironmentException size must be between 0 and 129
Parameter name: size
Actual value was 130.
Qumram.Business.Renditions.RenditionResultData Run(Qumram.Business.Renditions.RenditionRunData)
The Type it throws in is EO.Pdf.Internal.kz The actual stack-trace looks like this:
Code: C#
at EO.Pdf.Internal.lm.h.a(g A_0, Byte[] A_1, Int32 A_2)
at EO.Pdf.Internal.lm.a(a A_0)
at EO.Pdf.HtmlToPdfSession.a(a A_0)
at EO.Pdf.HtmlToPdfSession.a(jw A_0, String A_1, String A_2, Int32 A_3, Int32 A_4, Boolean A_5)
at EO.Pdf.HtmlToPdfSession.a(jw A_0, String A_1, String A_2, Boolean A_3)
at EO.Pdf.HtmlToPdfSession.LoadHtml(String html)
at EO.Pdf.HtmlToPdf.ConvertHtml(String html, PdfDocument doc, HtmlToPdfOptions options)
at Qumram.Business.Renditions.InternalRenditioner.Render(RenditionRunData data, Boolean includeImages, PdfDocument& document) in e:\qumram\Source-Trunk\qumram-business\library\src\Renditions\InternalRenditioner.cs:line 61
at Qumram.Business.Renditions.InternalRenditioner.Render(RenditionRunData data) in e:\qumram\Source-Trunk\qumram-business\library\src\Renditions\InternalRenditioner.cs:line 42
at Qumram.Business.Renditions.RenditionerComponent.<>c__DisplayClass4.<Run>b__0() in e:\qumram\Source-Trunk\qumram-business\library\src\Renditions\RenditionerComponent.cs:line 33
at Qumram.Common.Util.TaskUtil.<>c__DisplayClass1.<TimeoutExecute>b__0() in e:\qumram\Source-Trunk\qumram-common\library\src\Util\TaskUtil.cs:line 67
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
The page I try to render is the entry page http://www.qumram.chThe options I use are as follows:
Code: C#
return new HtmlToPdfOptions {
BaseUrl = baseUrl,
AutoFitX = HtmlToPdfAutoFitMode.ScaleToFit,
ProxyInfo = new ProxyInfo(ProxyType.HTTP, host, port),
AutoBookmark = true,
SSLVerificationMode = SSLVerificationMode.None,
PageSize = PdfPageSizes.A4,
AdditionalHeaders = new[] { string.Format("{0}: {1}", data.HeaderName, data.HeaderValue) },
Cookies = cookies,
GeneratePageImages = true,
HeaderHtmlFormat = string.Format(Defaults.Config.Renditions.HtmlPatternWrapper, data.HeaderHtml),
HeaderHtmlPosition = 0.4f,
FooterHtmlFormat = string.Format(Defaults.Config.Renditions.HtmlPatternWrapper, data.FooterHtml),
MinLoadWaitTime = 0,
MaxLoadWaitTime = Defaults.Config.Renditions.MaxLoadWaitTimeInMs,
NoCache = true // May slow down renditions, but otherwise the versions cannot be ensured.
};
where baseUrl equals "http://www.qumram.com/". The additional header values are just some additional information we process on our side. Footer and Header html are just ordinary html (no links or similar).
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
What version of EO.Pdf do you use? We tested your page with the latest version and it seems to work fine.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi, we use 5.0.75.2 What version have you been testing with? Can you give me a hint, what the "between 0 and 129 error" means? Because of the obfuscation it's hard to understand the meaning of that. This could help us find out whether it is due to some special configuration. Best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
The problem seems to occur when you have a custom font whose font size is set to a number greater than 129. The custom font is a font that import with CSS @font-face. It appears that when we pass the number to Windows API to create a font of that size, the API call fails.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi, thx for the information. That makes sense. Still we have the issue, that we do not control the sites we are rendering pdf's for (qumram.com we of course control, but this is just a test site). In general I think, it should not throw because of that (or at least throw with a more specific error message). If the rendering fails for font-sizes bigger than 129 anyway, why not just limit sizes to that? I.e. before calling the Windows API just use the ceiling value (or first hand it in unlimited and if the Windows API throws then truncate it to the max value). This would at least allow the page to still be rendered albeit not perfect. We do not know when we will run into this issue in other customer projects and cant enforce all customers to just use smaller fonts. Best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
Yes. What you suggested makes sense. We will try to add the code to limit the range. In the mean time, please try to isolate a test case that you can use to verify the problem. That way when we provide you the new build you will be able to verify whether it will indeed work for you.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi, sounds great! We have a test scenario here that reliably reproduces the issue. So as soon as you have a fix we will be able to react quickly to check whether it solves the issue. Best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi, We have posted a new build that automatically limits the font size within valid range. You can download the new build from our download page. Please take a look and let us know if it resolves the problem for you. If that does not resolve the problem, then we will need you to send us a test project that we can use to reproduce the problem. See here for more details: http://www.essentialobjects.com/forum/test_project.aspxThanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi, was busy all the time. Will most probably check tomorrow and inform about the outcomes. Best regards, Simon
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi, we tried with our test-environment and now the page renders fine. Looks good! Thanks for the quick solution and best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Thank you very much for confirming the fix! Please feel free to let us know if there is anything else.
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Unfortunately I have to re-open that one. While it runs fine now in our development environments (all being Windows 8.1). We found, that it does not work on the test-server (Windows 2008R2, 64bit). We tested with the latest version (5.0.85.2) where the fix should be in place.
Interestingly the Exception has changed: "size must be between 0 and 166 Parameter name: size Actual value was 167."
You may remember that the former message was "0 to 129" and actual value was 130. Maybe just a coincidence but as it is still the same URL (and font size has not changed) I'm wondering whether the value that is acceptable is OS dependent or even something worse (Screen-Driver?) Anyway as the expected and the actual value can obviously be extracted it should be feasible IMHO to wrap this in a Retry-Block that catches and retries with different values. This may be easier than trying to adjust the value beforehand.
We will test that also on our Windows Server 2012 environment.
Best regards,
Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
Can you provide the Url/test app that we can use to reproduce this problem? The previous fix limit size to 1 to 128, so this has to be a different place.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
I'll provide a download-link with a test-tool/url/environment combination for reproduction. The values are different, but it's still the same page (http://www.qumram.com/) and the same error message. I'll post the URL here as soon as the test-package is ready. Best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
No problem. You can follow the instructions in the previous link to send the test app to us. We will look into it as soon as we receive that.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Already got confirmation regarding the environment: Windows Server 2008 R2 Service Pack 1 64bit
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Hi,
I sent an e-mail with the test-project to support as described above. The subject of the e-mail contains this forum post subject to easier reference.
E-Mail Content: "as promised find attached the test-project we use to reproduce the issue:
To reproduce. 1. Make sure that the reference in the project points to a correct EO.pdf location 2. Execute qumram-eo-test-tool /url=http://www.qumram.com/ /output=qumram.pdf /options=src\HtmlToPdfOptions\QumramDefaultOptions.xml
Important: The error does not reproduce on all environments. We cannot reproduce it for example on Windows 8.1. The environment where the error occurs is: Windows Server 2008 R2 Service Pack 1 64bit"
Best regards,
Simon
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
Just a short ping: Have you received the test-project? Tell me if you need something more. Best regards, Simon
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,196
|
Hi,
Sorry about the delay. We have been trying to reproduce the problem on different systems but have not been able to reproduce it. Can you download the latest build from our download page, then try to catch the full stack trace when this problem occurs? We might be able to find out something based on that.
Thanks!
|
|
Rank: Advanced Member Groups: Member
Joined: 5/14/2013 Posts: 45
|
I'll do so! Best regards, Simon
|
|