Commit Graph

646 Commits

Author SHA1 Message Date
Yury Delendik
ff3ce973b8 Merge pull request #7106 from Snuffleupagus/issue-7101
Keep track of the character to glyph mapping in font_renderer.js, to prevent errors when different characters point to the same glyph (issue 7101)
2016-04-01 08:09:21 -05:00
Jonas Jenwald
05cf709f8e Parse Type1 font files to determine the various Length{n} properties, instead of trusting the PDF file (issue 5686, issue 3928)
Fixes 5686.
Fixes 3928.
2016-03-31 11:08:12 +02:00
Jonas Jenwald
17aaa125df Keep track of the character to glyph mapping in font_renderer.js, to prevent errors when different characters point to the same glyph (issue 7101)
Fixes 7101.
2016-03-30 11:33:04 +02:00
Jonas Jenwald
ac772017b6 Add unit-tests for destionations in /Names (NameTree) dictionaries where all entries are indirect objects
Re: issue 6204 and PR 6208.
2016-03-29 17:55:05 +02:00
Jonas Jenwald
13d7a5070e Prevent failures in the Annotation code if the Rect array contains indirect objects (issue 7115)
Note that in the PDF files provided by the reporter, this issue was limited to `Rect` arrays in AcroForm entries (which we currently don't support).
However, since a bad PDF generator could create this problem in *any* kind of annotation, the reduced test-case included here uses a simple LinkAnnotation instead.

Fixes 7115.
2016-03-26 20:55:16 +01:00
Jonas Jenwald
dfe9015a43 Convert uniXXXX glyph names to proper ones when building the charCodeToGlyphId map for TrueType fonts (bug 1132849, issue 6893, issue 6894)
This patch adds a `getUnicodeForGlyph` helper function, which is used to recover Unicode values for non-standard glyph names.

Some PDF generators, e.g. Scribus PDF, use improper `uniXXXX` glyph names which breaks the glyph mapping. We can avoid this by converting them to "standard" glyph names instead.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1132849.
Fixes 6893.
Fixes 6894.
2016-03-09 19:37:15 +01:00
Preetham Mysore
be1e12dbcb Fix for descent calculation while reading font hhea headers 2016-03-03 08:51:41 -05:00
Jonas Jenwald
8402c79171 Merge pull request #7050 from brendandahl/issue4402
For CIDFontType2 use CID as glyph ID when missing CID to GID map.
2016-03-02 10:11:42 +01:00
Brendan Dahl
a6acf74b54 Merge pull request #7023 from brendandahl/issue6721
Only draw glyphs on canvas if they are in the font or the font file is missing.
2016-03-01 18:03:37 -08:00
Brendan Dahl
6e1d131384 For CIDFontType2 use CID as glyph ID when missing CID to GID map. 2016-03-01 17:05:33 -08:00
Brendan Dahl
ff87f3fb86 Only draw glyphs on canvas if they are in the font or the font file is missing. 2016-03-01 13:24:58 -08:00
Jonas Jenwald
505f15f221 Avoid accidentally getting the entire font file in readNameTable (issue 7020)
In the PDF file in question, some of the 'name' table entries have `record.length === 0`. This becomes problematic in the non-unicode case, since `font.getBytes(0)` will fetch the *entire* stream.
Given that OTS rejects 'name' entries larger than `2^16`, this thus explain the sanitizer errors.

Fixes 7020.
2016-03-01 21:59:49 +01:00
Tim van der Meij
ad31e52a26 Group popup creation code and apply it to more annotation types 2016-02-25 00:35:45 +01:00
Jonas Jenwald
41efb92d3a Merge pull request #6988 from timvandermeij/fileattachment-annotation
Implement support for FileAttachment annotations
2016-02-24 12:58:06 +01:00
Tim van der Meij
10902fd882 Implement unit and reference testing for FileAttachment annotations 2016-02-23 22:49:53 +01:00
Jonas Jenwald
a494e33776 Update JpegImage.getData to support forceRGBoutput for images with numComponents === 1 (issue 6066)
*A more robust solution for issue 6066.*

As a temporary work-around for (the upstream) [bug 1164199](https://bugzilla.mozilla.org/show_bug.cgi?id=1164199), we parsed *all* images in the Firefox addon during a short time.
Doing so uncovered an issue with our image handling (see 6066), for JPEG images with a `DeviceGray` ColorSpace *and* `bpc !== 1` (bits per component).

As long as we let the browser handle image decoding in this case, this isn't going to be an issue, but I do think that we should proactively fix this to avoid future issues if we change where the images are decoded (in `jpg.js` vs in browser).
Also, we currently don't seem to have a test-case for that kind of image data.
2016-02-18 10:12:37 +01:00
Jonas Jenwald
62b17ad36e Add a linked load test for issue 6549 2016-02-12 18:10:07 +01:00
Jonas Jenwald
07e1ad40a2 Replace getAll with getKeys in PartialEvaluator_hasBlendModes to speed up loading of badly generated PDF files (issue 6961)
Some bad PDF generators, in particular "Scribus PDF", duplicates resources *a lot* at various levels of the PDF files. This can lead to `PartialEvaluator_hasBlendModes` taking an unreasonable amount of time to complete.
The reason is that the current code is using `Dict_getAll`, which recursively dereferences *all* indirect objects, which can be really slow. This patch instead uses `Dict_getKeys`, and then manually looks up only the necessary indirect objects.

I've added the PDF file as a `load` test. The most important thing here is probably to ensure that the file remains available in the repo, and the comment should help reduced the chance of regressions. (Note that locally, the `load` test times out without this patch, but we cannot really assume that that always happens.)

Fixes 6961.
2016-02-10 17:21:38 +01:00
Jonas Jenwald
15ce96a6eb Prevent failures in the "scanning for endstream" code, in Parser_makeStream, by handling the case where 'endstream' is split between contiguous chunks (issue 1536) 2016-01-26 09:03:51 +01:00
Tim van der Meij
58329f7f92 Merge pull request #6803 from Snuffleupagus/page-labels
[api-minor] Add support for PageLabels in the API
2016-01-20 22:05:48 +01:00
Yury Delendik
0aa373cdf3 Merge pull request #6891 from Snuffleupagus/issue-6889
Map missing glyphs to the `notdef` glyph for TrueType (3, 1) fonts regardless if the 'post' table is defined or not (issue 6889)
2016-01-20 13:14:47 -06:00
Jonas Jenwald
85cf90643f [api-minor] Add support for PageLabels in the API 2016-01-19 22:49:04 +01:00
Tim van der Meij
1eea0db897 Merge pull request #6822 from Snuffleupagus/urls-in-outline
[api-minor] Add support for URLs in the document outline
2016-01-19 22:21:40 +01:00
Jonas Jenwald
0030a82dc3 [api-minor] Add support for URLs in the document outline
Re: issue 5089.
(Note that since there are other outline features that we currently don't support, e.g. bold/italic text and custom colours, I thus think we can keep the referenced issue open.)
2016-01-19 21:36:27 +01:00
Jonas Jenwald
d9e21a3523 Merge pull request #6895 from timvandermeij/issue-6854-final
Update links to point to the Internet Archive for issue2799 and issue5726
2016-01-18 21:00:14 +01:00
Tim van der Meij
ec066101d8 Merge pull request #6848 from Snuffleupagus/recover-missing-glyf-table
[TrueType] Recover from a missing "glyf" table by replacing it with dummy data, utilizing the existing code in `sanitizeGlyphLocations`
2016-01-18 20:28:52 +01:00
Tim van der Meij
10a55087b5 Update links to point to the Internet Archive for issue2799 and
issue5726

We remove yo01. The file is not available, it was introduced in
3529658ac5
along with another test file (so we should not need it) and it was
replaced in
6b2c6fc223,
so it was only in the repository for a very short time.
2016-01-18 15:53:07 +01:00
Jonas Jenwald
4855d4cc9f Map missing glyphs to the notdef glyph for TrueType (3, 1) fonts regardless if the 'post' table is defined or not (issue 6889) 2016-01-17 22:58:00 +01:00
Tim van der Meij
57246c15c7 Update links to point to the Internet Archive for issue1597, issue2627 and kdchart 2016-01-17 14:36:17 +01:00
Jonas Jenwald
da75671199 Remove 'issue2537.pdf.link', since it has been replaced with a reduced test-case
In PR 4732, Yury replaced the linked test, but apparently the .link file stuck around despite not being needed anymore.

Re: PR 6854.
2016-01-17 14:04:00 +01:00
Jonas Jenwald
f80a6efce3 Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue2829, issue2853, issue2881, issue3062, issue3999 2016-01-17 13:15:42 +01:00
Jonas Jenwald
b4020047bc Replace the linked test-case for issue 1155 with a reduced one
As part of the link cleanup in issue 6854, obtaining this file through the Internet Archive didn't work.
However, given that the file was added in order to test an issue with `CropBox/MediaBox`, a reduced test-case should do just fine instead.

Please refer to issue 1155, and PR 1212.
2016-01-16 16:00:37 +01:00
Tim van der Meij
e54edd1128 Merge pull request #6883 from Snuffleupagus/issue-6854-10
Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue2129, issue2139, issue2386, issue2442, issue2531
2016-01-16 14:49:52 +01:00
Jonas Jenwald
92fa439eac Remove 'tcpdf_033.pdf.link', since it has been replaced with a reduced test-case
In PR 1556 Brendan replaced the linked test, but apparently the `.link` file stuck around despite not being needed anymore.

Re: PR 6854.
2016-01-16 12:33:11 +01:00
Jonas Jenwald
2bdffdd7b0 Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue2129, issue2139, issue2386, issue2442, issue2531 2016-01-16 12:10:48 +01:00
Jonas Jenwald
b7fe79c026 Merge pull request #6881 from timvandermeij/issue-6854-4
Update links to point to the Internet Archive for issue3384, issue3848, issue3903, issue3925 and issue5592
2016-01-16 12:02:33 +01:00
Jonas Jenwald
d52495a9c8 [TrueType] Recover from a missing "glyf" table by replacing it with dummy data, utilizing the existing code in sanitizeGlyphLocations
It seems to be fairly common for OCR software to include incomplete TrueType fonts, notable missing the "glyf" table, in PDF files. Since we currently reject such fonts, the result is that text-selection/copying is broken.

This patch contains a suggested approach to try and use these kind of broken fonts, by using existing code in `sanitizeGlyphLocations` to replace a missing "glyf" table with dummy data.

Fixes 4684.
Fixes 6007.
Fixes 6829.
2016-01-15 21:44:59 +01:00
Tim van der Meij
4155dfeb19 Update links to point to the Internet Archive for issue3384, issue3848, issue3903, issue3925 and issue5592 2016-01-15 21:44:59 +01:00
Tim van der Meij
159eb6d46c Update links to point to the Internet Archive for issue818, issue919, jai, liveprogramming and mao 2016-01-15 21:26:37 +01:00
Jonas Jenwald
223249fe2c Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1878, issue1912, issue1936, issue1998, issue2006 2016-01-15 18:22:03 +01:00
Tim van der Meij
7f821f5b78 Merge pull request #6876 from Snuffleupagus/issue-6854-8
Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1709, issue1721, issue1729, issue1796, issue1810
2016-01-15 16:38:45 +01:00
Jonas Jenwald
b03703f20c Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1709, issue1721, issue1729, issue1796, issue1810 2016-01-15 13:55:56 +01:00
Jonas Jenwald
93088ce342 Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1466, issue1629, issue1658, issue1685, issue1687 2016-01-15 13:30:24 +01:00
Tim van der Meij
5336a5363f Merge pull request #6871 from Snuffleupagus/issue-6854-6
Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1233, issue1257, issue1309, issue1317, issue1419
2016-01-15 01:04:40 +01:00
Tim van der Meij
8e58c8bc3d Merge pull request #6869 from Snuffleupagus/issue-6854-5
Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1049, issue1096, issue1127, issue1133, issue1169
2016-01-15 00:50:05 +01:00
Tim van der Meij
e6ff1a4179 Merge pull request #6866 from Snuffleupagus/issue-6854-4
Issue 6854 - Update the link locations to point to the Internet Archive for tests: html5checker, hudsonsurvey, ichiji, issue1010, issue1015
2016-01-15 00:24:06 +01:00
Jonas Jenwald
01bb6b4e98 Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1233, issue1257, issue1309, issue1317, issue1419 2016-01-14 17:24:26 +01:00
Tim van der Meij
8318c8203c Merge pull request #6311 from yurydelendik/clean_test_manifest
Cleans test manifest from absent files.
2016-01-14 17:13:16 +01:00
Jonas Jenwald
850fa35040 Issue 6854 - Update the link locations to point to the Internet Archive for tests: issue1049, issue1096, issue1127, issue1133, issue1169 2016-01-14 12:06:30 +01:00
Jonas Jenwald
ff79c56fa3 Merge pull request #6865 from timvandermeij/hmm
Update the linked test case hmm.pdf to point to the intended version
2016-01-14 11:48:32 +01:00