summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2 daysUpdate (C)HEADmasterAlbert Astals Cid2-2/+2
3 dayssigning: Fix modifying the AcroForm dict when it's embedded in the CatalogAlbert Astals Cid2-0/+3
3 daysUpdate nss to the actual release version of Ubuntu 22.04Albert Astals Cid2-2/+2
3 daysIncrease android-qt imagesAlbert Astals Cid2-9/+9
Allows us increasing the min freetype
3 daysIncrease Minimum supported base to that provided by Ubuntu 22.04Albert Astals Cid5-22/+13
3 daysFix crash in broken filesAlbert Astals Cid3-3/+31
oss-fuzz/57874
3 daysFix crash in TextStringToUtf8Albert Astals Cid1-3/+4
utf16ToUtf8 expects a null ended string
4 daysAdd Missing headers to fix compile problemsÖmer Fadıl USTA1-0/+2
4 daysUpdate (C)Albert Astals Cid16-16/+18
4 daysAsync api for certificate validationSune Vuorela19-134/+477
5 daysIncrease versionAlbert Astals Cid1-1/+1
This way people building from master can adapt to the new API already
5 daysRemove redundant conditionalOliver Sander1-2/+2
The condition u[i] < 0x7F was checked twice.
5 daysUpdate (C)Albert Astals Cid3-2/+3
5 dayscpp: Fix crash extracting text and font in some filesAlbert Astals Cid1-1/+1
Issue reported and patch suggestion by Samad Koita and Aviral Agarwal Fixes issue #1477
5 daysFix build after rebaseAlbert Astals Cid1-1/+1
5 dayspdftops: Write compliant ps headerSune Vuorela1-3/+13
According to the postscript spec, only DSC Comments are allowed in the header. %%Creator is the header for the software used to generate the postscript file, which is pdftops in this case, and not as such the generator for the pdf file. I've chosen to, if available, keep the pdf creator as a substring in the %%Creator field. Originates in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068307
5 daysAdd tests for fakebold textStefan Brüns2-0/+122
5 daysMove move prependUnicodeMarker to UTF.hOliver Sander6-17/+16
... and rename it to prependUnicodeByteOrderMark. Now all unicode code has moved from GooString.h to UTF.h.
5 daysMove method GooString::hasUnicodeMarkerLE to UTF.hOliver Sander7-9/+15
... and rename it to hasUnicodeByteOrderMarkLE. This allows to replace GooString by std::string in a few places. (In a future commit)
5 daysMove method GooString::hasUnicodeMarker to UTF.hOliver Sander18-48/+64
... and rename it to hasUnicodeByteOrderMark. This allows to replace GooString by std::string in a few places. (In a future commit)
2024-04-10Update (C)Albert Astals Cid5-2/+5
2024-04-08Fix text position in drawSignatureFieldTextNicolas Fella1-1/+1
When centering vertically we calculate the y offset based on the height of the text and the annotation When doing that we must ignore the border width, otherwise the text is offset downwards
2024-04-08Take border into account also for height when determining signature font sizeNicolas Fella1-2/+3
The border reduces the available height, so take it into account for the height too, not only the width
2024-04-07Fix Qt text extraction for Landscape/Seascape pagesStefan Brüns4-4/+10
TextOutputDev::getText expects rotated coordinates, e.g. the correct bounds for an A4 Landscape page are {0, 0, 842, 595}.
2024-04-07Cover Landscape etc in Qt Page::text testsStefan Brüns2-0/+100
Currently, the "Lanscape" with default page rectangle test fails, as the page orientation is not taken into account. (Seascape is also incorrect, but as the text lies inside the unrotated A4 cropbox rectangle (bottom left), the text is extracted.)
2024-04-07Extend unit tests for Qt Page::text functionalityStefan Brüns2-10/+60
The unit tests only covered extraction from the whole page, make sure the various cases for smaller selections are also covered.
2024-04-06Assume "Adobe-Identity" for character collectionNelson Benítez León1-9/+13
When 'CIDSystemInfo' dictionary is absent or has invalid content, instead of aborting the font because we cannot read the character collection, let's assume in that case character collection to be "Adobe-Identity". Fixes #1465 - Does not show text of Apple-edited PDFs
2024-04-05Update (C)Albert Astals Cid5-5/+5
2024-04-04Remove method GooString::clearOliver Sander1-5/+1
Use std::string::clear instead. The only difference between the two is that GooString::clear returns the empty string, whereas std::string::clear does not. But apparently this feature of GooString::clear was not used anywhere.
2024-04-04Remove GooString::startsWith and GooString::endsWithOliver Sander5-21/+9
Starting with C++20, the std::string class has methods starts_with and ends_with, which do the same thing. Use those instead.
2024-04-03Update (C)Albert Astals Cid1-0/+1
2024-04-03pdfdetach: find -> starts_withAlbert Astals Cid1-2/+2
2024-04-03Change type to `std::basic_string<char16_t>`LinuxUserGD1-1/+1
Deprecated `char_traits` template has been removed in LLVM 19
2024-04-01Regenerate pot/po files only if input has changedStefan Brüns1-3/+5
A custom target with ALL is always generated, even if the files/outputs specified with DPENDS are not changed. This can be solved by generating the POT files with a custom_command. The target triggers evaluation of the custom_command, but the latter will only be run if the dependencies have changed. Fixes #1479
2024-04-01poppler 24.04.0poppler-24.04.0Albert Astals Cid5-5/+21
2024-03-31reset clipping path when the state is restoredNelson Benítez León1-0/+1
According to the specification, see NOTE 2 in https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf#G7.3882161 it appears that the clipping path should be reset when the restore (Q) operator is encountered. Fixes #739
2024-03-31CI: Update the hack to change c++ standard to 23 in the clang buildAlbert Astals Cid1-1/+1
2024-03-31Require C++20Albert Astals Cid1-1/+1
I want to use std::string::starts_with
2024-03-31CI: Use Fedora for clazy, it's newer and built against a newer clangAlbert Astals Cid3-6/+10
2024-03-31qt: Include less filesAlbert Astals Cid56-56/+58
2024-03-31CI: Use fedora 40Albert Astals Cid1-2/+2
2024-03-31Update (C)Albert Astals Cid2-1/+3
2024-03-30Reduce worst case algorithmic complexity of TextBlock::coalesceStefan Brüns1-49/+60
The old algorithm restarts the inner loop for the RHS word from the beginning on each match, i.e. the worst case complexity approaches O(N^3), while O(N^2) is obviously sufficient for a pairwise compare of all words. Fortunately, O(N^2) is hardly ever happening, as the inner N is limited by a) the maxBaseIdx, b) removing duplicates from the set. For some pathological cases this changes the runtime from minutes to seconds. See poppler#1173.
2024-03-30Reduce TextWord space and allocation overheadStefan Brüns2-223/+197
Currently, the word characters are allocated as a struct of arrays, e.g. text and charcode are allocated separately. This causes some space (6 pointers, 6 malloc chunk management words (size_t/flags), alignment, ...) and runtime overhead (6 allocs/ frees per word). Changing this to an array of struct reduces this overhead. It also allows to be more conservative with allocations, as resizing is less costly, i.e. starting with a single character allocation instead of 16. It is also more efficient, as most accesses affect multiple or all attributes, i.e. values in the same or neighboring CPU cache lines. Using a std::vector instead of separate raw arrays also reduces code and manual data management. The "charPos end index" and trailing "edge" attributes are no longer stored as an additional entry entry in the array, but as dedicated data members, `charPosEnd` and `edgeEnd`. The memory saving is most notably for short words, but even for words with 16 characters there are small savings, and still less allocations (1 + 4 allocations instead of 6. Growing is fairly cheap, as the CharInfo struct is trivially copyable.) See poppler#1173.
2024-03-30Fix clang-tidy-17 "unnecessary temporary object created while calling ↵Albert Astals Cid1-2/+2
emplace_back" Says modernize-use-emplace No need to pass the c, we will set it later so we can just use the default constructed CharCodeToUnicodeString
2024-03-30Fix text search across lines between paragraphsNelson Benítez León3-24/+50
This commit fixes the "across lines" text search feature of TextPage::findText() when the match happens from the last line of a paragraph to the first line of next paragraph. Includes tests for this bug. Fixes #1475 Fixes https://gitlab.gnome.org/GNOME/evince/-/issues/2001
2024-03-30Fix regression on issue #157Nelson Benítez León1-12/+14
Redo the fix for issue #157 which is about doing transparent selection for glyphless documents (eg. tesseract scanned documents) because it stopped working after commit 29f32a47
2024-03-28Update (C)Albert Astals Cid1-1/+1
2024-03-27qt6: Fix crash in SoundObject::dataAlbert Astals Cid1-1/+1
2024-03-05Revert "CI: Switch debian to testing"Albert Astals Cid1-2/+2
This reverts commit 9c2cf5608a21b6fb9be4e0c7918d13cd2b652c23.