diff options
author | Jay Berkenbilt <ejb@ql.org> | 2021-02-18 15:14:05 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2021-02-18 18:25:48 +0100 |
commit | 5cec6b4c3df09b59464c9a492b60b86ffd0d5311 (patch) | |
tree | 9519935f08e1f653943821e58d6f0eba32c7a0f9 /libqpdf | |
parent | 0765872295e581ea6ae5a07e12916a552a1543ee (diff) | |
download | qpdf-5cec6b4c3df09b59464c9a492b60b86ffd0d5311.tar.zst |
Add QPDFPageObjectHelper::getMatrixForFormXObjectPlacement
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFPageObjectHelper.cc | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc index da8b3919..e744457b 100644 --- a/libqpdf/QPDFPageObjectHelper.cc +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -947,10 +947,9 @@ QPDFPageObjectHelper::getFormXObjectForPage(bool handle_transformations) return result; } -std::string -QPDFPageObjectHelper::placeFormXObject( - QPDFObjectHandle fo, std::string const& name, - QPDFObjectHandle::Rectangle rect, +QPDFMatrix +QPDFPageObjectHelper::getMatrixForFormXObjectPlacement( + QPDFObjectHandle fo, QPDFObjectHandle::Rectangle rect, bool invert_transformations, bool allow_shrink, bool allow_expand) { @@ -971,7 +970,7 @@ QPDFPageObjectHelper::placeFormXObject( QPDFObjectHandle bbox_obj = fdict.getKey("/BBox"); if (! bbox_obj.isRectangle()) { - return ""; + return QPDFMatrix(); } QPDFMatrix wmatrix; // work matrix @@ -1014,7 +1013,7 @@ QPDFPageObjectHelper::placeFormXObject( if ((T.urx == T.llx) || (T.ury == T.lly)) { // avoid division by zero - return ""; + return QPDFMatrix(); } double rect_w = rect.urx - rect.llx; double rect_h = rect.ury - rect.lly; @@ -1060,6 +1059,18 @@ QPDFPageObjectHelper::placeFormXObject( cm.translate(tx, ty); cm.scale(scale, scale); cm.concat(tmatrix); + return cm; +} + +std::string +QPDFPageObjectHelper::placeFormXObject( + QPDFObjectHandle fo, std::string const& name, + QPDFObjectHandle::Rectangle rect, + bool invert_transformations, + bool allow_shrink, bool allow_expand) +{ + QPDFMatrix cm = getMatrixForFormXObjectPlacement( + fo, rect, invert_transformations, allow_shrink, allow_expand); return ( "q\n" + cm.unparse() + " cm\n" + |