Compare commits

...

613 Commits

Author SHA1 Message Date
MarcinZiabek eb61b19abf 2022.12.6 release 2023-05-09 02:32:28 +02:00
Marcin Ziąbek e684b9ec6d Table: fixed zindex rendering issue (#553) 2023-05-09 01:47:27 +02:00
MarcinZiabek 6074ed0e7e Font fallback: fixed regression 2023-04-27 17:01:50 +02:00
MarcinZiabek a560c6c864 Release 2022.12.4 2023-04-22 10:01:53 +02:00
Marcin Ziąbek 327c412c7d Fix(#483): TextStyle.Fallback incorrectly inherits parent's and global properties (#532)
* Fixed applying text style for fallback styles

* Code refactoring

* FontStyle: making method arguments explicit

* Bug fixes + test

* Minor code refactoring
2023-04-22 09:57:07 +02:00
Marcin Ziąbek 4b5eeea896 Update README.md 2023-04-18 23:50:24 +02:00
MarcinZiabek ef89be9710 Improvement: updated the CreateNotMatchingFontException text to mention that glyph checking operation can be disabled with the Settings.CheckIfAllTextGlyphsAreAvailable setting 2023-04-17 02:15:19 +02:00
MarcinZiabek 176566801b 2022.12.3 release 2023-04-17 00:10:46 +02:00
MarcinZiabek 22a696fab9 Fix(#470): the inlined element is shown only once in the header but should be repeated on each page 2023-04-17 00:01:32 +02:00
MarcinZiabek 9809faccb6 Improvement (#528): added validation for color arguments 2023-04-16 23:49:47 +02:00
MarcinZiabek 6ad465b9fa Fix(#499): inconsistent text height when using multiple lines 2023-04-16 11:42:38 +02:00
MarcinZiabek e6c7befac4 Revert "Building QuestPDF Previewer for dotnet 7"
This reverts commit b05f76f848.
2023-03-15 19:48:56 +01:00
MarcinZiabek be3e4b59ec Revert "Update dotnet-desktop.yml"
This reverts commit e751bfd2ff.
2023-03-15 19:48:56 +01:00
Marcin Ziąbek e751bfd2ff Update dotnet-desktop.yml 2023-03-15 10:53:44 +01:00
MarcinZiabek b05f76f848 Building QuestPDF Previewer for dotnet 7 2023-03-14 12:28:04 +01:00
MarcinZiabek b5d7dbb346 2022.12.2 release 2023-03-12 22:14:17 +01:00
Marcin Ziąbek 0ab73f4f2b Update README.md 2023-03-11 22:18:34 +01:00
MarcinZiabek 458b379208 Remove loop to calculate maximum (target) width, remove capturing lambda 2023-03-07 21:22:45 +01:00
Marcin Ziąbek c3c0d7631c Merge pull request #454 from thomasstevens89/main
Update DynamicOptimized Example to use non-deprecated methods
2023-03-07 21:03:04 +01:00
MarcinZiabek a3ea8bceb6 Text rendering optimization: cache codepoint for space 2023-03-06 22:29:06 +01:00
MarcinZiabek 455d187897 Code formatting improvement 2023-03-06 21:42:38 +01:00
Marcin Ziąbek 65e5d36ded Merge pull request #474 from AntonyCorbett/fix_render_bug_382
Fix #382
2023-03-06 21:38:23 +01:00
Marcin Ziąbek ad5e8ab27d Merge pull request #489 from AntonyCorbett/perf_linq_02
Small perf improvement in LINQ (2)
2023-03-06 20:15:53 +01:00
Marcin Ziąbek a17197addc Merge pull request #490 from AntonyCorbett/var_scope_change_01
reduce scope of variable (remove unneeded calc)
2023-03-06 20:12:27 +01:00
Marcin Ziąbek a1e7cbbeb3 Merge pull request #505 from avobelk/fix-fallback-not-found-glyph
fix glyph check in FontFallback.MatchFallbackOption
2023-03-06 20:10:23 +01:00
Marcin Ziąbek c00ac5e9c7 Merge pull request #493 from AntonyCorbett/var_scope_change_02
reduce variable scope
2023-03-06 11:08:53 +01:00
Marcin Ziąbek 0e0a8d5d69 Merge pull request #488 from AntonyCorbett/perf_linq_01
Small perf improvement in LINQ
2023-03-06 10:54:10 +01:00
Marcin Ziąbek bc341da6dd Merge pull request #476 from AntonyCorbett/small_dictionary_perf
prevent double lookup
2023-03-06 10:49:00 +01:00
Alexander V 6096771b51 fix glyph check in FontFallback.MatchFallbackOption 2023-02-23 23:09:30 +03:00
Antony Corbett 4f097d0fed reduce variable scope 2023-02-13 17:06:15 +00:00
Antony Corbett 24beea80c7 reduce scope of variable (remove unneeded calc) 2023-02-12 14:06:55 +00:00
Antony Corbett e1e5778ff0 Small perf improvement in LINQ 2023-02-12 14:01:41 +00:00
Antony Corbett 8679391609 Small perf improvement in LINQ 2023-02-12 13:59:31 +00:00
Marcin Ziąbek c1b60287ca Update README.md 2023-02-12 00:01:47 +01:00
Marcin Ziąbek 011e1b7ce9 Update README.md 2023-02-10 00:21:17 +01:00
Antony Corbett 5fd72cbb4b prevent double lookup 2023-02-03 15:10:57 +00:00
Antony Corbett 7284998657 Fix #382 2023-02-03 10:20:39 +00:00
Marcin Ziąbek 30bd7420e2 Merge pull request #467 from AntonyCorbett/fix_exception_ctor
Fix exception ctor call.
2023-01-29 22:22:13 +01:00
Marcin Ziąbek bd48688670 Merge pull request #466 from AntonyCorbett/fix_multiple_enum
Avoid multiple enumeration
2023-01-29 22:20:48 +01:00
Marcin Ziąbek 68e3efde59 Merge pull request #465 from AntonyCorbett/unit_test_user_agent_fix
Add user agent string
2023-01-29 22:18:05 +01:00
Marcin Ziąbek 805fd55d94 Minor code formatting 2023-01-29 22:17:22 +01:00
MarcinZiabek b3a3deb354 Added example showing how to detect span position in text block (hack) 2023-01-29 22:00:14 +01:00
MarcinZiabek 68e4a10e81 Deleted obsolete performance tests 2023-01-29 22:00:14 +01:00
Antony Corbett e15a21ab0e Fix exception ctor call. 2023-01-26 14:31:44 +00:00
Antony Corbett f851221718 avoid multiple enumeration 2023-01-26 14:29:40 +00:00
Antony Corbett 91c93e68b5 Add user agent string 2023-01-26 13:49:42 +00:00
Marcin Ziąbek 3dcc35be97 Update README.md 2023-01-23 21:21:49 +01:00
Marcin Ziąbek 3f32c6e2c5 Update README.md 2023-01-19 10:07:09 +01:00
Thomas Stevens f1f609ccc1 use content() not stack() 2023-01-14 12:17:41 -05:00
Thomas Stevens 5c07485cc1 Update DynamicOptimizedExample to use non-deprecated methods 2023-01-14 12:09:11 -05:00
Marcin Ziąbek 42684ec180 Update README.md 2023-01-14 00:54:40 +01:00
MarcinZiabek 08f9f706ce Adjusted package details 2023-01-13 22:53:25 +01:00
MarcinZiabek 1f199423b0 Package description: use images from trusted sources 2023-01-13 22:48:40 +01:00
Marcin Ziąbek d8e640fcf3 Update README.md 2023-01-13 22:30:22 +01:00
MarcinZiabek fb02d97a10 Improved package description 2023-01-13 22:28:19 +01:00
MarcinZiabek d5f8a884d6 Adjusted package description 2023-01-13 22:05:31 +01:00
Marcin Ziąbek 5de5be6429 Update dotnet-desktop.yml 2023-01-13 21:41:08 +01:00
MarcinZiabek 96d57b241e 2022.12.1 2023-01-13 21:26:41 +01:00
Marcin Ziąbek 920e61fc5e Update dotnet-desktop.yml 2023-01-11 23:15:17 +01:00
Marcin Ziąbek 1cc606261c Update dotnet-desktop.yml 2023-01-11 23:04:22 +01:00
Marcin Ziąbek 0a6c021fe9 Update README.md 2023-01-11 22:54:23 +01:00
Marcin Ziąbek b65ee32daf Update README.md 2023-01-11 22:54:01 +01:00
MarcinZiabek e496917d84 Updated readme 2023-01-11 22:27:51 +01:00
MarcinZiabek a5004b986c Exposed missing API for dynamic components 2023-01-11 22:24:59 +01:00
MarcinZiabek 84d7fcf41f Improved documentation for the DocumentLayoutExceptionThreshold setting by providing the unit information 2023-01-10 12:23:48 +01:00
MarcinZiabek 641cc6dee2 Fixed: loading fonts from embedded resource via the FontManager.RegisterFontFromEmbeddedResource method 2023-01-09 11:59:11 +01:00
Marcin Ziąbek 9dbed14559 Update README.md 2023-01-06 00:48:29 +01:00
Marcin Ziąbek 6323a8dba2 Update README.md 2023-01-06 00:47:30 +01:00
Marcin Ziąbek 356dbb020d Rename LICENSE to LICENSE.md 2023-01-06 00:46:52 +01:00
Marcin Ziąbek bad6be1a28 Rename readme.md to README.md 2023-01-06 00:46:23 +01:00
MarcinZiabek 27c7383437 Updated repository structure 2023-01-06 00:45:12 +01:00
Marcin Ziąbek ecac19ee46 Update readme.md 2023-01-06 00:14:06 +01:00
Marcin Ziąbek fd37070d3b Update readme.md 2023-01-05 23:31:04 +01:00
Marcin Ziąbek 3b433f3efb Update readme.md 2023-01-04 01:22:56 +01:00
Marcin Ziąbek b3d6a39a98 Update readme.md 2023-01-04 00:34:13 +01:00
Marcin Ziąbek 8d1a449e69 Content cleanup 2023-01-03 23:58:39 +01:00
Marcin Ziąbek 7f0be69ffc Updated stargazers section, fixed readability 2023-01-03 23:53:10 +01:00
Marcin Ziąbek 8553131b99 Readme content adjustments 2023-01-03 23:46:35 +01:00
Marcin Ziąbek 1bf9198a51 Adjusted button sizes 2023-01-03 23:32:58 +01:00
MarcinZiabek 563b782f6a Fixed text configuration for twitter share button 2022-12-26 10:45:34 +01:00
MarcinZiabek edf8db878a Updated share links 2022-12-24 00:34:09 +01:00
Marcin Ziąbek 5fd6488068 Updated github star count 2022-12-24 00:12:35 +01:00
MarcinZiabek d6a7c3703d Removed GitHub sponsors section 2022-12-23 22:32:11 +01:00
MarcinZiabek 5844d3bdba Column: improved layout stability 2022-12-23 00:11:33 +01:00
Marcin Ziąbek 011d44304a Update readme.md 2022-12-14 13:36:56 +01:00
MarcinZiabek a087be8afe Adjusted release notes 2022-12-14 12:33:19 +01:00
MarcinZiabek 483cbb6d46 Nuget packaging: added configuration for readme files 2022-12-13 13:17:53 +01:00
Marcin Ziąbek ec76cbd696 Update dotnet-desktop.yml 2022-12-13 12:26:19 +01:00
Marcin Ziąbek a83d8c43fe Update dotnet-desktop.yml 2022-12-13 12:14:04 +01:00
Marcin Ziąbek 5f25e37f7f Test build script 2022-12-13 12:03:37 +01:00
MarcinZiabek cafd27a60d Upgraded library version, added release notes 2022-12-13 00:08:40 +01:00
MarcinZiabek 5082bbbdf2 Changed letter-spacing to be relative to the font size 2022-12-10 17:34:07 +01:00
MarcinZiabek d2ba21821f Fixed: the Alignment element enforces size constraints in both direction, even if only one is provided 2022-12-09 01:02:47 +01:00
MarcinZiabek 9bef7d64d5 Letter spacing: minor comment improvements 2022-12-06 23:23:19 +01:00
Marcin Ziąbek ca4352addd Merge pull request #398 from Bebo-Maker/letter-spacing
Letter spacing
2022-12-06 23:10:21 +01:00
MarcinZiabek 2906315fa7 Improved obsolete message 2022-12-06 23:05:43 +01:00
Marcin Ziąbek 6f036388b9 Merge pull request #362 from rstm-sf/feature/Text_TextSpanDescriptor
Replace type parameter text for Text
2022-12-06 23:03:44 +01:00
MarcinZiabek 9cd4fd740e Updated nuget dependencies in test projects 2022-12-06 22:51:32 +01:00
MarcinZiabek c97acada76 Upgraded SkiaSharp to 2.88.3 + Avalonia upgrade 2022-12-06 22:49:42 +01:00
Bennet Bo Fenner 19ff9062ad apply letter spacing to each unicode cluster 2022-11-18 15:34:30 +01:00
Bennet Bo Fenner e4f8243c9b add more examples for letter spacing 2022-11-18 15:32:04 +01:00
MarcinZiabek 1060e4a44a Updated QuestPDF.Previewer version to 2022.11.1 2022-11-11 13:02:43 +01:00
MarcinZiabek 983edd5f76 Added example for Arabic support 2022-11-07 12:44:00 +01:00
Marcin Ziąbek 5315165cf5 Update readme.md 2022-11-07 12:31:41 +01:00
MarcinZiabek ee3d87010e Added example: forcing text direction 2022-11-07 12:22:38 +01:00
MarcinZiabek 3ac91c4971 Improved content-direction examples 2022-11-06 01:18:13 +01:00
MarcinZiabek 8e450934ab 2022.11.0 2022-11-06 00:26:33 +01:00
Marcin Ziąbek bf193eec23 Update readme.md 2022-11-05 19:57:35 +01:00
Marcin Ziąbek c9104540aa Merge pull request #349 from QuestPDF/content-direction
Right-to-left content support
2022-11-05 19:54:41 +01:00
Marcin Ziąbek af60d84abe Merge branch 'main' into content-direction 2022-11-05 19:54:20 +01:00
Bennet Bo Fenner 4345ce857f add example for letter spacing 2022-11-03 16:45:49 +01:00
Bennet Bo Fenner 823572bf25 implement letter spacing 2022-11-03 16:45:40 +01:00
Bennet Bo Fenner e6bd63b3ec handle letter spacing in TextStyleManager 2022-11-03 16:43:49 +01:00
Bennet Bo Fenner bbf3d71e7e add letter spacing to TextStyle 2022-11-03 16:43:29 +01:00
MarcinZiabek d56117647b 2022.11.0-alpha1 2022-11-01 21:51:45 +01:00
MarcinZiabek 117913693c Fixed build (missing file) 2022-11-01 21:49:58 +01:00
MarcinZiabek 2ba716a5ba Text: fixed alignment when in RTL mode, added support for default alignment 2022-11-01 21:49:46 +01:00
MarcinZiabek be2108f6fe Inlined: fixed alignment when in RTL mode 2022-11-01 21:49:26 +01:00
MarcinZiabek c08bb963a6 Improved tests for alignment for Text and Inlined elements 2022-11-01 21:49:07 +01:00
MarcinZiabek 8ed8897fd1 Improved: the Inlined element should display children aligned to right (by default) when in RTL mode 2022-11-01 21:32:37 +01:00
MarcinZiabek 2a0e91af68 Fixed: the Decoration element is not aligned to right when in RTL mode 2022-11-01 21:32:04 +01:00
MarcinZiabek f647b79a0a Fixed: the Column element incorrectly displays children when in RTL mode 2022-11-01 21:31:46 +01:00
MarcinZiabek b1286bb536 Improved LTR and RTL tests 2022-11-01 21:26:47 +01:00
MarcinZiabek 43d1a55df0 Fixed: positioning elements in RTL mode in the Column element 2022-11-01 12:55:32 +01:00
MarcinZiabek d1cd7b06db Fixed: Page.Size should use points instead of inches (API consistency) 2022-11-01 12:55:13 +01:00
MarcinZiabek 7bce01d6e6 Fixed: table rendering in the RTL mode 2022-10-29 00:40:36 +02:00
MarcinZiabek e3ff2960e1 Fixed: table initialization process 2022-10-29 00:39:07 +02:00
MarcinZiabek 5d9e6f327b Version adjustments 2022-10-28 23:36:15 +02:00
MarcinZiabek b895931eb9 2022.11.0-alpha0 2022-10-28 23:30:23 +02:00
MarcinZiabek 86a35b7cd3 Deprecated the Grid element 2022-10-28 23:25:10 +02:00
MarcinZiabek 65990ebf59 Added the WordWrappingStability test 2022-10-21 12:05:45 +02:00
MarcinZiabek c348106b3f Page fluent: added possibility to select content direction 2022-10-19 21:45:16 +02:00
MarcinZiabek 9d86e9efd3 DynamicImage: simplified implementation 2022-10-19 20:08:41 +02:00
MarcinZiabek 9770575f9a Column: added content direction support 2022-10-19 20:04:31 +02:00
MarcinZiabek e6e6febf8b Inlined: added content direction support 2022-10-19 20:04:24 +02:00
Marcin Ziąbek 5cbacc7ea1 Update readme.md 2022-10-19 19:15:25 +02:00
MarcinZiabek 8214a8429d 2022.9.1 2022-10-15 23:03:25 +02:00
MarcinZiabek 389b8ce304 Inlined: improved behaviour predictability 2022-10-15 22:49:50 +02:00
MarcinZiabek e1f7cff4aa Fix: performance regression of the Table element #320 2022-10-11 23:19:13 +02:00
MarcinZiabek 6801425082 Fix: cells with RowSpan are not always displayed properly #320 2022-10-11 22:39:31 +02:00
MarcinZiabek ec31c9b063 Fix: CheckIfAllTextGlyphsAreAvailable and Fallback break hyperlinks 2022-10-11 10:31:31 +02:00
Rustam Sayfutdinov 8a57dceb9d Replace type parameter text for Text 2022-10-08 09:07:03 +03:00
MarcinZiabek 6c8867e1b3 Added test: ReusingTheSameImageFileShouldBePossible 2022-10-06 23:20:17 +02:00
Marcin Ziąbek 20d86cbfde Update readme.md 2022-10-05 22:49:03 +02:00
MarcinZiabek 16a164e5b8 Example: achieve proportional height division 2022-10-05 01:15:36 +02:00
Marcin Ziąbek 261f087b46 Update readme.md 2022-10-04 12:30:36 +02:00
Marcin Ziąbek c876350b05 Merge pull request #354 from CollinAlpert/fix_broken_links
Fix links in README
2022-10-03 22:10:19 +02:00
Collin Alpert 58f3932241 Update readme.md 2022-10-03 15:28:48 +02:00
MarcinZiabek 350abc2838 Improved RTL, fixed line breaking algorithm 2022-10-02 19:50:50 +02:00
MarcinZiabek 5d4c9a5dd2 Added example for RTL text 2022-10-01 00:18:31 +02:00
MarcinZiabek b31d097b61 Added possibility to force text direction 2022-09-30 20:45:28 +02:00
MarcinZiabek 9f6c091706 RTL: text 2022-09-30 20:33:36 +02:00
MarcinZiabek af2229eabe Fixed unit tests 2022-09-29 23:27:45 +02:00
MarcinZiabek b86946b396 Removed the Initialize method 2022-09-29 22:50:08 +02:00
MarcinZiabek e1ae97d3ca RTL: grid (example) 2022-09-29 21:31:21 +02:00
MarcinZiabek a7ac747776 RTL: dynamic 2022-09-29 21:28:22 +02:00
MarcinZiabek fab0f5bfe1 RTL: constrained 2022-09-29 21:21:25 +02:00
MarcinZiabek f5f90bd235 RTL: aspect ratio (fix) 2022-09-29 21:21:17 +02:00
MarcinZiabek 603dc13d0f RTL: aspect ratio 2022-09-29 21:12:46 +02:00
MarcinZiabek e277c6a8dc RTL: table, decoration, minimal box 2022-09-29 14:46:56 +02:00
MarcinZiabek 5ff9d03f20 Prototype for the RTL mode 2022-09-29 14:14:00 +02:00
MarcinZiabek 9ce9ca85be Added GenerationBenchmark to test async performance 2022-09-22 22:37:15 +02:00
MarcinZiabek 553c8ab719 2022.9.1 2022-09-19 12:05:44 +02:00
Marcin Ziąbek e768e9b06d Update readme.md 2022-09-19 00:58:55 +02:00
Marcin Ziąbek fd913a777c Update readme.md 2022-09-19 00:57:32 +02:00
MarcinZiabek ed9e6daec5 2022.9.0 2022-09-19 00:45:14 +02:00
Marcin Ziąbek ee6249a658 Merge pull request #341 from QuestPDF/2022.9
2022.9 Release
2022-09-19 00:43:29 +02:00
MarcinZiabek b307304f46 Fixed typo 2022-09-18 20:15:41 +02:00
MarcinZiabek f028f82e11 Removed unsued file 2022-09-17 20:42:14 +02:00
MarcinZiabek 719a3385f6 Updated Previewer to 2022.9 2022-09-16 19:52:10 +02:00
MarcinZiabek 2adff11400 2022.9.0-alpha1 2022-09-16 19:46:32 +02:00
MarcinZiabek 34fed6d547 Settings.CheckIfAllTextGlyphsAreAvailable improvements 2022-09-16 16:08:02 +02:00
MarcinZiabek db2df75624 Text example: fixed visuals 2022-09-15 22:19:28 +02:00
MarcinZiabek 6b535752df Fixed formatting page numbers 2022-09-15 22:12:06 +02:00
MarcinZiabek 556f87ff25 Settings renaming 2022-09-15 21:20:25 +02:00
MarcinZiabek fbebbd85eb Fixed build, adapted fallback process for cached TextStyle 2022-09-15 15:09:30 +02:00
MarcinZiabek 4650c2a4ea Merge branch 'font-fallback' into 2022.9
# Conflicts:
#	QuestPDF/Elements/Text/Items/TextBlockSpan.cs
#	QuestPDF/Fluent/TextStyleExtensions.cs
#	QuestPDF/Infrastructure/TextStyle.cs
2022-09-14 23:28:50 +02:00
MarcinZiabek 5390fc3f1b Implemented font-fallback as required configuration 2022-09-10 23:27:27 +02:00
MarcinZiabek 1ba01a1cf5 Fixed override value 2022-09-09 11:32:05 +02:00
MarcinZiabek d4448437ac Reduced creation of DefaultTextStyle objects 2022-09-08 17:29:52 +02:00
MarcinZiabek bc853f48fc Implemented TextStyleManager to reduce memory usage 2022-09-08 16:49:28 +02:00
MarcinZiabek 0468dd5f02 Font-fallback implementation 2022-09-08 13:23:59 +02:00
MarcinZiabek 3ba09ea826 Optimization: do not apply column element when text contains only one paragraph 2022-09-07 13:41:46 +02:00
MarcinZiabek 92abd32aae Updated dependencies 2022-09-07 13:03:30 +02:00
MarcinZiabek e17867d1f3 Added checking if all text glyphs are available in specified font 2022-09-07 00:54:39 +02:00
Marcin Ziąbek bd71f30c78 Merge pull request #326 from Bebo-Maker/fix-documentation-link-in-previewer
Fix documentation link for previewer
2022-09-06 16:09:38 +02:00
MarcinZiabek 6a78a4ebdb Moved document rendering flags to QuestPDF.Settings class 2022-09-06 13:45:48 +02:00
Bennet Bo Fenner 9fc721d66b Fix documentation link for previewer 2022-08-22 13:23:44 +02:00
MarcinZiabek 7d62dead86 2022.8.2 Version type 2022-08-21 20:14:16 +02:00
MarcinZiabek 52ad0f5c24 2202.8.2 2022-08-20 18:22:06 +02:00
Marcin Ziąbek 53107073a6 Merge pull request #322 from emanueleguastella/main
Fix DocumentLayoutException when creating a document with more than one page
2022-08-20 18:14:08 +02:00
Emanuele Guastella c71bb3ea59 Fix DocumentLayoutException when creating a document with more than one page 2022-08-20 14:17:52 +02:00
Marcin Ziąbek 6cced3c143 Update readme.md 2022-08-19 14:45:26 +02:00
MarcinZiabek 425ea59cfe 2022.8.1 2022-08-19 14:40:49 +02:00
MarcinZiabek 4d326496c6 Optimization for the Column element: do not measure child when available height is negative 2022-08-17 15:14:38 +02:00
MarcinZiabek b7b6488d16 Updated stability of rendering elements when negative space 2022-08-17 15:13:06 +02:00
MarcinZiabek f0ba5fc32d Fixed: page breaking rendering does not work in very specific corner cases 2022-08-16 23:59:05 +02:00
MarcinZiabek 04da32e0e7 Stability improvements for text wrapping 2022-08-16 16:33:37 +02:00
MarcinZiabek 5bdb338996 Fixed: default text style does not always work 2022-08-16 16:25:39 +02:00
MarcinZiabek 06b30f2ad6 2022.8.0 2022-08-15 12:58:09 +02:00
MarcinZiabek d39f68a974 Fixed memory leak, issue #306 2022-08-13 20:06:23 +02:00
MarcinZiabek db9d8b5fcf Updated logo 2022-08-11 12:55:42 +02:00
Marcin Ziąbek a31a588b24 Update readme.md 2022-08-01 23:58:48 +02:00
MarcinZiabek cb2a3c6363 Previewer: added support for linux / macos 2022-07-31 23:24:45 +02:00
MarcinZiabek e775f62fab 2022.8 2022-07-31 23:05:18 +02:00
MarcinZiabek 056e3f244c Minor code adjustments 2022-07-30 21:30:11 +02:00
Marcin Ziąbek cd3f7f5a25 Merge pull request #222 from maartenba/mb-perf-5
Micro-optimization by compiling regular expression into QuestPDF assembly
2022-07-30 18:40:26 +02:00
Marcin Ziąbek a5805f6e43 Merge pull request #220 from maartenba/mb-perf-3
Re-use static variable instead of method call in TextStyle
2022-07-30 18:19:47 +02:00
Marcin Ziąbek abe7b2f14c Merge pull request #219 from maartenba/mb-perf-2
Reduce creation of new arrays in Queue<T>
2022-07-30 18:17:43 +02:00
Marcin Ziąbek 3e485a572c Merge pull request #218 from maartenba/mb-perf-1
Convert LINQ to foreach in Helpers.VisitChildren - Reduce GC pressure
2022-07-30 18:12:45 +02:00
MarcinZiabek fd0bb5b089 Fixed inlined bug with measuring elements 2022-07-30 16:30:37 +02:00
MarcinZiabek cc51b62b73 Added information about available font families 2022-07-29 23:53:55 +02:00
MarcinZiabek 8e16b5ad4f Fixed documentation links 2022-07-27 12:21:05 +02:00
MarcinZiabek 71e2743409 Changed default library font from Calibry to Lato. This font is also included with the library 2022-07-19 15:58:35 +02:00
MarcinZiabek ba9d3aa04b 2022.6.3 Fixed text rendering corner cases 2022-07-18 13:23:37 +02:00
MarcinZiabek 2a0b133185 Fixed incorrect file name 2022-06-23 20:32:36 +02:00
Marcin Ziąbek 6058dac524 Merge pull request #249 from wieslawsoltes/CreateGlobalJson
Add global.json
2022-06-23 00:41:36 +02:00
Marcin Ziąbek 25b8f62245 Merge pull request #248 from wieslawsoltes/SetApplicationName
Set application name
2022-06-23 00:40:51 +02:00
MarcinZiabek 2c31f3d5b5 2022.6.2 2022-06-23 00:16:13 +02:00
Wiesław Šoltés f7cd89ccf6 Add global.json 2022-06-15 21:55:44 +02:00
Wiesław Šoltés 6914a9063a Set application name 2022-06-15 21:53:34 +02:00
MarcinZiabek b87e8d5d4e Improved exception messages 2022-06-14 17:53:16 +02:00
MarcinZiabek d740d67a64 2022.6.1 2022-06-13 00:17:32 +02:00
MarcinZiabek a14e9ca61f 2022.6 2022-06-12 23:48:38 +02:00
MarcinZiabek 44b3ff8d0d Merge branch 'text-shaping-new' 2022-06-08 02:46:54 +02:00
Marcin Ziąbek df6b88e14a Update readme.md 2022-06-08 02:10:52 +02:00
MarcinZiabek d4103797aa Improved exception message when SkiaSharp throws the TypeInitializationException 2022-06-08 02:01:58 +02:00
MarcinZiabek d894914e7e Improved Previewer stability 2022-06-08 00:09:59 +02:00
MarcinZiabek 90d1ce7af7 2022.6.0-prerelease 2022-05-31 00:52:49 +02:00
MarcinZiabek 5fa32a06cc Text: fixed corner case 2022-05-26 00:42:50 +02:00
MarcinZiabek acdf1ed1aa Stability improvement 2022-05-25 00:21:50 +02:00
MarcinZiabek a0b32e5ecf Fixed Row.AutoItem width calculation 2022-05-25 00:21:50 +02:00
MarcinZiabek 539dc83303 Fixed Row.AutoItem width calculation 2022-05-24 23:50:53 +02:00
MarcinZiabek d97fa2cef1 Minor optimization of SkFont creation 2022-05-23 01:18:21 +02:00
MarcinZiabek 6d122c784d Implemented working text shaping 2022-05-22 20:25:11 +02:00
MarcinZiabek 28743a81d1 Fixed typo 2022-05-21 14:35:13 +02:00
Maarten Balliauw 1047854f77 Micro-optimization by compiling regular expression into QuestPDF assembly so there's no JIT compilation when using it 2022-05-19 13:04:08 +02:00
Maarten Balliauw c5fbf7263c Re-use static variable instead of method call in TextStyle 2022-05-19 13:03:43 +02:00
Maarten Balliauw fae2205ff8 Reduce creation of new arrays in Queue<T> 2022-05-19 13:03:14 +02:00
Maarten Balliauw 1cbe4b1dc8 Convert LINQ to foreach in Helpers.VisitChildren - Reduce GC pressure 2022-05-19 13:02:20 +02:00
MarcinZiabek 32b94cea43 Updated sponsorship 2022-05-12 00:40:29 +02:00
Marcin Ziąbek 0ca55a91e0 Update readme.md 2022-05-10 21:48:39 +02:00
MarcinZiabek 09e6b5253f Fixed class names 2022-05-10 12:43:13 +02:00
MarcinZiabek bacb136a3f Benchmark: grid element 2022-05-10 12:42:49 +02:00
MarcinZiabek b7bc640e31 Added new example to dynamic component: footer with alternating position 2022-05-09 18:18:06 +02:00
MarcinZiabek 6e6f884a5f Updated sponsorship section 2022-05-09 16:33:12 +02:00
MarcinZiabek b47a8ac409 Added more examples 2022-05-09 16:32:59 +02:00
MarcinZiabek e51082400c Dynamic Component: added more examples 2022-05-09 14:07:50 +02:00
MarcinZiabek 52cfa3ab7e Added note regarding JetBrains OSS Power Ups 2022-05-07 22:18:14 +02:00
MarcinZiabek cd181b1e2e Merge branch '2022.5' 2022-05-07 21:40:10 +02:00
Marcin Ziąbek e71601ad0c Merge pull request #208 from danielchalmers/patch-1
replace obsolete method in readme example
2022-05-07 18:46:09 +02:00
Daniel Chalmers 3041aa53cc replace obsolete method in readme example
Warning	CS0618	'PageDescriptor.Background(string)' is obsolete: 'This element has been renamed since version 2022.3. Please use the PageColor method.'
2022-05-06 19:37:17 -05:00
MarcinZiabek 0ebf2833af Updated release notes 2022-05-06 21:17:16 +02:00
MarcinZiabek 25e6d9fbca Adjusted library versions 2022-05-06 21:09:16 +02:00
Marcin Ziąbek f80149792d Merge pull request #178 from jnyrup/Dispose
Explicit disposal of disposables
2022-05-06 20:59:35 +02:00
Marcin Ziąbek 2beee1d22e Update PreviewerService.cs 2022-05-06 20:59:06 +02:00
MarcinZiabek 1af7c0a144 Adjusted code related to subscript/superscript 2022-05-06 20:55:18 +02:00
Marcin Ziąbek eeca67e5bc Merge pull request #179 from Bebo-Maker/main
Implement subscript/superscript text
2022-05-06 00:09:31 +02:00
MarcinZiabek 4da3ef5dfa Fixed breaking long words 2022-05-05 23:52:17 +02:00
MarcinZiabek f3d4151273 Improved performance of the table rendering algorithm (square to linear complexity) 2022-05-05 23:20:23 +02:00
Marcin Ziąbek 9a7e397db2 Merge pull request #197 from knoxyz/patch-2
Replaced the obsolete methods from 2022.3 (FontType, Color and Size)
2022-05-05 18:23:11 +02:00
Marcin Ziąbek d81f21e658 Merge pull request #196 from knoxyz/patch-1
Update <TargetFramework> from 3.1 to net6.0
2022-05-05 18:11:21 +02:00
Marcin Ziąbek 78909c6edf Merge pull request #199 from knoxyz/patch-4
Replaced the obsolete methods from 2022.3 (InternalLink and Color)
2022-05-05 17:48:28 +02:00
Marcin Ziąbek a2d81b6adf Merge pull request #200 from knoxyz/patch-3
Replaced the obsolete methods from 2022.3 (ExternalLink and Location)
2022-05-05 17:47:40 +02:00
Marcin Ziąbek 4a761c023f Merge pull request #201 from simusr2/main
Replaced PageEnd with PageStart in PageNumberWithinSection
2022-05-05 17:46:30 +02:00
Simone Anile 24bbd06dff Replaced PageEnd with PageStart in PageNumberWithinSection 2022-04-29 15:19:58 +02:00
knoxyz 44bd646bab Replaced the obsolete methods from 2022.3 (InternalLink and Color) 2022-04-29 11:36:28 +02:00
knoxyz 5f0291b2c4 Replaced the obsolete methods from 2022.3 (ExternalLink and Location) 2022-04-29 11:32:20 +02:00
knoxyz 1b91015d8f Replaced the obsolete methods from 2022.3 (FontType, Color and Size) 2022-04-28 16:21:56 +02:00
knoxyz 2b6444463d Update <TargetFramework> from 3.1 to net6.0 2022-04-28 16:13:44 +02:00
MarcinZiabek a2629575e8 Dynamic: simplified container composition process 2022-04-27 09:50:17 +02:00
MarcinZiabek c8824021cc Dynamic: generalized dynamic element size measurement 2022-04-27 09:24:44 +02:00
MarcinZiabek e1101d870d Dynamic: improve state management 2022-04-27 06:56:13 +02:00
MarcinZiabek 152304b467 Dynamic: improved TextStyle handling 2022-04-26 01:11:40 +02:00
MarcinZiabek 8a1be90c4f Ported dynamic component implementation prototype 2022-04-26 00:36:50 +02:00
MarcinZiabek bc8a9e5dc5 Fixed mutating text style for page-related text items 2022-04-23 23:13:38 +02:00
Marcin Ziąbek e54e09de15 Merge pull request #185 from mikasius/main
Renamed logo.png
2022-04-23 23:03:37 +02:00
Sergey Metlenkin c49a424f87 Renamed logo.png
Otherwise solution won't build
2022-04-22 10:59:12 +07:00
Bebo-Maker c63b0658f3 Ignore FontPosition when calculating font metrics. 2022-04-12 19:14:00 +02:00
Bebo-Maker 82cd1d7835 Add example for superscript/subscript. 2022-04-12 18:49:34 +02:00
Bebo-Maker 3ffab6e933 Implement superscript and subscript. 2022-04-12 18:48:28 +02:00
Marcin Ziąbek e4d55e0298 Merge pull request #177 from jnyrup/ArgumentException
Use `paramName` overload of `ArgumentException`
2022-04-11 22:03:40 +02:00
Jonas Nyrup a6f4fd7f49 explicit disposal 2022-04-11 21:36:50 +02:00
Jonas Nyrup 048a4748b2 Use paramName overload of ArgumentException 2022-04-11 21:33:33 +02:00
Marcin Ziąbek 8cc2fb8696 Merge pull request #169 from fredericoregateiro/AvaloniaCompiledBindings
Enable compiled bindings on Previewer
2022-04-08 22:17:41 +02:00
MarcinZiabek 8e7b528cd9 Updated install command in readme 2022-04-08 22:15:12 +02:00
MarcinZiabek 26193313b8 Previewer: hide "Show in default browser" button when no document available 2022-04-08 22:14:19 +02:00
MarcinZiabek 555825e8be Previewer: throwing exception when cannot connect with frontend 2022-04-08 22:14:19 +02:00
Frederico Regateiro ddde8e7517 enable compiled bindings on PreviewerWindow 2022-04-06 14:08:53 +01:00
Marcin Ziąbek d2c82b5988 Update readme.md 2022-04-05 14:54:33 +02:00
Marcin Ziąbek d82aae95b5 Update readme.md 2022-04-05 14:34:00 +02:00
Marcin Ziąbek 5c11a2ab6a Update readme.md 2022-04-05 14:30:51 +02:00
MarcinZiabek 03e3a80fd9 Fixed logo resource for QuestPDF.Previwer 2022-04-04 23:26:16 +02:00
MarcinZiabek 4692c5ce62 Fixed QuestPDF.Previewer build 2022-04-04 23:24:02 +02:00
MarcinZiabek 919f916219 2022.4 release 2022-04-04 23:20:22 +02:00
MarcinZiabek 7a32f774a1 Fixed spelling 2022-04-04 00:38:58 +02:00
MarcinZiabek fba71e6392 Previewer: stop debugging session when previewer is closed 2022-04-04 00:19:36 +02:00
MarcinZiabek e27585a504 Fixed previewer: first document refresh sometimes does not work 2022-04-02 00:23:58 +02:00
MarcinZiabek 9be497ee41 Fixed automatically starting previewer application on custom port 2022-04-01 19:26:54 +02:00
MarcinZiabek 0fc0db55d2 Better button style path in previewer 2022-03-31 23:14:00 +02:00
MarcinZiabek 9e7a1ed49d Previewer improvements 2022-03-31 23:11:34 +02:00
MarcinZiabek c137bcfcde Improved look and feel 2022-03-31 18:33:34 +02:00
MarcinZiabek b80b3414d8 Added http-based previewer 2022-03-31 15:44:28 +02:00
MarcinZiabek 5f7cee3420 Removed old previewer implementation 2022-03-30 23:38:51 +02:00
MarcinZiabek 435c42ab9e Changed previewer communication layer to http 2022-03-30 23:37:37 +02:00
MarcinZiabek 7b4923b45d Merge remote-tracking branch 'origin/previewer' 2022-03-27 20:15:02 +02:00
MarcinZiabek 8732b7e50b Renaming 2022-03-27 20:12:22 +02:00
MarcinZiabek 6b31322f92 Fixed preview button labels 2022-03-27 17:29:50 +02:00
MarcinZiabek 6155d21207 Previewer: added buttons for documentation and project sponsoring 2022-03-27 14:49:50 +02:00
Marcin Ziąbek a0909eb057 Create FUNDING.yml 2022-03-26 21:06:44 +01:00
MarcinZiabek 11ff53946d Introduced new line breaking algorithm: break anywhere 2022-03-26 03:34:31 +01:00
MarcinZiabek 0711bca1e1 Improved respecting spaces at the beginning and end of text block, fixed breaking long words that do not fit in line 2022-03-26 02:58:55 +01:00
MarcinZiabek 297ca48c70 Code cleanup 2022-03-24 23:09:09 +01:00
Marcin Ziąbek d2601e9e5a Merge pull request #157 from Bebo-Maker/previewer
Previewer - ViewModel for PreviewerWindow
2022-03-24 22:20:28 +01:00
Bebo-Maker 421a926780 Fix vertical scroll bar visibility. 2022-03-24 22:05:49 +01:00
Bebo-Maker 307759d1b3 Remove StyledProperties and rework bindings. 2022-03-24 22:01:10 +01:00
Bebo-Maker 00bcb2c25b Add ViewModel for PreviewerWindow. 2022-03-24 21:59:55 +01:00
MarcinZiabek e430484e85 Fixed zooming out 2022-03-24 13:54:38 +01:00
MarcinZiabek d24d887a3a Previewer: simplified translate operations 2022-03-24 13:35:02 +01:00
MarcinZiabek 404914ea7e Previewer: added button to show generated PDF 2022-03-24 01:02:57 +01:00
Marcin Ziąbek 545b76fd40 Merge pull request #155 from Bebo-Maker/previewer
Previewer - Fix multiple small issues
2022-03-24 00:04:34 +01:00
Marcin Ziąbek c801894ec4 Merge branch 'previewer' into previewer 2022-03-24 00:04:28 +01:00
MarcinZiabek c21744e7de Fixed scrolling math 2022-03-23 23:31:27 +01:00
Bebo-Maker 734d116bfe Fix scroll viewer visibility. 2022-03-23 12:58:58 +01:00
Bebo-Maker 0abb67b748 Unregister HotReload handler when window is closed 2022-03-23 09:22:46 +01:00
Bebo-Maker 828bb86737 Fix MaxWidth calculation when pages are empty. 2022-03-23 08:35:53 +01:00
Bebo-Maker 040c47e017 Fix issue when showing previewer multiple times.
Previously when calling ShowPreviewer  in the same process multiple times lead to an Exception inside Avalonia.
2022-03-23 08:35:28 +01:00
MarcinZiabek ff95fe287a Added scrollbar interactions 2022-03-23 01:10:15 +01:00
MarcinZiabek 47e9a49fe5 Fixed scroll, more code refactoring 2022-03-21 01:33:33 +01:00
MarcinZiabek b2826a06b8 Code refactorization + cleanup 2022-03-21 01:16:26 +01:00
MarcinZiabek 321cba32ce Implemented basic canvas interactions 2022-03-21 01:02:53 +01:00
MarcinZiabek 26fdbb714d Simplified rendering operation 2022-03-20 01:53:51 +01:00
Marcin Ziąbek f0cec8988a Merge pull request #147 from Bebo-Maker/document-previewer
Document previewer
2022-03-20 00:48:50 +01:00
Bebo-Maker ea2102fe4c WIP Implemented virtualization of pages.
Render pages into seperate SKPictures
2022-03-19 17:26:58 +01:00
Bebo-Maker 6cca3ed057 Refactor custom drawing operation. 2022-03-17 22:32:37 +01:00
Bebo-Maker 9afe4ec104 Add button for generating pdf in previewer. 2022-03-17 20:03:20 +01:00
Bebo-Maker 846679007f Enable dark mode for previewer and cleanup UI. 2022-03-17 19:35:46 +01:00
Bebo-Maker 0946607154 Add table to example. 2022-03-17 12:05:27 +01:00
Bebo-Maker d5f86e0d70 Fixed rendering issue where content was clipped. 2022-03-17 11:44:40 +01:00
Bebo-Maker 346513ee85 Optimize document rendering.
We dont need to render the document two times anymore.
2022-03-17 10:34:00 +01:00
Bebo-Maker d18ee5f282 Allow intersection after first RenderPass. 2022-03-17 10:32:41 +01:00
Bebo-Maker a85bc0abc1 Add example for using document previewer. 2022-03-16 22:54:03 +01:00
Bebo-Maker 82e39df572 Enable SKPaint.IsAntialias in FontManager. 2022-03-16 22:48:30 +01:00
Bebo-Maker 1311b6db32 Add PreviewerApp and provide extensions for displaying previewer. 2022-03-16 22:48:07 +01:00
Bebo-Maker b5645bfbd5 Implement document preview. 2022-03-16 22:47:05 +01:00
Bebo-Maker 8217b3b54a Implement HotReloadManager. 2022-03-16 22:46:21 +01:00
Bebo-Maker 726759f47a Add size tracking canvas. 2022-03-16 22:45:57 +01:00
Bebo-Maker bbd9c3379e Change access modifier of RenderDocument to internal. 2022-03-16 22:45:39 +01:00
Bebo-Maker 697c5e238d Add InternalsVisibleTo for QuestPDF.Previewer in QuestPDF AssemblyInfo. 2022-03-16 22:45:13 +01:00
Bebo-Maker 21a92be87e Add .editorconfig . 2022-03-16 22:44:45 +01:00
Bebo-Maker b0cca1ff48 Add QuestPDF.Previewer and QuestPDF.Previewer.Examples 2022-03-16 22:42:16 +01:00
Marcin Ziąbek 78c5049eda Update readme.md 2022-03-15 23:23:18 +01:00
MarcinZiabek 3d0ca07b43 Release 2022.3.1 2022-03-15 13:06:09 +01:00
MarcinZiabek a67fa754af Fixed NullReferenceException when the text is null 2022-03-15 11:55:59 +01:00
MarcinZiabek 208235ad1e Updated description 2022-03-14 13:59:26 +01:00
Marcin Ziąbek f24416474a Update readme.md 2022-03-14 13:49:21 +01:00
MarcinZiabek 01c2e8d3f5 Updated documentation. Release 2022.03 2022-03-14 13:17:33 +01:00
MarcinZiabek b3cef238ec Improved page color API 2022-03-13 22:47:17 +01:00
Marcin Ziąbek aede62c135 Update readme.md 2022-03-12 23:04:11 +01:00
MarcinZiabek db9db95dcc Fixed build 2022-03-12 19:20:01 +01:00
MarcinZiabek 92263685d7 Merge branch '2022.03'
# Conflicts:
#	QuestPDF.Examples/TextExamples.cs
#	QuestPDF/QuestPDF.csproj
2022-03-12 19:17:38 +01:00
MarcinZiabek ba4be521aa 2022.2.7 2022-03-12 19:01:39 +01:00
Marcin Ziąbek f6967dfe8b Update readme.md 2022-03-12 16:42:26 +01:00
MarcinZiabek ff3dfe7831 Fixed logo size 2022-03-12 16:39:33 +01:00
MarcinZiabek 5a1990d857 Added more shields 2022-03-12 16:38:03 +01:00
MarcinZiabek 1b9b164583 DefaultTextStyle API improvements 2022-03-12 16:11:03 +01:00
Marcin Ziąbek 9c64a6bc8d Merge pull request #128 from loxsmoke/main
Add nuget badges to readme.md file
2022-03-12 16:06:04 +01:00
MarcinZiabek 5402e5fedc Fixed text rendering issues 2022-03-12 12:17:00 +01:00
MarcinZiabek 2c14f91ebe Added support for background and foreground in page API 2022-03-11 18:04:30 +01:00
MarcinZiabek b533a32b61 Text API naming adjustments 2022-03-11 13:23:36 +01:00
MarcinZiabek 262bd3c182 Improved backwards compatibility 2022-03-09 22:13:51 +01:00
MarcinZiabek fdf8e3eb1a Fixed text rendering corner case: measuring span with space at the end of the line may overflow available space 2022-03-08 18:33:34 +01:00
MarcinZiabek fcff989ab2 Improved text API 2022-03-08 17:27:30 +01:00
MarcinZiabek 054e7a5f20 Added minimal API example 2022-02-28 15:41:10 +01:00
MarcinZiabek a92cc25fb1 Improved font matching and exception message. Refactored tests. 2022-02-27 15:19:50 +01:00
MarcinZiabek 8db283d559 Code refactorization + added support for multi typeface font types 2022-02-25 23:02:42 +01:00
LoxSmoke 456c7a735b Update readme.md 2022-02-24 19:55:36 -08:00
LoxSmoke 5bf2a9a3d3 Nuget badges in readme file 2022-02-24 19:53:51 -08:00
Marcin Ziąbek 8a64abaac2 Merge pull request #106 from SvizelPritula/main
FontManager: Add support for multiple variants of font families registered at runtime
2022-02-21 22:26:51 +01:00
MarcinZiabek 68df390d0e Element renaming + custom text format 2022-02-21 00:57:53 +01:00
MarcinZiabek d73c694452 Added minimal API 2022-02-20 16:17:43 +01:00
MarcinZiabek 69e268733c 2022.2.5 2022-02-18 23:31:53 +01:00
MarcinZiabek 657bbe2aac 2022.2.4 2022-02-18 21:48:57 +01:00
MarcinZiabek 4479a49ad0 Improved support for page sections 2022-02-16 15:34:54 +01:00
MarcinZiabek 63288dfb60 Updated examples 2022-02-07 22:29:59 +01:00
MarcinZiabek fc325d8b76 2022.2.3 2022-02-07 22:25:48 +01:00
Marcin Ziąbek 5ffeaa3075 Merge pull request #119 from B-wareBS/features/unit-conversion-fix
Fixed an issue with unit conversion.
2022-02-07 22:04:55 +01:00
Chris de Jong-Pobedinskiy fe431fbc12 Fixed an issue with unit conversion.
Fixed an issue where unit conversions from mm to pt would be off by a
factor of 100.

This fixes #118
2022-02-07 13:56:20 +01:00
Marcin Ziąbek e0de408821 2022.2.2 Fixed regression: exception when Column/Row have no items 2022-02-01 23:39:43 +01:00
Marcin Ziąbek 8ce6afef5a Simplified readme 2022-02-01 11:14:38 +01:00
Marcin Ziąbek 1c70b20028 Added examples for execution order 2022-01-31 00:15:10 +01:00
Marcin Ziąbek 3aef4ec4c9 2022.2.1 2022-01-30 23:46:11 +01:00
Marcin Ziąbek 3649607bd9 Merge remote-tracking branch 'origin/2022.02'
# Conflicts:
#	QuestPDF.Examples/RowExamples.cs
#	QuestPDF.UnitTests/RowTests.cs
#	QuestPDF/Elements/Row.cs
#	QuestPDF/Fluent/RowExtensions.cs
#	QuestPDF/QuestPDF.csproj
#	QuestPDF/Resources/ReleaseNotes.txt
2022-01-30 23:44:20 +01:00
Marcin Ziąbek 9a6b11ab85 Updated examples and readme 2022-01-30 22:52:56 +01:00
Marcin Ziąbek ac29ed4794 2022.2.0-beta2 2022-01-26 22:26:47 +01:00
Marcin Ziąbek 5f7da8b5b3 Line: added default configuration 2022-01-26 22:26:34 +01:00
Benjamin Swart 78eef45ce2 FontManager: Add support for multiple variants of font families registered at runtime 2022-01-24 15:13:41 +01:00
Marcin Ziąbek 5424d9f0a0 2022.2.0-beta1 2022-01-24 14:53:01 +01:00
Marcin Ziąbek 946fe91a98 WriteOnlyStream refactorization 2022-01-24 00:34:27 +01:00
Marcin Ziąbek b5839d3989 Merge pull request #65 from schulz3000/main
fix rendering direct to aspnet core response stream
2022-01-24 00:17:14 +01:00
MarcinZiabek 2ca6d1cb47 Decoration: improved implementation, fixed unit tests 2022-01-23 23:08:18 +01:00
Marcin Ziąbek 49a3371af7 Added StopPaging element 2022-01-23 21:42:03 +01:00
Marcin Ziąbek 3f3ada6d8a Minor code adjustments 2022-01-23 21:41:45 +01:00
Marcin Ziąbek ba409a8712 Create codeql-analysis.yml 2022-01-21 03:11:22 +01:00
Marcin Ziąbek b96c67a8af Fixed Column tests 2022-01-21 00:09:39 +01:00
Marcin Ziąbek b9fbb9267f Obsolete methods refactorization 2022-01-18 23:24:10 +01:00
Marcin Ziąbek 272b0fc11a Added support for unit types 2022-01-18 23:14:57 +01:00
Marcin Ziąbek b2cc7bbd36 Renamed Decoration element 2022-01-16 17:08:57 +01:00
Marcin Ziąbek e3ce194fd1 Simple SVG example 2022-01-16 17:03:01 +01:00
Marcin Ziąbek 9b892c86ed 2022.1.0 2022-01-10 02:43:58 +01:00
Marcin Ziąbek c9833d410d 2022.1.0-beta6 2022-01-09 03:08:18 +01:00
Marcin Ziąbek f8057a840c Added: Line, Reimplemented: Column, Row and Decoration 2022-01-09 00:11:34 +01:00
Marcin Ziąbek a2ce31022c Improved default behavior of fluent configuration 2022-01-08 01:11:25 +01:00
Marcin Ziąbek 763fdfac0f Row: fixed paging behavior, Table: improved paging behavior for already rendered elements 2022-01-07 13:15:27 +01:00
Marcin Ziąbek ba8b35b1c0 Implemented ScaleToFit element 2022-01-07 00:09:25 +01:00
Marcin Ziąbek 648a359d15 Implemented the PreventPaging element 2022-01-06 22:19:33 +01:00
Marcin Ziąbek 630d3389d3 Table: added support for headers and footers 2022-01-06 21:36:27 +01:00
Marcin Ziąbek a7c3c88e81 Updated release notes 2022-01-06 19:57:22 +01:00
Marcin Ziąbek 9524cc6eb1 2022.1.0-beta3 Renaming Box() to MinimalBox() 2022-01-06 19:57:22 +01:00
Marcin Ziąbek 4152b67679 Table: row height fixes for overlapping cells. Added code examples 2022-01-06 19:57:22 +01:00
Marcin Ziąbek 8020cb30cb Table: improved repeating+paging support, added example 2022-01-06 19:57:22 +01:00
Marcin Ziąbek 9358fb8937 Fixed: traversing elements graph 2022-01-06 19:57:21 +01:00
Marcin Ziąbek eb297177ea VisitChildren -> GetChildren traversal refactorization 2022-01-06 19:57:21 +01:00
Marcin Ziąbek 7f651932b9 Table: added default style, fixed bugs, added examples 2022-01-06 19:57:21 +01:00
Marcin Ziąbek caaae5fa1c Table: fixed cross-cell size adjusting 2022-01-06 19:57:21 +01:00
Marcin Ziąbek f76caa28b1 Update Table.cs 2022-01-06 19:57:21 +01:00
MarcinZiabek ea92655ef5 Typo fixes 2022-01-06 19:57:21 +01:00
MarcinZiabek 3f8463e9b7 2022.1.0-beta0 2022-01-06 19:57:21 +01:00
MarcinZiabek 02e25b193d 2022.1.0-alpha0 2022-01-06 19:57:21 +01:00
MarcinZiabek 7cc272ff9e Border radius: added example 2022-01-06 19:57:21 +01:00
MarcinZiabek b8ea30be23 Improved readibility of the table layout algorithm 2022-01-06 19:57:21 +01:00
MarcinZiabek 06418238dc Table layout: refactorization 2022-01-06 19:57:21 +01:00
MarcinZiabek ed73c5b82d Table: layouting improvements for paging 2022-01-06 19:57:21 +01:00
MarcinZiabek 96732b5856 Fixed: corner cases of paging support 2022-01-06 19:57:21 +01:00
MarcinZiabek c7008ad940 Improved wrapping support 2022-01-06 19:57:21 +01:00
MarcinZiabek 940616cd3e Table: optimized rendering performance 2022-01-06 19:57:21 +01:00
MarcinZiabek 01a80032b0 Table: minor optimizations + performance test 2022-01-06 19:57:21 +01:00
MarcinZiabek 3e5e3843d2 Rendering algorithm partially working 2022-01-06 19:57:21 +01:00
MarcinZiabek d3911d5687 Table: refactorization, cell placement algorithm 2022-01-06 19:57:21 +01:00
Marcin Ziąbek 82e4dd36f0 Improved table paging support 2022-01-06 19:57:21 +01:00
Marcin Ziąbek 561d6a004c Row: added support for mixed columns (constant + relational), good when performing visual column merging 2022-01-06 19:57:20 +01:00
Marcin Ziąbek 59b77e55d4 Improved Row element stability 2022-01-06 19:57:20 +01:00
Marcin Ziąbek ea398c562f Merge pull request #64 from markhewett/us-page-sizes
Tweak US Letter and Legal page sizes
2022-01-04 19:31:57 +01:00
Xaver Schulz cb493562fc fix rendering direct to aspnet core response stream
adding a WrapperStream to support streams that not implement the Position property needed by SkiaSharp.
e.g. useful for the aspnet core response stream

fix #52
2021-12-10 21:07:42 +01:00
Marcin Ziąbek 5f636beb9d Added missing assertions to test that are supposed to throw an exception 2021-12-09 17:10:45 +01:00
Hewett, Mark A 5b85ae2627 Tweak US Letter and Legal page sizes
Adobe Acrobat Reader DC now shows the correct sizes for letter and legal size documents.
2021-12-08 19:17:42 -06:00
Marcin Ziąbek 10683776bb 2021.12.0 2021-12-06 09:28:02 +01:00
Marcin Ziąbek f2c47c4fd3 2021.12.0-alpha1 2021-11-30 00:34:04 +01:00
Marcin Ziąbek 77b8f04659 Synced to 2021.12-alpha0 2021-11-19 00:50:38 +01:00
Marcin Ziąbek 5235ada66f Merge branch 'main' into element-proxy
# Conflicts:
#	QuestPDF/Drawing/PdfCanvas.cs
#	QuestPDF/QuestPDF.csproj
2021-11-19 00:46:46 +01:00
Marcin Ziąbek 4ce66878f2 2021.12.0-alpha0 2021-11-19 00:24:32 +01:00
Marcin Ziąbek 79cc5f1507 Added support for XPS rendering 2021-11-19 00:22:45 +01:00
Marcin Ziąbek 7c7d461c4b Merge pull request #53 from donmurta/main
Add simple chart example
2021-11-14 23:09:27 +01:00
Marcin Ziąbek 63af713935 2021.11.4 - Fixed measuring the Inlined element 2021-11-14 23:03:22 +01:00
Don Murta 2419a25cbd Add simple chart example 2021-11-09 10:26:46 -07:00
Marcin Ziąbek 014ec15908 2021.11.3 2021-11-07 16:46:34 +01:00
Marcin Ziąbek 82e29d5fdd ImagePlaceholder.Solid = true; 2021-11-07 16:19:54 +01:00
Marcin Ziąbek c64754241d Updated base to 2021.11 2021-11-04 01:02:44 +01:00
Marcin Ziąbek 9de87061e4 Merge branch 'main' into element-proxy
# Conflicts:
#	QuestPDF.ReportSample/Layouts/PhotoTemplate.cs
#	QuestPDF.ReportSample/Layouts/SectionTemplate.cs
#	QuestPDF.ReportSample/Tests.cs
#	QuestPDF/Drawing/DocumentGenerator.cs
#	QuestPDF/Elements/Constrained.cs
#	QuestPDF/Infrastructure/Position.cs
#	QuestPDF/Infrastructure/Size.cs
2021-11-04 00:22:22 +01:00
Marcin Ziąbek 86cfd22316 2021.11.0-beta3 2021-11-03 21:39:20 +01:00
Marcin Ziąbek 520bfc840c Improved code benchmarking (removed an unnecessary cost of image placeholder generation) 2021-11-03 21:22:08 +01:00
Marcin Ziąbek 22cdad69b7 Text element improvement: null string behaves like an empty text, not throws an exception 2021-11-03 21:21:23 +01:00
Marcin Ziąbek d260fa7587 Added generating symbols 2021-10-29 01:30:28 +02:00
Marcin Ziąbek 011668fb4c Image: added support for common overloads 2021-10-29 01:24:56 +02:00
Marcin Ziąbek 5a886452cf Merge pull request #40 from QuestPDF/2021.11
2021.11
2021-10-23 03:07:56 +02:00
Marcin Ziąbek b044208195 Updated nuget details 2021-10-23 03:02:18 +02:00
Marcin Ziąbek dadb8a5087 Improved test engine. Added more examples 2021-10-23 02:59:47 +02:00
Marcin Ziąbek 11f0809efc Improved default text style 2021-10-23 02:59:29 +02:00
Marcin Ziąbek 0a6673dd4f Update QuestPDF.csproj 2021-10-21 15:46:31 +02:00
Marcin Ziąbek 525bf534e5 Update DocumentGenerator.cs 2021-10-19 00:37:07 +02:00
Marcin Ziąbek 68f050a154 Adjusted tests for better benchmarking 2021-10-16 22:34:54 +02:00
Marcin Ziąbek fd696c5b66 Added missing tests to the constrained element 2021-10-12 23:58:28 +02:00
Marcin Ziąbek 0ccc8cc236 Improved the DocumentLayoutException message 2021-10-11 23:01:26 +02:00
Marcin Ziąbek 9ef444462a Implemented the Inlined document 2021-10-11 22:48:44 +02:00
Marcin Ziąbek 479915b68f Implemented the Inlined element 2021-10-11 01:48:12 +02:00
Marcin Ziąbek 5deea91fe4 Code refactorization 2021-10-10 23:21:11 +02:00
Marcin Ziąbek 7174a2afa1 Code style improvements 2021-10-10 19:17:31 +02:00
Marcin Ziąbek 1371fe1df9 Merge pull request #32 from QuestPDF/global-text-style
Global text style
2021-10-10 18:40:19 +02:00
Marcin Ziąbek bb00dfd4d4 Merge pull request #28 from jcl86/main
SkipOnce element for different headers and footers
2021-10-10 18:39:15 +02:00
Marcin Ziąbek 70e5783f0e Updated report sample to follow new text style approach 2021-10-07 23:23:07 +02:00
Marcin Ziąbek e8b7f38187 Fixed setting text style in the text-block-elements 2021-10-07 23:10:12 +02:00
Marcin Ziąbek c2ba2addfc Fixed handling global text style when setting block-wide style 2021-10-07 22:56:51 +02:00
Marcin Ziąbek e379502a64 Implemented prototype of global, document-wide text style 2021-10-07 22:38:41 +02:00
Marcin Ziąbek 88e58500a8 Improved caching 2021-10-07 21:26:14 +02:00
jcl-aadlab caa779e1e0 Added skip element for headers and footers 2021-10-05 10:50:55 +02:00
Marcin Ziąbek 4938e97e6d Update readme.md 2021-10-01 14:09:25 +02:00
Marcin Ziąbek 7980befb77 Synced with 2021.10 2021-10-01 02:32:35 +02:00
Marcin Ziąbek f3b75b43ac Merge branch 'main' of https://github.com/QuestPDF/library into element-proxy
 Conflicts:
	QuestPDF.ReportSample/QuestPDF.ReportSample.csproj
	QuestPDF.ReportSample/Tests.cs
	QuestPDF.UnitTests/ShowOnceTest.cs
	QuestPDF.UnitTests/StackTests.cs
	QuestPDF.UnitTests/TestEngine/Operations/ChildMeasureOperation.cs
	QuestPDF.UnitTests/TestEngine/SingleChildTests.cs
	QuestPDF.UnitTests/TestEngine/TestPlan.cs
	QuestPDF/Drawing/DocumentGenerator.cs
	QuestPDF/Drawing/TextRender.cs
	QuestPDF/Elements/PageBreak.cs
	QuestPDF/Elements/PageNumber.cs
	QuestPDF/Elements/Rotate.cs
	QuestPDF/Elements/Row.cs
	QuestPDF/Elements/Scale.cs
	QuestPDF/Elements/SimpleRotate.cs
	QuestPDF/Elements/Text.cs
	QuestPDF/Elements/Unconstrained.cs
	QuestPDF/Infrastructure/Element.cs
2021-10-01 02:20:21 +02:00
Marcin Ziąbek 17e2727833 Added missing option to style a line 2021-10-01 01:44:53 +02:00
Marcin Ziąbek 1b9ea70f6e Fixed code highlighting 2021-09-30 23:50:34 +02:00
Marcin Ziąbek 87f4c9774a Update readme.md 2021-09-30 23:48:35 +02:00
Marcin Ziąbek 3bdd03031b Updated csproj 2021-09-30 23:08:47 +02:00
Marcin Ziąbek 26335faa97 Improved and fixed old tests 2021-09-30 22:48:39 +02:00
Marcin Ziąbek 7b81e61840 Merge pull request #26 from QuestPDF/richtext
2021.10 Richtext
2021-09-30 22:05:45 +02:00
Marcin Ziąbek 391c5a6092 Merge branch 'main' into richtext 2021-09-30 22:04:47 +02:00
Marcin Ziąbek d951e0a6b2 Removed not needed nuget dependencies 2021-09-19 01:42:52 +02:00
Marcin Ziąbek 188fbc22a7 Added structural tests for: Row, Stack. 2021-09-18 23:40:21 +02:00
Marcin Ziąbek cc6d1c81c8 Updated tests to use FluentAssertions 6 2021-09-18 20:59:21 +02:00
Marcin Ziąbek 6d333da84c Added tests to check simple, container-like constraints for some elements 2021-09-18 01:21:48 +02:00
Marcin Ziąbek e411554a29 Added tests for elements: Box, Layers, Rotate, Scale, SimpleRotate, Translate, Unconstrained 2021-09-18 01:03:58 +02:00
Marcin Ziąbek 9fddea84ba Cleaned tests suite 2021-09-17 22:05:07 +02:00
Marcin Ziąbek 84e896e13b 2021.10.0-beta.2 Improved API naming 2021-09-14 12:16:49 +02:00
Marcin Ziąbek 569864d48a Fixed rendering text when put in the Box element 2021-09-14 02:13:15 +02:00
Marcin Ziąbek 2c11491d4e Library update 2021-09-14 02:02:45 +02:00
Marcin Ziąbek acdd8164be Optimized the TextLine object 2021-09-14 00:16:16 +02:00
Marcin Ziąbek 094b25a9fb Merge remote-tracking branch 'origin/richtext' into richtext
# Conflicts:
#	QuestPDF.Examples/QuestPDF.Examples.csproj
#	QuestPDF/Drawing/DocumentGenerator.cs
#	QuestPDF/Drawing/FontManager.cs
#	QuestPDF/Elements/Text/Items/TextBlockSpan.cs
2021-09-13 20:38:50 +02:00
Marcin Ziąbek 122f35d0a7 2021.10-beta + Code rebase 2021-09-13 20:36:29 +02:00
Marcin Ziąbek f4c9f8b3c2 Added text rendering tests 2021-09-13 20:30:18 +02:00
Marcin Ziąbek ae7873680d Fixed layout rendering 2021-09-13 20:30:16 +02:00
Marcin Ziąbek 175db288f6 Improved text measuring performance 2021-09-13 20:29:53 +02:00
Marcin Ziąbek 22401be791 Fixed rendering spaces, fixed text alignment 2021-09-13 20:29:53 +02:00
Marcin Ziąbek e2774ef347 Improved book layout in benchmark 2021-09-13 20:29:53 +02:00
Marcin Ziąbek 99f004dd85 Improved text rendering (space corner cases) 2021-09-13 20:29:53 +02:00
Marcin Ziąbek 8ada092531 Fixed text rendering (spacing corner case) 2021-09-13 20:29:53 +02:00
Marcin Ziąbek c334390af0 Better new line handling 2021-09-13 20:29:53 +02:00
Marcin Ziąbek deed219a0a Code structure improvements. Text rendering: support for words longer than available space 2021-09-13 20:29:53 +02:00
Marcin Ziąbek bb8e590fc6 Code structure improvements 2021-09-13 20:29:53 +02:00
Marcin Ziąbek a08a7b85c9 Example report fixes 2021-09-13 20:29:52 +02:00
Marcin Ziąbek 755447e1fd Text: rendering custom elements inside text 2021-09-13 20:29:52 +02:00
Marcin Ziąbek b66a53a189 Text component: internal and external links 2021-09-13 20:29:52 +02:00
Marcin Ziąbek 6d41ac9b9a Fix: the Stack may not show last an element in certain scenarios 2021-09-13 20:29:52 +02:00
Marcin Ziąbek a124d23862 Code cleanup 2021-09-13 20:29:50 +02:00
Marcin Ziąbek 5f65b2daed Text Rendering Optimization: Caching Measurement Results 2021-09-13 20:29:44 +02:00
Marcin Ziąbek 07938a1510 Text rendering optimization: style key, font metrics caching 2021-09-13 20:29:34 +02:00
Marcin Ziąbek f17860f519 Implemented text rendering benchmark 2021-09-13 20:29:24 +02:00
Marcin Ziąbek 6023b4de34 Improved text rendering capabilities 2021-09-13 20:29:17 +02:00
Marcin Ziąbek 748b8f65f5 Initial text rendering improvements 2021-09-13 20:29:17 +02:00
Marcin Ziąbek feab280a27 Fixed detecting infinite layout exception in specific cases 2021-09-13 01:09:45 +02:00
Marcin Ziąbek ae32511172 Added text rendering tests 2021-09-13 01:06:06 +02:00
Marcin Ziąbek 6c4da7285a Fixed layout rendering 2021-09-13 00:55:21 +02:00
Marcin Ziąbek 070b6a20bd Improved text measuring performance 2021-09-12 21:37:46 +02:00
Marcin Ziąbek f7cfdb763f Fixed rendering spaces, fixed text alignment 2021-09-12 21:01:10 +02:00
Marcin Ziąbek 5975b19445 Improved book layout in benchmark 2021-09-07 13:34:04 +02:00
Marcin Ziąbek fb7743e828 Improved text rendering (space corner cases) 2021-09-07 13:16:34 +02:00
Marcin Ziąbek eca93b7e66 Added debug pointers to page 2021-09-07 11:17:49 +02:00
Marcin Ziąbek 6a3bfd855e Improved infinite layout debugging experience 2021-09-07 00:32:51 +02:00
Marcin Ziąbek 5e7f2a3adf Simple layout debugging when overflow 2021-09-06 21:43:31 +02:00
Marcin Ziąbek 2f1dd4b383 Improved tests with Benchmark.net 2021-09-06 21:43:12 +02:00
Marcin Ziąbek adec37007b Refactorization: space planning algorithm 2021-09-02 21:48:20 +02:00
Marcin Ziąbek 814d325376 Implemented measurement cache proxy 2021-09-02 13:30:39 +02:00
Marcin Ziąbek 4152a0f701 Improved row performance and layout structure stability 2021-09-02 00:53:50 +02:00
Marcin Ziąbek 6c80c59996 Fixed misspelling in release notes 2021-09-01 19:19:16 +02:00
Marcin Ziąbek 08a37666fe 2021.9.1 2021-09-01 19:14:52 +02:00
Marcin Ziąbek c2fb68562d 2021.9.0 2021-08-30 23:37:44 +02:00
Marcin Ziąbek 683ab362d8 Added support for registering font types based on the suggestion of brendonparker 2021-08-29 20:15:12 +02:00
Marcin Ziąbek 3bb46ecc42 Fixed text rendering (spacing corner case) 2021-08-29 19:18:58 +02:00
Marcin Ziąbek 3112ee10cf Better new line handling 2021-08-27 20:25:20 +02:00
Marcin Ziąbek 899c138842 Code structure improvements. Text rendering: support for words longer than available space 2021-08-27 19:51:28 +02:00
Marcin Ziąbek 5177dcfd2b Code structure improvements 2021-08-27 12:40:06 +02:00
Marcin Ziąbek 4e6415aee2 Example report fixes 2021-08-27 11:40:33 +02:00
Marcin Ziąbek d9b3f016e8 Text: rendering custom elements inside text 2021-08-27 01:55:20 +02:00
Marcin Ziąbek b9cfaf3846 Text component: internal and external links 2021-08-27 01:38:26 +02:00
Marcin Ziąbek e3e7a22af8 Fix: the Stack may not show last an element in certain scenarios 2021-08-27 01:38:10 +02:00
Marcin Ziąbek c938ea32b0 Code cleanup 2021-08-27 01:10:30 +02:00
Marcin Ziąbek 69419c8440 Text Rendering Optimization: Caching Measurement Results 2021-08-27 00:29:04 +02:00
Marcin Ziąbek 23e8aa3491 Text rendering optimization: style key, font metrics caching 2021-08-26 23:36:43 +02:00
Marcin Ziąbek fd5d51e764 Implemented text rendering benchmark 2021-08-26 22:25:33 +02:00
Marcin Ziąbek dbc479db07 Improved text rendering capabilities 2021-08-25 03:40:16 +02:00
Marcin Ziąbek 04af33fc31 Included examples for DSL and complex layouts 2021-08-23 23:51:42 +02:00
Marcin Ziąbek edc595d199 Initial text rendering improvements 2021-08-09 22:35:39 +02:00
Marcin Ziąbek 7f94ae589a Updated release notes and code example 2021-08-03 01:43:48 +02:00
Marcin Ziąbek adfce6204e Improved testing environment by adding proper result files names, Added more code examples 2021-08-03 01:35:46 +02:00
Marcin Ziąbek 6d3c8d0708 Added elements: Rotate, Unconstrained 2021-08-01 21:09:16 +02:00
Marcin Ziąbek 3b8c300126 Merge pull request #17 from QuestPDF/2021.6
Merge 2021.6 for QuestPdf 2021.8
2021-08-01 16:58:44 +02:00
MarcinZiabek 239a042615 Fixed rendering for the "Rotate" element 2021-07-28 21:36:51 +02:00
Marcin Ziąbek 49fb6dadb3 Improved null safety. Fixed tests 2021-07-26 12:26:31 +02:00
Marcin Ziąbek c79a4a0c08 Fixed rendering images 2021-07-26 11:59:48 +02:00
Marcin Ziąbek 31191efd88 Multipass rendering. Total pages / location position support. Continuous pages. 2021-07-26 11:35:52 +02:00
Marcin Ziąbek 20fe49dd01 Update SECURITY.md 2021-07-18 18:10:55 +02:00
Marcin Ziąbek 7cdc1fcee2 Create SECURITY.md 2021-07-18 18:10:20 +02:00
Marcin Ziąbek 14f11232be New elements: rotate, scale, translate 2021-06-09 23:34:25 +02:00
Marcin Ziąbek c05c5e1597 Update readme.md
Updated code, added the support section
2021-05-15 16:09:01 +02:00
Marcin Ziąbek 07f1eb99b9 Fixed: stack should not apply spacing for empty items 2021-05-05 13:26:46 +02:00
Marcin Ziąbek 44d7538578 Examples to the documentation 2021-05-05 00:10:48 +02:00
Marcin Ziąbek b894262f7e Improved developer experience via injecting Element() and Component() content in separate containers 2021-05-03 21:04:23 +02:00
Marcin Ziąbek 4423774648 Fixed Grid spacing. Adjusted performance test 2021-05-03 13:32:46 +02:00
Marcin Ziąbek 5d4f1f530a Merge pull request #11 from QuestPDF/tree_stack
Improved Stack and Row
2021-05-03 11:40:57 +02:00
Marcin Ziąbek 3ba8185871 Merge pull request #10 from QuestPDF/2021.05
2021.05 Update
2021-05-03 11:39:59 +02:00
Marcin Ziąbek b6e0bd505c Merge branch 'main' into 2021.05 2021-05-03 11:39:17 +02:00
Marcin Ziąbek 78e5cbd098 Minor refactorization 2021-05-03 00:38:48 +02:00
Marcin Ziąbek f792f6c749 Added tests for stack and row, project cleanup 2021-05-02 21:11:08 +02:00
Marcin Ziąbek 0d86039c0c Implemented experimental, tree-based simple stack and row 2021-05-02 14:40:08 +02:00
Marcin Ziąbek 779245b260 Minor Fluent API changes 2021-05-01 22:46:37 +02:00
Marcin Ziąbek 1698212669 Improved behaviour of the EnsureSpace element 2021-04-29 11:23:54 +02:00
Marcin Ziąbek 388adc5ad1 Update ElementExamples.cs 2021-04-21 23:44:15 +02:00
Marcin Ziąbek 81a9599b99 Updated version: 2021.5-alpha2 2021-04-21 14:12:22 +02:00
MarcinZiabek 48f41db98b Improved sample report styling 2021-04-20 12:55:07 +02:00
MarcinZiabek 3dd8513e42 Code cleanup 2021-04-20 12:54:38 +02:00
MarcinZiabek c3d805e5e5 Removed not needed images (photos and map). Replaced by image placeholder 2021-04-20 12:15:16 +02:00
Marcin Ziąbek f77d8baa63 Added Box element, Redesigned Debug element, Added image placeholder 2021-04-18 23:11:29 +02:00
MarcinZiabek 950d971119 Consolidated classes for Row and Grid elements 2021-04-17 21:55:19 +02:00
MarcinZiabek e4203838cb Cleaned up using statements 2021-04-17 21:52:33 +02:00
MarcinZiabek 25b690fcca Bug fix: maintain origin matrix after drawing the Canvas element 2021-04-17 21:51:17 +02:00
MarcinZiabek 4e3ba1d878 Fixed wrong import in QuestPDF.Examples.csproj 2021-04-16 10:22:41 +02:00
Marcin Ziąbek 3f0b500b1b New elements: Grid, Canvas, EnsureSpace, Layers. Predefined colors and fonts. 2021-04-16 01:19:34 +02:00
Marcin Ziąbek fb3aec4bf8 PageSize names refactorization 2021-04-09 19:17:36 +02:00
Marcin Ziąbek 8c2250ecde Code refactorization 2021-04-09 19:11:31 +02:00
Marcin Ziąbek bb2850b2d8 Added material design colors 2021-04-09 19:11:17 +02:00
Marcin Ziąbek 842b856f7a Added tests for several elements 2021-04-09 19:10:55 +02:00
Marcin Ziąbek 733dbc8746 Stack element: updated tests 2021-04-09 16:32:32 +02:00
Marcin Ziąbek 0b7b05d36c Decoration element: added tests 2021-04-09 16:32:22 +02:00
Marcin Ziąbek a83ebe2fed Simplified implementation for Section and Page elements 2021-04-03 00:13:14 +02:00
Marcin Ziąbek 6f0c6513da Bugfix: exception when providing null content into the Text element 2021-03-31 13:00:29 +02:00
Marcin Ziąbek 500cea1fbf Simplified the layouting algorithm in the Stack element; Added a Spacing property to the Row element; Implemented new Grid element; Updated examples 2021-03-28 17:49:19 +02:00
Laurence Mingle 3369da42ed Additional page sizes (#6)
* Update PageSizes.cs

Added/Updated page sizes using details found in the Adobe PostScript Printer Description File Format Specification version 4.3.

* Update PageSizes.cs

Rounded values

* Update PageSizes.cs

Using float

* Update PageSizes.cs

Formatting

* Update PageSizes.cs

Fewer PageSizes

* Update PageSizes.cs

Addition of PageSize class, dimensions using point values from papersizes.io and extension methods for portrait & landscape orientation.
2021-03-27 11:08:00 +01:00
MarcinZiabek c5cb588857 Fixed: AspectRatio behaviour does not take into account child measurement. Added tests for AspectRatio, Image and DynamicImage elements. Small TestPlan framework improvements. 2021-03-23 18:05:39 +01:00
Marcin Ziąbek 08126b2fa4 simplified AspectRatio code, better exception handling for QuestPdf.Examples, fixed Placeholder image 2021-03-23 14:43:03 +01:00
Marcin Ziąbek 5e9ff7ec1e Added scaling options for AspectRatio and Image component. Added Debug component to the fluent API 2021-03-22 11:49:27 +01:00
Marcin Ziąbek 9c05c182b8 Fix: GeneratePdf closes provided stream 2021-03-21 17:43:55 +01:00
Marcin Ziąbek dee97b22e4 Improved readme 2021-03-10 19:55:58 +01:00
Marcin Ziąbek 1d1d969b5a 2021.3.1 2021-03-01 17:06:37 +01:00
Marcin Ziąbek 190b1e7dee Update issue templates 2021-03-01 16:49:27 +01:00
Marcin Ziąbek 98be1abe74 Merge pull request #1 from QuestPDF/add-code-of-conduct-1
Create CODE_OF_CONDUCT.md
2021-03-01 16:41:17 +01:00
726 changed files with 29315 additions and 4413 deletions
+23
View File
@@ -0,0 +1,23 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Please provide an example, minimalistic code that shows the problem.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+70
View File
@@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '22 16 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'csharp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
+54
View File
@@ -0,0 +1,54 @@
name: Build And Create Nuget Package
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
schedule:
- cron: '3 0 * * 0'
jobs:
main:
runs-on: ${{ matrix.environment }}
strategy:
matrix:
environment:
- macos-latest
- ubuntu-latest
- windows-latest
env:
DOTNET_NOLOGO: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
UNIT_TEST_PROJECT: QuestPDF.UnitTests/QuestPDF.UnitTests.csproj
steps:
- name: 📝 Fetch Sources 📝
uses: actions/checkout@v2
- name: ⚙ Setup .NET 6.0 SDK ⚙
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: 🔄 Restore Nuget Packages 🔄
shell: bash
run: dotnet restore
working-directory: ./Source
- name: 🛠 Build Solution 🛠
shell: bash
run: dotnet build -c Release --no-restore
working-directory: ./Source
- name: Upload build artifacts
uses: actions/upload-artifact@v3
if: ${{ matrix.environment == 'windows-latest' }}
with:
name: Build Package
path: |
**/*.nupkg
**/*.snupkg
!.nuget
+1
View File
@@ -0,0 +1 @@
github: QuestPDF
View File
-138
View File
@@ -1,138 +0,0 @@
using QuestPDF.Examples.Engine;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples
{
public class ElementExamples : ExampleTestBase
{
//[ShowResult]
[ImageSize(200, 150)]
public void Placeholder(IContainer container)
{
container
.Background("#FFF")
.Padding(25)
.Placeholder();
}
//[ShowResult]
[ImageSize(300, 300)]
public void Section(IContainer container)
{
container
.Background("#FFF")
.Padding(25)
.Section(section =>
{
section
.Header()
.Background("#888")
.Padding(10)
.Text("Notes", TextStyle.Default.Size(16).Color("#FFF"));
section
.Content()
.Background("#DDD")
.Padding(10)
.ExtendVertical()
.Text(TextPlaceholder.LoremIpsum());
});
}
//[ShowResult]
[ImageSize(298, 421)]
public void Page(IContainer container)
{
container
.Background("#FFF")
.Padding(15)
.Page(page =>
{
page.Header()
.Height(60)
.Background("#BBB")
.AlignCenter()
.AlignMiddle()
.Text("Header");
page.Content()
.Background("#DDD")
.AlignCenter()
.AlignMiddle()
.Text("Content");
page.Footer()
.Height(30)
.Background("#BBB")
.AlignCenter()
.AlignMiddle()
.Text("Footer");
});
}
//[ShowResult]
[ImageSize(740, 200)]
public void Row(IContainer container)
{
container
.Background("#FFF")
.Padding(20)
.Stack(stack =>
{
stack.Element()
.PaddingBottom(10)
.AlignCenter()
.Text("This Row element is 700pt wide");
stack.Element().Row(row =>
{
row.ConstantColumn(100)
.Background("#DDD")
.Padding(10)
.ExtendVertical()
.Text("This column is 100 pt wide");
row.RelativeColumn()
.Background("#BBB")
.Padding(10)
.Text("This column takes 1/3 of the available space (200pt)");
row.RelativeColumn(2)
.Background("#DDD")
.Padding(10)
.Text("This column takes 2/3 of the available space (400pt)");
});
});
}
//[ShowResult]
[ImageSize(500, 350)]
public void Column(IContainer container)
{
container
.Background("#FFF")
.Padding(15)
.Stack(column =>
{
column.Spacing(10);
column
.Element()
.Background("#999")
.Height(50);
column
.Element()
.Background("#BBB")
.Height(100);
column
.Element()
.Background("#DDD")
.Height(150);
});
}
}
}
@@ -1,89 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using NUnit.Framework;
using QuestPDF.Drawing;
using QuestPDF.Elements;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using SkiaSharp;
namespace QuestPDF.Examples.Engine
{
[TestFixture]
public class ExampleTestBase
{
private readonly Size DefaultImageSize = new Size(400, 300);
private const string ResultPath = "Result";
[SetUp]
public void Setup()
{
if (Directory.Exists(ResultPath))
Directory.Delete(ResultPath, true);
Directory.CreateDirectory(ResultPath);
}
[Test]
public void RunTest()
{
GetType()
.GetMethods()
.Where(IsExampleMethod)
.ToList()
.ForEach(HandleExample);
}
private bool IsExampleMethod(MethodInfo method)
{
var parameters = method.GetParameters();
return parameters.Length == 1 && parameters.First().ParameterType == typeof(IContainer);
}
private T GetAttribute<T>(MethodInfo methodInfo) where T : Attribute
{
return methodInfo.GetCustomAttributes().FirstOrDefault(y => y is T) as T;
}
private void HandleExample(MethodInfo methodInfo)
{
var size = GetAttribute<ImageSizeAttribute>(methodInfo)?.Size ?? DefaultImageSize;
var fileName = GetAttribute<FileNameAttribute>(methodInfo)?.FileName ?? methodInfo.Name;
var showResult = GetAttribute<ShowResultAttribute>(methodInfo) != null;
var shouldIgnore = GetAttribute<IgnoreAttribute>(methodInfo) != null;
if (shouldIgnore)
return;
var container = new Container();
methodInfo.Invoke(this, new object[] {container});
Func<int, string> fileNameSchema = i => $"{fileName.ToLower()}-${i}.png";
var document = new SimpleDocument(container, size);
document.GenerateImages(fileNameSchema);
if (showResult)
Process.Start("explorer", fileNameSchema(0));
}
private byte[] RenderPage(Element element, Size size)
{
// scale the result so it is more readable
const float scalingFactor = 2;
var imageInfo = new SKImageInfo((int)(size.Width * scalingFactor), (int)(size.Height * scalingFactor));
using var surface = SKSurface.Create(imageInfo);
surface.Canvas.Scale(scalingFactor);
var canvas = new Canvas(surface.Canvas);
element?.Draw(canvas, size);
surface.Canvas.Save();
return surface.Snapshot().Encode(SKEncodedImageFormat.Png, 100).ToArray();
}
}
}
@@ -1,14 +0,0 @@
using System;
namespace QuestPDF.Examples.Engine
{
public class FileNameAttribute : Attribute
{
public string FileName { get; }
public FileNameAttribute(string fileName)
{
FileName = fileName;
}
}
}
@@ -1,9 +0,0 @@
using System;
namespace QuestPDF.Examples.Engine
{
public class IgnoreAttribute : Attribute
{
}
}
@@ -1,19 +0,0 @@
using System;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples.Engine
{
public class ImageSizeAttribute : Attribute
{
private int Width { get; }
private int Height { get; }
public Size Size => new Size(Width, Height);
public ImageSizeAttribute(int width, int height)
{
Width = width;
Height = height;
}
}
}
@@ -1,9 +0,0 @@
using System;
namespace QuestPDF.Examples.Engine
{
public class ShowResultAttribute : Attribute
{
}
}
@@ -1,33 +0,0 @@
using QuestPDF.Drawing;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples.Engine
{
public class SimpleDocument : IDocument
{
private IContainer Container { get; }
private Size Size { get; }
public SimpleDocument(IContainer container, Size size)
{
Container = container;
Size = size;
}
public DocumentMetadata GetMetadata()
{
return new DocumentMetadata()
{
RasterDpi = PageSizes.PointsPerInch * 2,
Size = Size
};
}
public void Compose(IContainer container)
{
container.Element(Container.Child);
}
}
}
-45
View File
@@ -1,45 +0,0 @@
using System.Linq;
using QuestPDF.Examples.Engine;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples
{
static class SimpleExtension
{
private static IContainer Cell(this IContainer container, bool dark)
{
return container
.Border(1)
.Background(dark ? "#EEE" : "#FFF")
.Padding(10);
}
public static IContainer LabelCell(this IContainer container) => container.Cell(true);
public static IContainer ValueCell(this IContainer container) => container.Cell(false);
}
public class FrameExample: ExampleTestBase
{
[ImageSize(550, 400)]
[ShowResult]
public void Frame(IContainer container)
{
container
.Background("#FFF")
.Padding(25)
.Stack(stack =>
{
for(var i=1; i<=4; i++)
{
stack.Element().Row(row =>
{
row.RelativeColumn(2).LabelCell().Text(TextPlaceholder.Label());
row.RelativeColumn(3).ValueCell().Text(TextPlaceholder.Paragraph());
});
}
});
}
}
}
-54
View File
@@ -1,54 +0,0 @@
using System.Net;
using QuestPDF.Examples.Engine;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples
{
public class LoremPicsum : IComponent
{
public bool Greyscale { get; }
public LoremPicsum(bool greyscale)
{
Greyscale = greyscale;
}
public void Compose(IContainer container)
{
var url = "https://picsum.photos/300/200";
if(Greyscale)
url += "?grayscale";
using var client = new WebClient();
var response = client.DownloadData(url);
container.Image(response);
}
}
public class LoremPicsumExample : ExampleTestBase
{
[ShowResult]
[ImageSize(350, 280)]
public void LoremPicsum(IContainer container)
{
container
.Background("#FFF")
.Padding(25)
.Stack(column =>
{
column.Spacing(10);
column
.Element()
.Component(new LoremPicsum(true));
column
.Element()
.AlignRight()
.Text("From Lorem Picsum");
});
}
}
}
-134
View File
@@ -1,134 +0,0 @@
using QuestPDF.Examples.Engine;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples
{
public class Examples : ExampleTestBase
{
public void Padding(IContainer container)
{
container
.Background("#FDD")
.Padding(50)
.Background("#AFA")
.PaddingVertical(50)
.Background("#77F")
.PaddingHorizontal(50)
.Background("#444");
}
public void Border(IContainer container)
{
container
.Background("#EEE")
.Padding(25)
.AlignBottom()
.AlignCenter()
.BorderBottom(2)
.BorderColor("#000")
.Background("FFF")
.Padding(5)
.Text("Sample text", TextStyle.Default.FontType("Segoe UI emoji").Alignment(HorizontalAlignment.Center));
}
public void Alignment(IContainer container)
{
container
.Stack(column =>
{
column
.Element()
.Height(100)
.Background("#FFF")
.AlignLeft()
.AlignMiddle()
.Width(50)
.Height(50)
.Background("#444");
column
.Element()
.Height(100)
.Background("#DDD")
.AlignCenter()
.AlignMiddle()
.Width(50)
.Height(50)
.Background("#222");
column
.Element()
.Height(100)
.Background("#BBB")
.AlignRight()
.AlignMiddle()
.Width(50)
.Height(50)
.Background("#000");
});
}
public void Expand(IContainer container)
{
container
.Stack(column =>
{
column
.Element()
.Height(150)
.Row(row =>
{
row.RelativeColumn()
.Extend()
.Background("FFF")
.Height(50)
.Width(50)
.Background("444");
row.RelativeColumn()
.Extend()
.Background("BBB")
.Height(50)
.ExtendHorizontal()
.Background("444");
});
column
.Element()
.Height(150)
.Row(row =>
{
row.RelativeColumn()
.Extend()
.Background("BBB")
.ExtendVertical()
.Width(50)
.Background("444");
row.RelativeColumn()
.Extend()
.Background("BBB")
.ExtendVertical()
.ExtendHorizontal()
.Background("444");
});
});
}
}
}
@@ -1,20 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="SkiaSharp" Version="2.80.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\QuestPDF.InvoiceSample\QuestPDF.InvoiceSample.csproj" />
<ProjectReference Include="..\QuestPDF\QuestPDF.csproj" />
</ItemGroup>
</Project>
-35
View File
@@ -1,35 +0,0 @@
using System;
using System.IO;
using QuestPDF.ReportSample.Layouts;
using SkiaSharp;
namespace QuestPDF.ReportSample
{
public static class Helpers
{
public static Random Random { get; } = new Random();
public static string GetTestItem(string path) => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", path);
public static byte[] GetDocumentMap(string name) => GetImage(Path.Combine("Maps", "Document", name));
public static byte[] GetDetailsMap(string name) => GetImage(Path.Combine("Maps", "Details", name));
public static byte[] GetContextMap(string name) => GetImage(Path.Combine("Maps", "Context", name));
public static byte[] GetPhoto(string name) => GetImage(Path.Combine("Photos", name));
public static byte[] GetImage(string name)
{
var photoPath = GetTestItem(name);
return SKImage.FromEncodedData(photoPath).EncodedData.ToArray();
}
public static Location RandomLocation()
{
return new Location
{
Longitude = Helpers.Random.NextDouble() * 360f - 180f,
Latitude = Helpers.Random.NextDouble() * 180f - 90f
};
}
}
}
@@ -1,31 +0,0 @@
using System;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.ReportSample.Layouts
{
public class ImageTemplate : IComponent
{
private Func<Size, byte[]> Source { get; }
private float AspectRatio { get; }
public ImageTemplate(byte[] source, float aspectRatio = 1.333333f) : this(_ => source, aspectRatio)
{
}
public ImageTemplate(Func<Size, byte[]> source, float aspectRatio = 1.333333f)
{
Source = source;
AspectRatio = aspectRatio;
}
public void Compose(IContainer container)
{
container
.AspectRatio(AspectRatio)
.Background("#EEEEEE")
.Image(Source(Size.Zero));
}
}
}
@@ -1,62 +0,0 @@
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.ReportSample.Layouts
{
public class PhotoTemplate : IComponent
{
public ReportPhoto Model { get; set; }
public PhotoTemplate(ReportPhoto model)
{
Model = model;
}
public void Compose(IContainer container)
{
container
.Stack(stack =>
{
stack.Element(PhotoWithMaps);
stack.Element(PhotoDetails);
});
}
void PhotoWithMaps(IContainer container)
{
container
.Padding(-3)
.PaddingBottom(3)
.Row(row =>
{
row.RelativeColumn(2).Padding(3).Component(new ImageTemplate(Model.PhotoData));
row.RelativeColumn().Stack(stack =>
{
stack.Element().Padding(3).Component(new ImageTemplate(Model.MapDetailsSource));
stack.Element().Padding(3).Component(new ImageTemplate(Model.MapContextSource));
});
});
}
void PhotoDetails(IContainer container)
{
container.Stack(stack =>
{
stack.Element().Row(row =>
{
row.RelativeColumn().DarkCell().Text("Date", Typography.Normal);
row.RelativeColumn(2).LightCell().Text(Model.Date?.ToString("g") ?? string.Empty, Typography.Normal);
row.RelativeColumn().DarkCell().Text("Location", Typography.Normal);
row.RelativeColumn(2).LightCell().Text(Model.Location.Format(), Typography.Normal);
});
stack.Element().Row(row =>
{
row.RelativeColumn().DarkCell().Text("Comments", Typography.Normal);
row.RelativeColumn(5).LightCell().Text(Model.Comments, Typography.Normal);
});
});
}
}
}
@@ -1,94 +0,0 @@
using System;
using System.Linq;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.ReportSample.Layouts
{
public class SectionTemplate : IComponent
{
public ReportSection Model { get; set; }
public SectionTemplate(ReportSection model)
{
Model = model;
}
public void Compose(IContainer container)
{
container
.MinHeight(100)
.Section(section =>
{
section
.Header()
.PaddingBottom(5)
.Text(Model.Title, Typography.Headline);
section.Content().PageableStack(stack =>
{
foreach (var part in Model.Parts)
{
stack.Element().Row(row =>
{
row.ConstantColumn(150).DarkCell().Text(part.Label, Typography.Normal);
var frame = row.RelativeColumn().LightCell();
if (part is ReportSectionText text)
frame.Text(text.Text, Typography.Normal);
if (part is ReportSectionMap map)
frame.Element(container => MapElement(container, map));
if (part is ReportSectionPhotos photos)
frame.Element(container => PhotosElement(container, photos));
});
}
});
});
}
void MapElement(IContainer container, ReportSectionMap model)
{
if (model.ImageSource == null || model.Location == null)
{
container.Text("No location provided", Typography.Normal);
return;
}
container.Stack(stack =>
{
stack.Spacing(5);
stack.Element().Component(new ImageTemplate(model.ImageSource));
stack.Element().Text(model.Location.Format(), Typography.Normal);
});
}
void PhotosElement(IContainer container, ReportSectionPhotos model)
{
if (model.Photos.Count == 0)
{
container.Text("No photos", Typography.Normal);
return;
}
var rowCount = (int) Math.Ceiling(model.Photos.Count / 3f);
container.Padding(-2).Stack(stack =>
{
foreach (var rowId in Enumerable.Range(0, rowCount))
{
stack.Element().Row(row =>
{
foreach (var id in Enumerable.Range(0, 3))
{
var data = model.Photos.ElementAtOrDefault(rowId + id);
row.RelativeColumn().Padding(2).Component(new ImageTemplate(data));
}
});
}
});
}
}
}
@@ -1,97 +0,0 @@
using QuestPDF.Drawing;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
namespace QuestPDF.ReportSample.Layouts
{
public class StandardReport : IDocument
{
private ReportModel Model { get; }
public StandardReport(ReportModel model)
{
Model = model;
}
public DocumentMetadata GetMetadata()
{
return new DocumentMetadata()
{
Title = Model.Title,
Size = PageSizes.A4
};
}
public void Compose(IContainer container)
{
container
.PaddingVertical(40)
.PaddingHorizontal(50)
.Page(page =>
{
page.Header(ComposeHeader);
page.Content(ComposeContent);
page.Footer().AlignCenter().PageNumber("Page {number}");
});
}
private void ComposeHeader(IContainer container)
{
container.Row(row =>
{
row.RelativeColumn().MaxWidth(300).Stack(stack =>
{
stack.Spacing(5);
stack
.Element()
.PaddingBottom(5)
.Text(Model.Title, Typography.Title);
stack.Element().ShowOnce().Stack(table =>
{
table.Spacing(5);
foreach (var field in Model.HeaderFields)
{
table.Element().Row(row =>
{
row.ConstantColumn(50)
.AlignLeft()
.Text($"{field.Label}:", Typography.Normal);
row.RelativeColumn()
.PaddingLeft(10)
.Text(field.Value, Typography.Normal);
});
}
});
});
row.ConstantColumn(150).ExternalLink("https://www.questpdf.com").Image(Model.LogoData);
});
}
void ComposeContent(IContainer container)
{
container.PaddingVertical(20).PageableStack(stack =>
{
stack.Spacing(20);
stack.Element().Component(new TableOfContentsTemplate(Model.Sections));
foreach (var section in Model.Sections)
stack.Element().Location(section.Title).Component(new SectionTemplate(section));
stack.Element().PageBreak();
stack.Element().Location("Photos");
foreach (var photo in Model.Photos)
stack.Element().Component(new PhotoTemplate(photo));
});
}
}
}
@@ -1,51 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
namespace QuestPDF.ReportSample.Layouts
{
public class TableOfContentsTemplate : IComponent
{
private List<ReportSection> Sections { get; }
public TableOfContentsTemplate(List<ReportSection> sections)
{
Sections = sections;
}
public void Compose(IContainer container)
{
container
.Section(section =>
{
section
.Header()
.PaddingBottom(5)
.Text("Table of contents", Typography.Headline);
section.Content().PageableStack(stack =>
{
stack.Spacing(5);
for (var i = 0; i < Sections.Count; i++)
stack.Element(c => DrawLink(c, i+1, Sections[i].Title));
stack.Element(c => DrawLink(c, Sections.Count+1, "Photos"));
});
});
}
private void DrawLink(IContainer container, int number, string locationName)
{
container
.InternalLink(locationName)
.Row(row =>
{
row.ConstantColumn(25).Text($"{number}.", Typography.Normal);
row.RelativeColumn().Text(locationName, Typography.Normal);
});
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Some files were not shown because too many files have changed in this diff Show More