QuestPDF icon indicating copy to clipboard operation
QuestPDF copied to clipboard

Crash in Arm64 cpu in linux.

Open MiyamuraMiyako opened this issue 3 years ago • 4 comments

Describe the bug Program can't run normal in arm64 cpu,

To Reproduce Just wite simple Document class and new it.

Expected behavior Produce pdf.

Screenshots

Additional context

MiyamuraMiyako avatar Nov 15 '22 13:11 MiyamuraMiyako

I added Nodepend library.

Stack overflow.
Repeat 34876 times:
--------------------------------
   at QuestPDF.Infrastructure.TextStyle.GetHashCode()
   at System.Collections.Generic.GenericEqualityComparer`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetHashCode(System.__Canon)
--------------------------------
   at QuestPDF.Infrastructure.TextStyle.GetHashCode()
   at System.ValueTuple`3[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[QuestPDF.Infrastructure.TextStyleProperty, QuestPDF, Version=2022.11.0.0, Culture=neutral, PublicKeyToken=null],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetHashCode()
   at System.Collections.Concurrent.ConcurrentDictionary`2[[System.ValueTuple`3[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[QuestPDF.Infrastructure.TextStyleProperty, QuestPDF, Version=2022.11.0.0, Culture=neutral, PublicKeyToken=null],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetOrAdd(System.ValueTuple`3<System.__Canon,QuestPDF.Infrastructure.TextStyleProperty,System.__Canon>, System.Func`2<System.ValueTuple`3<System.__Canon,QuestPDF.Infrastructure.TextStyleProperty,System.__Canon>,System.__Canon>)
   at QuestPDF.Infrastructure.TextStyleManager.Mutate(QuestPDF.Infrastructure.TextStyle, QuestPDF.Infrastructure.TextStyleProperty, System.Object)
   at QuestPDF.Fluent.TextStyleExtensions.FontSize(QuestPDF.Infrastructure.TextStyle, Single)
   at QuestPDF.Fluent.TextSpanDescriptorExtensions+<>c__DisplayClass6_0`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<FontSize>b__0(QuestPDF.Infrastructure.TextStyle)
   at QuestPDF.Fluent.TextSpanDescriptor.MutateTextStyle(System.Func`2<QuestPDF.Infrastructure.TextStyle,QuestPDF.Infrastructure.TextStyle>)
   at QuestPDF.Fluent.TextSpanDescriptorExtensions.FontSize[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, Single)
   at SayedCPClient.PrintTests.ReceiptDoc+<>c.<Compose>b__2_5(QuestPDF.Fluent.ColumnDescriptor)
   at QuestPDF.Fluent.ColumnExtensions.Column(QuestPDF.Infrastructure.IContainer, System.Action`1<QuestPDF.Fluent.ColumnDescriptor>)
   at SayedCPClient.PrintTests.ReceiptDoc+<>c__DisplayClass2_0.<Compose>b__1(QuestPDF.Fluent.PageDescriptor)
   at QuestPDF.Fluent.PageExtensions.Page(QuestPDF.Infrastructure.IDocumentContainer, System.Action`1<QuestPDF.Fluent.PageDescriptor>)
   at SayedCPClient.PrintTests.ReceiptDoc.Compose(QuestPDF.Infrastructure.IDocumentContainer)
   at QuestPDF.Drawing.DocumentGenerator.RenderDocument[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, QuestPDF.Infrastructure.IDocument)
   at QuestPDF.Drawing.DocumentGenerator.GeneratePdf(System.IO.Stream, QuestPDF.Infrastructure.IDocument)
   at QuestPDF.Fluent.GenerateExtensions.GeneratePdf(QuestPDF.Infrastructure.IDocument, System.IO.Stream)
   at QuestPDF.Fluent.GenerateExtensions.GeneratePdf(QuestPDF.Infrastructure.IDocument, System.String)
   at Program.<Main>$(System.String[])

MiyamuraMiyako avatar Nov 18 '22 07:11 MiyamuraMiyako

I have same question too. How do I solve it?

san0129 avatar Dec 21 '22 02:12 san0129

I found dependencies for linux deployment on the official website: https://www.questpdf.com/going-production/platform-specific-dependencies

My Environment .Net6 ubuntu 20+

My project worked normal after installing the following 3 dependency packages: SkiaSharp.NativeAssets.Linux.NoDependencies HarfBuzzSharp.NativeAssets.Linux

You may need to install fontconfig: apt-get update && apt-get install -y libfontconfig1

This is my Dockerfile: image

But according to the website to install SkiaSharp.NativeAssets.Linux.NoDependencies doesn't work

san0129 avatar Dec 21 '22 05:12 san0129

@san0129 All packages are x86,,64, not arm or etc. This requires self-compilation of Skiasharp and HarfBuzzSharp for arm64

MiyamuraMiyako avatar Dec 22 '22 14:12 MiyamuraMiyako