Skip to content

Commit 2b28209

Browse files
committed
[[ Bug 12699 ]] Fix incorrect transformation when sending image to custom printer
1 parent 264107f commit 2b28209

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

docs/notes/bugfix-12699.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Images don't appear or are clipped when printed to PDF

engine/src/customprinter.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,10 @@ void MCCustomMetaContext::doimagemark(MCMark *p_mark)
524524

525525
// Compute the transform that is needed - this transform goes from image
526526
// space to page space.
527+
// IM-2014-06-26: [[ Bug 12699 ]] Rework to ensure transforms are applied in the correct order - page transform -> image offset -> image transform
527528
MCGAffineTransform t_transform;
528-
t_transform = MCGAffineTransformMakeScale(m_scale_x, m_scale_y);
529-
t_transform = MCGAffineTransformTranslate(t_transform, m_translate_x + p_mark -> image . dx - p_mark -> image . sx, m_translate_y + p_mark -> image . dy - p_mark -> image . sy);
529+
t_transform = MCGAffineTransformMake(m_scale_x, 0, 0, m_scale_y, m_translate_x, m_translate_y);
530+
t_transform = MCGAffineTransformConcat(t_transform, MCGAffineTransformMakeTranslation(p_mark -> image . dx - p_mark -> image . sx, p_mark -> image . dy - p_mark -> image . sy));
530531
if (p_mark -> image . descriptor . has_transform)
531532
t_transform = MCGAffineTransformConcat(t_transform, p_mark -> image . descriptor . transform);
532533

0 commit comments

Comments
 (0)