"Fix" trimctm
I don't have any idea what's going on here. Details: mupdf 834243dbfc8ab3e9269b7a789d61e3fe0f8e71f7 - good e2a85460370a3110b89fb838bc924c73f87f5b3c - bad Most things work with either of those, except for: http://www.gly.uga.edu/railsback/11111misc/SizeofThings36.pdf
This commit is contained in:
parent
029aba29f3
commit
3d484220ec
30
link.c
30
link.c
|
@ -645,24 +645,20 @@ static void trimctm (pdf_page *page, int pindex)
|
|||
struct pagedim *pdim = &state.pagedims[pindex];
|
||||
|
||||
if (!pdim->tctmready) {
|
||||
if (state.trimmargins) {
|
||||
fz_rect realbox, mediabox;
|
||||
fz_matrix rm, sm, tm, im, ctm1, page_ctm;
|
||||
fz_rect realbox, mediabox;
|
||||
fz_matrix rm, sm, tm, im, ctm1, page_ctm;
|
||||
|
||||
fz_rotate (&rm, -pdim->rotate);
|
||||
fz_scale (&sm, 1, -1);
|
||||
fz_concat (&ctm, &rm, &sm);
|
||||
realbox = pdim->mediabox;
|
||||
fz_transform_rect (&realbox, &ctm);
|
||||
fz_translate (&tm, -realbox.x0, -realbox.y0);
|
||||
fz_concat (&ctm1, &ctm, &tm);
|
||||
pdf_page_transform (state.ctx, page, &mediabox, &page_ctm);
|
||||
fz_invert_matrix (&im, &page_ctm);
|
||||
fz_concat (&ctm, &im, &ctm1);
|
||||
|
||||
fz_rotate (&rm, -pdim->rotate);
|
||||
fz_scale (&sm, 1, -1);
|
||||
fz_concat (&ctm, &rm, &sm);
|
||||
realbox = pdim->mediabox;
|
||||
fz_transform_rect (&realbox, &ctm);
|
||||
fz_translate (&tm, -realbox.x0, -realbox.y0);
|
||||
fz_concat (&ctm1, &ctm, &tm);
|
||||
pdf_page_transform (state.ctx, page, &mediabox, &page_ctm);
|
||||
fz_invert_matrix (&im, &page_ctm);
|
||||
fz_concat (&ctm, &im, &ctm1);
|
||||
}
|
||||
else {
|
||||
ctm = fz_identity;
|
||||
}
|
||||
pdim->tctm = ctm;
|
||||
pdim->tctmready = 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue