calixteman
865b48893a
Correctly sync the transform on the scratch canvas
...
It fixes #17784 .
2026-04-13 23:54:53 +02:00
calixteman
22bcaf5a8a
Fix blending issues while compositing
...
It fixes #13520 .
And remove dead code.
2026-04-13 22:12:04 +02:00
calixteman
b82ceda22b
Merge pull request #21060 from calixteman/implement_merge
...
Add the UI for merging PDFs (bug 2028071)
2026-04-13 21:37:02 +02:00
calixteman
2417d9aecb
Merge pull request #21098 from calixteman/rm_workaround_1820511
...
Remove the workaround for bug 1820511
2026-04-13 21:28:49 +02:00
Tim van der Meij
7aca886f2b
Merge pull request #21097 from Snuffleupagus/convert-tables-TypedArray
...
Use TypedArrays when building more TrueType tables
2026-04-13 21:07:07 +02:00
Calixte Denizet
8c9b819b4e
Add the UI for merging PDFs (bug 2028071)
2026-04-13 19:38:56 +02:00
Calixte Denizet
ec35057b46
Remove the workaround for bug 1820511
2026-04-13 16:49:07 +02:00
calixteman
052e29cc56
Take into account CharProcs keys when computing the type3 hash
...
It fixes #19634 .
2026-04-13 14:49:39 +02:00
Jonas Jenwald
2437f5f961
Use a TypedArray when building the "head" TrueType table
2026-04-13 12:41:41 +02:00
Jonas Jenwald
5096982cfc
Use a TypedArray when building the "hhea" TrueType table
2026-04-13 12:41:41 +02:00
Jonas Jenwald
0c789ecc97
Use a TypedArray when building the "maxp" TrueType table
2026-04-13 12:41:41 +02:00
Jonas Jenwald
aaaf143156
Use a DataView when building the "hmtx" TrueType table (PR 21072 follow-up)
2026-04-13 12:41:38 +02:00
Jonas Jenwald
2e5ab9c9eb
Remove unused helper functions in src/core/core_utils.js
...
After recent patches, that added more `DataView` usage, these helper functions are now unused.
2026-04-12 19:52:02 +02:00
Jonas Jenwald
c92d4be973
Remove readUint32 usage from the isTrueTypeFile function
...
This is the only `readUint32` usage in the `src/core/fonts.js` file, and it can be trivially replaced with a string comparison.
2026-04-12 19:50:53 +02:00
Jonas Jenwald
169d8c9616
Merge pull request #21077 from Snuffleupagus/FontRendererFactory-DataView
...
Re-factor the `FontRendererFactory` class, and related code, to use `DataView`s when reading data
2026-04-12 19:50:06 +02:00
Tim van der Meij
8cfb1f8456
Merge pull request #21093 from timvandermeij/updates
...
Update dependencies to the most recent versions
2026-04-12 19:39:05 +02:00
Jonas Jenwald
a24d86e1cf
Re-factor the FontRendererFactory class, and related code, to use DataViews when reading data
2026-04-12 18:34:19 +02:00
Tim van der Meij
88abcefea0
Merge pull request #21080 from calixteman/recursive_glyf
...
Avoid infinite recursion while compiling a glyph
2026-04-12 18:32:03 +02:00
Tim van der Meij
89b195d35c
Merge pull request #21092 from Snuffleupagus/AnnotationEditorLayer-stopEvent
...
Use the `stopEvent` helper function in the `AnnotationEditorLayer` class
2026-04-12 18:31:31 +02:00
Tim van der Meij
0d61268875
Merge pull request #21091 from calixteman/debbuger_array_content_stream
...
[Debugger] Fix the content stream rendering when it's a ref to an array
2026-04-12 16:29:28 +02:00
Tim van der Meij
583c9d6b98
Update dependencies to the most recent versions
...
Note that the `globals` update rendered two ESLint ignore lines obsolete
because the `Sanitizer` global is now registered [1].
[1] 5d84602967
2026-04-12 16:16:21 +02:00
Calixte Denizet
b4d689ce06
Avoid infinite recursion while compiling a glyph
2026-04-12 14:55:22 +02:00
Tim van der Meij
006931f3d3
Merge pull request #21090 from calixteman/issue21089
...
Remove pattern fill when setting fill color before drawing a tile
2026-04-12 14:42:49 +02:00
Tim van der Meij
57acd97f6d
Merge pull request #21088 from Snuffleupagus/fonts-rm-int32-helper
...
Remove the `int32` helper, and replace it with `DataView` usage, in `src/core/fonts.js`
2026-04-12 14:25:14 +02:00
Jonas Jenwald
041f58f1e6
Use the stopEvent helper function in the AnnotationEditorLayer class
2026-04-12 14:23:52 +02:00
Tim van der Meij
01f5de36ad
Merge pull request #21087 from Snuffleupagus/Jbig2Image-DataView
...
Re-factor the `Jbig2Image` class, and related code, to use `DataView`s when reading data
2026-04-12 14:23:34 +02:00
Tim van der Meij
fbed36db00
Merge pull request #21082 from calixteman/fix_comb_ltr
...
Fix how the text is printed/saved in a comb field when it's a RTL one
2026-04-12 14:16:42 +02:00
calixteman
5cc5d9be45
[Debugger] Fix the content stream rendering when it's a ref to an array
...
It can be verified in opening stepped.pdf (see #21089 ).
2026-04-12 13:40:18 +02:00
calixteman
6d3034d4f9
Remove pattern fill when setting fill color before drawing a tile
...
It fixes #21089 .
2026-04-12 13:08:45 +02:00
Jonas Jenwald
f924526f1a
Remove the int32 helper, and replace it with DataView usage, in src/core/fonts.js
...
This helper function only had a single call-site, and it's easily replaced with a `DataView` method.
Additionally, to hopefully make future re-factoring easier, create a `DataView` for each TrueType table.
2026-04-12 10:01:14 +02:00
Jonas Jenwald
afbded8da1
Re-factor the Jbig2Image class, and related code, to use DataViews when reading data
2026-04-11 16:44:15 +02:00
Jonas Jenwald
64e5a7021d
Re-factor the JpegImage class, and related code, to use DataViews when reading data
2026-04-11 12:44:30 +02:00
Calixte Denizet
fa9b2ae32c
Fix how the text is printed/saved in a comb field when it's a RTL one
2026-04-10 22:48:18 +02:00
Jonas Jenwald
81c9a34fd3
Merge pull request #21079 from Snuffleupagus/CFFParser-DataView
...
Re-factor the `CFFParser` class to use `DataView`s when reading data
2026-04-10 19:56:46 +02:00
calixteman
7cfcafbb4b
Merge pull request #21069 from calixteman/issue21068
...
Take into account the alignment when printing/saving a comb field
2026-04-10 19:29:20 +02:00
Jonas Jenwald
dd9ed2040e
Re-factor the CFFParser class to use DataViews when reading data
2026-04-10 17:44:19 +02:00
Jonas Jenwald
545b512e74
Merge pull request #21076 from Snuffleupagus/OpenTypeFileBuilder-DataView
...
Re-factor the `OpenTypeFileBuilder` class to use a `DataView` when writing data
2026-04-10 16:22:19 +02:00
Jonas Jenwald
e9eabf051d
Re-factor the OpenTypeFileBuilder class to use a DataView when writing data
...
Also, changes the `tables` field to a private `Map`.
2026-04-10 14:59:52 +02:00
Jonas Jenwald
a69b9ad033
Ensure that the built "hmtx" font table has valid widths (PR 21072 follow-up)
...
With the changes in PR 21072 the `string16` helper is no longer being used when building the "hmtx" table, which accidentally removed the development mode assert.
2026-04-09 23:15:02 +02:00
Jonas Jenwald
94f8934d05
Move some TrueType header comments to the correct lines
...
This is most likely fallout from the introduction of Prettier.
2026-04-09 22:55:38 +02:00
Jonas Jenwald
8f56ee2ae9
Use a TypedArray when building the "hmtx" font table
...
In this case it's trivial to compute the size of the data upfront, hence we can use a TypedArray which should be more efficient than a string.
2026-04-09 18:58:58 +02:00
calixteman
9efd9fa2c7
Merge pull request #21071 from Snuffleupagus/BBOX_INIT
...
Add constants for defining the initial BBox and Float32 BBox
2026-04-09 14:51:56 +02:00
Calixte Denizet
3d544294af
Take into account the alignment when printing/saving a comb field
...
It fixes #21068 .
2026-04-09 13:48:20 +02:00
Jonas Jenwald
2d8b25cd6d
Update the position when calling ChunkedStream.prototype.getBytes without a length
...
Currently the code only updates the position when the length is defined, and it seems that this has "always" been wrong. Originally I believe that the `ChunkedStream` class was essentially a copy of the `Stream` class, and that implementation had the same problem until PR 20593.
Hopefully there's no code that relies on the current incorrect behaviour[1], since testing every aspect of the `ChunkedStream` implementation can be tricky given that these things are timing dependant.
---
[1] If there are, fixing those call-sites may be as easy calling `ChunkedStream.prototype.reset`.
2026-04-09 12:15:19 +02:00
Jonas Jenwald
0fd556f435
Take full advantage of the lookupRect helper in the FunctionBasedShading constructor
2026-04-08 20:30:20 +02:00
Jonas Jenwald
654985c621
Add constants for defining the initial BBox and Float32 BBox
...
Nowadays there's a lot of places in the code-base where we need to initialize or reset bounding boxes. Rather than spelling this out repeatedly, this patch adds new `Array`/`Float32Array` constants that can be copied or used as-is where appropriate.
2026-04-08 20:30:20 +02:00
Jonas Jenwald
a67b952118
Merge pull request #21062 from Snuffleupagus/compileIndex-TypedArray
...
Reduce allocations in `CFFCompiler.prototype.compileIndex` (PR 21053 follow-up)
2026-04-07 21:47:39 +02:00
Calixte Denizet
00ea8db6bf
Avoid as much as possible to have intermediate canvases
...
We try to detect in the worker if some patterns or groups need to be drawn or not in isolation.
When they don't, we just draw them on the main canvas instead of drawing on a new canvas.
A pattern or a group is considered as being in isolation if it has some compositing rules or some transparency.
It improves the rendering performance of the pdf in bug 1731514.
2026-04-07 21:03:43 +02:00
Tim van der Meij
1f2e4adfc5
Merge pull request #21050 from Snuffleupagus/Ascii85Stream-fill
...
Replace a couple of loops with `TypedArray.prototype.fill()` in the `src/core/ascii_85_stream.js` file
2026-04-07 20:38:27 +02:00
Jonas Jenwald
7b1b1a9153
Reduce allocations in CFFCompiler.prototype.compileIndex (PR 21053 follow-up)
...
It's possible to compute the final index-data size upfront, thus avoiding a bunch of intermediate allocations during index compilation.
This also means that a TypedArray can be used, rather than a plain Array, making it more efficient to insert the `objects` data.
This helps PDFs with large and complex CFF fonts the most, for example the PDFs in https://bugs.ghostscript.com/show_bug.cgi?id=706451 render ~40 percent faster (based on quick measurements in the viewer with `#pdfBug=Stats`).
2026-04-07 18:38:10 +02:00