密码
float newTop = rectangle.getTop();
if (printSet.getHeaderMargins() < 0) {
newTop += height2Offset(PrintSet.defaultMargins - printSet.getHeaderMargins());
headMargins = height2Offset(PrintSet.defaultMargins);
}
if (printSet.getFooterMargins() < 0) {
newTop += height2Offset(PrintSet.defaultMargins - printSet.getFooterMargins());
footMargins = height2Offset(PrintSet.defaultMargins);
}
float[] newBoxValues = new float[] {
rectangle.getLeft(),
rectangle.getBottom(),
rectangle.getRight(),
newTop
};
PdfArray newBox = new PdfArray(newBoxValues);
PdfDictionary pageDict = reader.getPageN(page + 1);
pageDict.put(PdfName.CROPBOX, newBox);
pageDict.put(PdfName.MEDIABOX, newBox);
答案 0 :(得分:0)
目前,您正在定义一个新的页面大小:
float[] newBoxValues = new float[] {
rectangle.getLeft(),
rectangle.getBottom(),
rectangle.getRight(),
newTop
};
这会创建一个更大的矩形,但该矩形只会将页面向上扩展。
我认为你应该像这样创建一个新的矩形:
float[] newBoxValues = new float[] {
rectangle.getLeft(),
rectangle.getBottom() - extramarginBottom,
rectangle.getRight(),
rectangle.getTop() + extramarginTop
};
我无法帮助您定义extramarginBottom
和extramarginTop
的值,因为我不确定您的height2Offset()
方法应该做什么,也不确定PrintSet.defaultMargins
是什么,printSet.getHeaderMargins()
和printSet.getFooterMargins()
是关于。
基本上,extramarginTop
是要在顶部添加的高度,而extramarginBottom
是要在底部添加的高度: