aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFPageObjectHelper.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-02-18 15:14:05 +0100
committerJay Berkenbilt <ejb@ql.org>2021-02-18 18:25:48 +0100
commit5cec6b4c3df09b59464c9a492b60b86ffd0d5311 (patch)
tree9519935f08e1f653943821e58d6f0eba32c7a0f9 /libqpdf/QPDFPageObjectHelper.cc
parent0765872295e581ea6ae5a07e12916a552a1543ee (diff)
downloadqpdf-5cec6b4c3df09b59464c9a492b60b86ffd0d5311.tar.zst
Add QPDFPageObjectHelper::getMatrixForFormXObjectPlacement
Diffstat (limited to 'libqpdf/QPDFPageObjectHelper.cc')
-rw-r--r--libqpdf/QPDFPageObjectHelper.cc23
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" +