parent
1421b2f205
commit
6fab0a0dac
@ -96,6 +96,12 @@ Shadings.RadialAxial = (function RadialAxialClosure() {
|
|||||||
var cs = dict.get('ColorSpace', 'CS');
|
var cs = dict.get('ColorSpace', 'CS');
|
||||||
cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
|
cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
|
||||||
this.cs = cs;
|
this.cs = cs;
|
||||||
|
const bbox = dict.getArray('BBox');
|
||||||
|
if (Array.isArray(bbox) && bbox.length === 4) {
|
||||||
|
this.bbox = Util.normalizeRect(bbox);
|
||||||
|
} else {
|
||||||
|
this.bbox = null;
|
||||||
|
}
|
||||||
|
|
||||||
var t0 = 0.0, t1 = 1.0;
|
var t0 = 0.0, t1 = 1.0;
|
||||||
if (dict.has('Domain')) {
|
if (dict.has('Domain')) {
|
||||||
@ -213,7 +219,7 @@ Shadings.RadialAxial = (function RadialAxialClosure() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];
|
return ['RadialAxial', type, this.bbox, this.colorStops, p0, p1, r0, r1];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -719,7 +725,12 @@ Shadings.Mesh = (function MeshClosure() {
|
|||||||
this.matrix = matrix;
|
this.matrix = matrix;
|
||||||
this.shadingType = dict.get('ShadingType');
|
this.shadingType = dict.get('ShadingType');
|
||||||
this.type = 'Pattern';
|
this.type = 'Pattern';
|
||||||
this.bbox = dict.getArray('BBox');
|
const bbox = dict.getArray('BBox');
|
||||||
|
if (Array.isArray(bbox) && bbox.length === 4) {
|
||||||
|
this.bbox = Util.normalizeRect(bbox);
|
||||||
|
} else {
|
||||||
|
this.bbox = null;
|
||||||
|
}
|
||||||
var cs = dict.get('ColorSpace', 'CS');
|
var cs = dict.get('ColorSpace', 'CS');
|
||||||
cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
|
cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
|
||||||
this.cs = cs;
|
this.cs = cs;
|
||||||
|
@ -17,17 +17,30 @@ import { FormatError, info, Util } from '../shared/util';
|
|||||||
|
|
||||||
var ShadingIRs = {};
|
var ShadingIRs = {};
|
||||||
|
|
||||||
|
function applyBoundingBox(ctx, bbox) {
|
||||||
|
if (!bbox || typeof Path2D === 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const width = bbox[2] - bbox[0];
|
||||||
|
const height = bbox[3] - bbox[1];
|
||||||
|
const region = new Path2D();
|
||||||
|
region.rect(bbox[0], bbox[1], width, height);
|
||||||
|
ctx.clip(region);
|
||||||
|
}
|
||||||
|
|
||||||
ShadingIRs.RadialAxial = {
|
ShadingIRs.RadialAxial = {
|
||||||
fromIR: function RadialAxial_fromIR(raw) {
|
fromIR: function RadialAxial_fromIR(raw) {
|
||||||
var type = raw[1];
|
var type = raw[1];
|
||||||
var colorStops = raw[2];
|
var bbox = raw[2];
|
||||||
var p0 = raw[3];
|
var colorStops = raw[3];
|
||||||
var p1 = raw[4];
|
var p0 = raw[4];
|
||||||
var r0 = raw[5];
|
var p1 = raw[5];
|
||||||
var r1 = raw[6];
|
var r0 = raw[6];
|
||||||
|
var r1 = raw[7];
|
||||||
return {
|
return {
|
||||||
type: 'Pattern',
|
type: 'Pattern',
|
||||||
getPattern: function RadialAxial_getPattern(ctx) {
|
getPattern: function RadialAxial_getPattern(ctx) {
|
||||||
|
applyBoundingBox(ctx, bbox);
|
||||||
var grad;
|
var grad;
|
||||||
if (type === 'axial') {
|
if (type === 'axial') {
|
||||||
grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
|
grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
|
||||||
@ -233,11 +246,12 @@ ShadingIRs.Mesh = {
|
|||||||
var figures = raw[4];
|
var figures = raw[4];
|
||||||
var bounds = raw[5];
|
var bounds = raw[5];
|
||||||
var matrix = raw[6];
|
var matrix = raw[6];
|
||||||
// var bbox = raw[7];
|
var bbox = raw[7];
|
||||||
var background = raw[8];
|
var background = raw[8];
|
||||||
return {
|
return {
|
||||||
type: 'Pattern',
|
type: 'Pattern',
|
||||||
getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
|
getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
|
||||||
|
applyBoundingBox(ctx, bbox);
|
||||||
var scale;
|
var scale;
|
||||||
if (shadingFill) {
|
if (shadingFill) {
|
||||||
scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
|
scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -14,6 +14,7 @@
|
|||||||
!issue3214.pdf
|
!issue3214.pdf
|
||||||
!issue4665.pdf
|
!issue4665.pdf
|
||||||
!issue4684.pdf
|
!issue4684.pdf
|
||||||
|
!issue8092.pdf
|
||||||
!issue5256.pdf
|
!issue5256.pdf
|
||||||
!issue5801.pdf
|
!issue5801.pdf
|
||||||
!issue5946.pdf
|
!issue5946.pdf
|
||||||
|
151
test/pdfs/issue8092.pdf
Normal file
151
test/pdfs/issue8092.pdf
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
%PDF-1.5
|
||||||
|
%Çì<C387>¢
|
||||||
|
5 0 obj
|
||||||
|
<</Length 6 0 R/Filter /FlateDecode>>
|
||||||
|
stream
|
||||||
|
xœUÌË‚0Ðý|Å]ê°@,Å q)ôHyÕ`ËËÈçÛÆ•¹ÉÌd&gf0œl~U¾((ô«m)ä”V©ÉÝxÆ‘Æ!––:»èi¦Š\XÆB°¢#E~ÈÁcˆ†ç]Õ#ª¡n”î¡4Ê[Ž‹Í‚jªe{Oò¢ÄOÒŒÁs,ú¨m@±OF·zsþ®·v™ÌXoÊh\ßZºÁÙBÐÃæ,²6åendstream
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
166
|
||||||
|
endobj
|
||||||
|
4 0 obj
|
||||||
|
<</Type/Page/MediaBox [0 0 595 842]
|
||||||
|
/Rotate 0/Parent 3 0 R
|
||||||
|
/Resources<</ProcSet[/PDF /Text]
|
||||||
|
/ColorSpace 13 0 R
|
||||||
|
/ExtGState 14 0 R
|
||||||
|
/Pattern 15 0 R
|
||||||
|
/Shading 16 0 R
|
||||||
|
/Font 17 0 R
|
||||||
|
>>
|
||||||
|
/Contents 5 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<< /Type /Pages /Kids [
|
||||||
|
4 0 R
|
||||||
|
] /Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<</Type /Catalog /Pages 3 0 R
|
||||||
|
/Metadata 18 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<</Type/ExtGState
|
||||||
|
/OPM 1>>endobj
|
||||||
|
8 0 obj
|
||||||
|
[/Pattern]
|
||||||
|
endobj
|
||||||
|
13 0 obj
|
||||||
|
<</R8
|
||||||
|
8 0 R>>
|
||||||
|
endobj
|
||||||
|
14 0 obj
|
||||||
|
<</R7
|
||||||
|
7 0 R>>
|
||||||
|
endobj
|
||||||
|
15 0 obj
|
||||||
|
<</R9
|
||||||
|
9 0 R>>
|
||||||
|
endobj
|
||||||
|
9 0 obj
|
||||||
|
<</PatternType 2
|
||||||
|
/Shading 10 0 R
|
||||||
|
/Matrix[1
|
||||||
|
0
|
||||||
|
0
|
||||||
|
1
|
||||||
|
0
|
||||||
|
0]>>endobj
|
||||||
|
16 0 obj
|
||||||
|
<</R10
|
||||||
|
10 0 R>>
|
||||||
|
endobj
|
||||||
|
10 0 obj
|
||||||
|
<</ShadingType 2
|
||||||
|
/ColorSpace/DeviceRGB
|
||||||
|
/BBox[72
|
||||||
|
72
|
||||||
|
540
|
||||||
|
720]
|
||||||
|
/Coords[216
|
||||||
|
216
|
||||||
|
396
|
||||||
|
576]
|
||||||
|
/Function 11 0 R
|
||||||
|
/Extend [true false]>>endobj
|
||||||
|
17 0 obj
|
||||||
|
<</R12
|
||||||
|
12 0 R>>
|
||||||
|
endobj
|
||||||
|
11 0 obj
|
||||||
|
<</FunctionType 2
|
||||||
|
/Domain[0
|
||||||
|
1]
|
||||||
|
/C0[1
|
||||||
|
0
|
||||||
|
1]
|
||||||
|
/C1[0
|
||||||
|
1
|
||||||
|
1]
|
||||||
|
/N 1>>endobj
|
||||||
|
12 0 obj
|
||||||
|
<</BaseFont/Courier-Bold/Type/Font
|
||||||
|
/Subtype/Type1>>
|
||||||
|
endobj
|
||||||
|
18 0 obj
|
||||||
|
<</Type/Metadata
|
||||||
|
/Subtype/XML/Length 1371>>stream
|
||||||
|
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
|
||||||
|
<?adobe-xap-filters esc="CRLF"?>
|
||||||
|
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
|
||||||
|
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
|
||||||
|
<rdf:Description rdf:about='uuid:5f8db3e5-1ae5-11e4-0000-a95b86321679' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
|
||||||
|
<rdf:Description rdf:about='uuid:5f8db3e5-1ae5-11e4-0000-a95b86321679' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-07-31T04:08:37-04:00</xmp:ModifyDate>
|
||||||
|
<xmp:CreateDate>2014-07-31T04:08:37-04:00</xmp:CreateDate>
|
||||||
|
<xmp:CreatorTool>Henry McGilton for Adobe Systems Incorporated</xmp:CreatorTool></rdf:Description>
|
||||||
|
<rdf:Description rdf:about='uuid:5f8db3e5-1ae5-11e4-0000-a95b86321679' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:5f8db3e5-1ae5-11e4-0000-a95b86321679'/>
|
||||||
|
<rdf:Description rdf:about='uuid:5f8db3e5-1ae5-11e4-0000-a95b86321679' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Ash02.ps</rdf:li></rdf:Alt></dc:title></rdf:Description>
|
||||||
|
</rdf:RDF>
|
||||||
|
</x:xmpmeta>
|
||||||
|
|
||||||
|
|
||||||
|
<?xpacket end='w'?>
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<</Producer(GPL Ghostscript 9.06)
|
||||||
|
/CreationDate(D:20140731040837-04'00')
|
||||||
|
/ModDate(D:20140731040837-04'00')
|
||||||
|
/Title(Ash02.ps)
|
||||||
|
/Creator(Henry McGilton for Adobe Systems Incorporated)>>endobj
|
||||||
|
xref
|
||||||
|
0 19
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000540 00000 n
|
||||||
|
0000002627 00000 n
|
||||||
|
0000000481 00000 n
|
||||||
|
0000000270 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000251 00000 n
|
||||||
|
0000000605 00000 n
|
||||||
|
0000000646 00000 n
|
||||||
|
0000000762 00000 n
|
||||||
|
0000000864 00000 n
|
||||||
|
0000001036 00000 n
|
||||||
|
0000001111 00000 n
|
||||||
|
0000000672 00000 n
|
||||||
|
0000000702 00000 n
|
||||||
|
0000000732 00000 n
|
||||||
|
0000000832 00000 n
|
||||||
|
0000001004 00000 n
|
||||||
|
0000001179 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 19 /Root 1 0 R /Info 2 0 R
|
||||||
|
/ID [<DBD6B1FC3282E2424AD4E053FFD653D0><DBD6B1FC3282E2424AD4E053FFD653D0>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
2823
|
||||||
|
%%EOF
|
@ -654,6 +654,12 @@
|
|||||||
"type": "eq",
|
"type": "eq",
|
||||||
"about": "Type1 font with |Ref|s in the Differences array of the Encoding dictionary."
|
"about": "Type1 font with |Ref|s in the Differences array of the Encoding dictionary."
|
||||||
},
|
},
|
||||||
|
{ "id": "issue8092",
|
||||||
|
"file": "pdfs/issue8092.pdf",
|
||||||
|
"md5": "e4f3376b35fd132580246c3db1fbd738",
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "eq"
|
||||||
|
},
|
||||||
{ "id": "franz_2",
|
{ "id": "franz_2",
|
||||||
"file": "pdfs/franz_2.pdf",
|
"file": "pdfs/franz_2.pdf",
|
||||||
"md5": "9d301ed8816e879891115b5cc3c39559",
|
"md5": "9d301ed8816e879891115b5cc3c39559",
|
||||||
|
Loading…
Reference in New Issue
Block a user