Commit Graph

1013 Commits

Author SHA1 Message Date
BobLd
60595e1341 Check if current path is null for path construction operators 2020-04-05 17:58:57 +01:00
BobLd
9a2a72ea2e remove clipping to fix CanGetArtifact() test 2020-04-05 17:58:57 +01:00
BobLd
270b1b5ef5 add comment about bezier curves/polylines when clipping 2020-04-05 17:58:57 +01:00
BobLd
e2b03c3075 implement clipping using Clipper (Boost Software License) 2020-04-05 17:58:57 +01:00
BobLd
a759a99389 Move ClipPaths option from GetPage() to ParsingOptions 2020-04-05 17:58:57 +01:00
BobLd
c14646fcc0 Fix Mode() 2020-04-05 17:58:57 +01:00
BobLd
ec2dcdc9f4 Check if CurrentSubpath is null in CloseSubpath() 2020-04-05 17:58:57 +01:00
BobLd
16a17f3b8d update IsClosed() with Move 2020-04-05 17:58:57 +01:00
BobLd
d804a63905 update comments 2020-04-05 17:58:57 +01:00
BobLd
b923a42f9e Check if CurrentSubpath null before CloseSubpath 2020-04-05 17:58:57 +01:00
BobLd
20c4b9594b Rename PdfSubpath.ClosePath() to PdfSubpath.CloseSubpath() to avoid confusion 2020-04-05 17:58:57 +01:00
BobLd
04300eb12c Add PdfSubpath comment 2020-04-05 17:58:57 +01:00
BobLd
401c4484b5 remove static for local function (recommended by VS2019) 2020-04-05 17:58:57 +01:00
BobLd
064fa4922a make Clipping internal
do not throw errors when CurrentPath is null
modify tests to match
2020-04-05 17:58:57 +01:00
BobLd
51165dc11a Implement EndPath
Make path clipping optional
2020-04-05 17:58:57 +01:00
BobLd
a7fe39fc32 Add SvgTextExporter
Modify WriteSvg to account for height
2020-04-05 17:58:57 +01:00
BobLd
983cfcb2f6 Simplify path construction operators
fix 're' operator to reflect documentation
Update ContentStreamProcessor with fill, stroke and clip operations
Throw errors when currentPosition is null in PdfSubpath
2020-04-05 17:58:57 +01:00
BobLd
3ee9ac7915 Implement FillStrokePath() operator and filling rule. 2020-04-05 17:58:57 +01:00
BobLd
5eb2cc507e Add CurrentClippingPath to CurrentGraphicsState 2020-04-05 17:58:57 +01:00
BobLd
83ef10ec22 Add Clipping helper class. Does nothing for the moment 2020-04-05 17:58:57 +01:00
BobLd
43b40da5d5 Change Subpath to path where necessary 2020-04-05 17:58:57 +01:00
BobLd
002d8dc06d Move Path-Painting Operators to PathPainting folder 2020-04-05 17:58:57 +01:00
BobLd
c4a077bbbb Add IsFilled and IsStroked flags
Add CloneEmpty() and GetBoundingRectangle()methods
2020-04-05 17:58:57 +01:00
BobLd
2b68547131 Moving PdfPath from PdfPig.Core to PdfPig
Add FillColor, StrokeColor, LineWidth, LineDashPattern and LineCapStyle to PdfPath.
2020-04-05 17:58:57 +01:00
BobLd
6677641b37 Create PdfPath
Rename ClippingRule to FillingRule
Move FillingRule from Subpath to Path
2020-04-05 17:58:57 +01:00
BobLd
ab6a0f11fc Change name from PdfPath to PdfSubpath 2020-04-05 17:58:57 +01:00
Eliot Jones
f1be6634a7 add a bunch more performance improvements
filter provider becomes single instance and no longer has constructor parameters.

tokenizers use list and stringbuilder pools to reduce allocations.

system font finder becomes static to preserve file cache across all documents.
2020-04-05 15:34:47 +01:00
Eliot Jones
7baa18b5dd add stringbuilder pool for tokenizers
we could replace these with spans in the next net core however for now our pools seem to increase performance by reducing gc load.
2020-04-04 18:31:55 +01:00
Eliot Jones
cf46230c05 #127 add pdf/a2-b compliance to the builder 2020-04-04 17:49:27 +01:00
Eliot Jones
729234477a fix issue with null encodings for cid fonts 2020-04-04 17:30:06 +01:00
Eliot Jones
9abe9f4b2f #158 add strong naming to the solution 2020-04-04 16:59:51 +01:00
Eliot Jones
7f1bf094bc #127 pdf/a-1a compliance
adds struct tree and markinfo dictionaries to support pdf/a-1a compliance.
2020-03-29 17:55:02 +01:00
Eliot Jones
5f45ee53bd #127 add basic pdf/a-1b level compliance to the document builder
adds color profiles/output intents and an xmp metadata stream to the document in order to be compliant with pdf/a-1b (basic). this compliance level is toggled on the builder since it will generate larger files and set to 'off/none' by default. pdf/a documents are also not able to use standard fonts so using a font when the compliance level is not none will throw.
2020-03-29 16:43:52 +01:00
BobLd
7d52bc8be4 make Distances.FindIndexNearest public
add tests for Distances.FindIndexNearest
2020-03-24 19:52:01 +00:00
BobLd
8460b8bc1d Add test for Mode(float) 2020-03-24 19:52:01 +00:00
BobLd
0d786a1265 Add tests for KdTree, MathExtensions and Distances
Add reference to DLA project
Make KdTree public
Fix mode computation for multimodal
2020-03-24 19:52:01 +00:00
BobLd
5f0ddf131e make OrientedBoundingBox public 2020-03-24 19:52:01 +00:00
Eliot Jones
4ed1600cab version 0.1.1 0.1.1 2020-03-18 20:10:51 +00:00
Eliot Jones
0f91017613 fix issue with newlines in object start tokens #88
where we brute force the file and it contains newlines between object tokens we fix the parsing to prevent pseudo-infinite loops.
2020-03-17 20:09:47 +00:00
Eliot Jones
5094f9d9d0 remove debugging code
this code was used to check content streams but should not be committed.
2020-03-16 19:32:57 +00:00
Eliot Jones
98bcc16e11 fix width and height order in jpeg parsing
height is before width, incorrect order caused adobe reader to draw image strangely.
2020-03-16 19:32:57 +00:00
Eliot Jones
7212b9e38c enable re-use of jpeg images between or within pages
returns a reference to the added image object when calling addjpeg so that it can be shared between or within pages meaning the image is only written to the output file once but can appear multiple times.

this image doesn't seem to be displaying correctly in adobe reader.
2020-03-16 19:32:57 +00:00
Eliot Jones
19462d79f0 add support for jpeg images in pdf document builder
since jpegs can be trivially embedded in pdf documents without changes to the data stream this is the first image format we will support. currently this is a naive approach which doesn't share an image resources between pages. ideally we will either de-duplicated images when added, return a re-usable key once an image is added, or both.
2020-03-16 19:32:57 +00:00
Eliot Jones
8ac4195b83 0.1.1-alpha001 0.1.1-alpha001 2020-03-15 16:52:28 +00:00
Eliot Jones
908d84ccc6 remove debug code from the test
i accidentally left this in when debugging the pdf merging.
2020-03-15 16:29:18 +00:00
BobLd
c1a1fa1f7f - fix minimum area rectangle algo and make it public
- add tests
- tidy up code
2020-03-15 17:20:36 +01:00
InusualZ
bd6b03c2e8 Removed the possibility of deepCopy a token.
Anyway, the DataToken properties most are readonly, If you want to change something. You have to crate a new token anyway.  Discussion: https://github.com/UglyToad/PdfPig/pull/150
2020-03-15 16:05:23 +01:00
InusualZ
3abe210c6f Add new flag to control, weather we want to dispose the base stream.
Let the base stream throw in case of using unsupported method (Ex. Seek, Read, etc..)
2020-03-15 16:05:23 +01:00
InusualZ
02289d75ac Use ReferenceEquals to avoid infinite recursion
Fix InlineImageDataToken not checking Data length before comparing bytes
Use a more straightforward compare Dictionary Content
2020-03-15 16:05:23 +01:00
InusualZ
26f92a9630 Add test case, that test that we lower the object count 2020-03-15 16:05:23 +01:00