sin-ack
3f3f45580a
Everywhere: Add sv suffix to strings relying on StringView(char const*)
...
Each of these strings would previously rely on StringView's char const*
constructor overload, which would call __builtin_strlen on the string.
Since we now have operator ""sv, we can replace these with much simpler
versions. This opens the door to being able to remove
StringView(char const*).
No functional changes.
2022-07-12 23:11:35 +02:00
Matthew Olsson
3ecb41b7d9
PDFViewer: Support a continuous page view mode
2022-04-04 14:59:37 +02:00
Matthew Olsson
468ceb1b48
LibPDF: Rename Command to Operator
...
This is the correct name, according to the spec
2022-03-31 18:10:45 +02:00
Matthew Olsson
058cf5f7f7
LibPDF: Accept font size in PDFFont::get_char_width
...
This will be required for TTF fonts
2022-03-31 18:10:45 +02:00
Matthew Olsson
5f9d35909d
LibPDF: Move font files into their own directory
2022-03-31 18:10:45 +02:00
Matthew Olsson
d2771eafc5
LibPDF: Use Font /Widths array to derive character widths
...
This makes the spacing between chars _much_ better!
2022-03-31 18:10:45 +02:00
Matthew Olsson
130846f337
LibPDF: Use AntiAliasingPainter in Renderer when possible
2022-03-31 18:10:45 +02:00
Matthew Olsson
8224ca6150
LibPDF: Fix more bad Renderer text positioning calculations
2022-03-31 18:10:45 +02:00
Matthew Olsson
34efc668d2
LibPDF: Handle SCN and scn operators
2022-03-31 18:10:45 +02:00
Matthew Olsson
1238e65d30
LibPDF: Move color space creation from Renderer to ColorSpace
2022-03-31 18:10:45 +02:00
Matthew Olsson
60c3e786be
LibPDF: Require Document* in Parser constructor
...
This makes it a bit easier to avoid calling parser->set_document, an
issue which cost me ~30 minutes to find.
2022-03-29 02:52:57 +02:00
Matthew Olsson
9a4a3318a9
LibPDF: Store a PDFFont in the Renderer's text state
2022-03-29 02:52:57 +02:00
Matthew Olsson
4d509ff365
LibPDF: Fix "incorrect" matrix multiplication in Renderer
...
Incorrect is in quotes because the spec (both 1.7 and 2.0) specify this
multiplication as it was originally! However, flipping the order of
operations here makes the text in all of my test cases render in the
correct position.
The CTM is a transformation matrix between the text coordinate system
and the device coordinate system. However, being on the right-side of
the multiplication means that the CTM scale parameters don't have any
influence on the translation component of the left-side matrix. This
oddity is what originally led to me just trying this change to see if
it worked.
2022-03-07 10:53:57 +01:00
Matthew Olsson
6f1cfcf217
LibPDF: Implement marked renderer operations as nops
2022-03-07 10:53:57 +01:00
Matthew Olsson
b240d23a87
LibPDF: Propagate errors in Renderer/PDFViewer
2022-03-07 10:53:57 +01:00
Matthew Olsson
d82bd885ce
LibPDF: Propagate ColorSpace errors
2022-03-07 10:53:57 +01:00
Matthew Olsson
73cf8205b4
LibPDF: Propagate errors in Parser and Document
2022-03-07 10:53:57 +01:00
Ben Wiederhake
f84a7e2e22
LibPDF: Replace Value class by AK::Variant
...
This decreases the memory consumption by LibPDF by 4 bytes per Value,
compensating exactly for the increase in an earlier commit. :^)
2021-09-20 17:39:36 +04:30
Matthew Olsson
612b183703
LibPDF: Convert to east-const to comply with the recent style changes
2021-06-12 22:45:01 +04:30
Matthew Olsson
0a4d8ef98d
LibPDF: Bake the flipped y-axis directly into the CTM matrix
2021-06-12 22:45:01 +04:30
Matthew Olsson
449ef14895
LibPDF: Avoid calculating rendering matrix for every glyph
2021-06-12 22:45:01 +04:30
Matthew Olsson
c142dadbe8
LibPDF: Handle the TJ graphical operator
2021-06-12 22:45:01 +04:30
Matthew Olsson
47531619e3
LibPDF: Handle the gs graphical operator
2021-06-12 22:45:01 +04:30
Matthew Olsson
006f5498de
LibPDF: Add support for the CalRGB ColorSpace
...
This isn't tested all that well, as the PDF I am testing with only uses
it for black (which is trivial). It can be tested further when LibPDF
is able to process more complex PDFs that actually use this color space
non-trivially.
2021-06-12 22:45:01 +04:30
Matthew Olsson
7b4e36bf88
LibPDF: Split ColorSpace into a different class for each color space
...
While unnecessary at the moment, this will allow for more fine-grained
control when complex color spaces get added.
2021-06-12 22:45:01 +04:30
Matthew Olsson
cafd7c11b4
LibPDF: Account for inverted y axis when rendering text
2021-06-12 22:45:01 +04:30
Andreas Kling
12a42edd13
Everywhere: codepoint => code point
2021-06-01 10:01:11 +02:00
Matthew Olsson
78f3bad7e6
LibPDF: Pre-initialize common FlyStrings in CommonNames.h
2021-05-25 00:24:09 +04:30
Matthew Olsson
534a2e95d2
LibPDF: Add basic color space support to the renderer
...
This commit only supports the three most basic color spaces:
DeviceGray, DeviceRGB, and DeviceCMYK
2021-05-25 00:24:09 +04:30
Matthew Olsson
f2d2f3fae7
LibPDF: Add a very poor path clipping implementation
...
This completely ignores the actual path and just uses its bounding box,
since our painter doesn't support clipping to paths.
2021-05-25 00:24:09 +04:30
Matthew Olsson
bf96ad674c
LibPDF: Implement stubs for all graphical commands
2021-05-25 00:24:09 +04:30
Matthew Olsson
4479c1bff0
LibPDF: Add a bitmap renderer
...
This commit adds the Renderer class, which is responsible for rendering
a page into a Gfx::Bitmap. There are many improvements to make here,
but this is a great start!
2021-05-18 16:35:23 +02:00