我编写了代码来执行以下操作:
为此,我使用PdfWriter.GetImportedPage
方法从原始PDF中获取当前页面,然后使用PdfContentByte.AddTemplate(page, x, y)
方法将原始页面放置到新PDF的当前页面上。
我的新挑战是,在将原始PDF添加到新PDF之前,我需要裁剪原始PDF。例如,假设我要在输入PDF之前,先从原来的PDF中裁剪2“,输入PDF仍为8.5”x11“,新PDF仍为17”x11“,但新PDF的两份”副本“已从其顶部、右侧、底部和左侧移除2”。
希望这些图片能让这一切变得更清楚。这是我现在要做的,做一个2-向上的强加。(这件事运行得很顺利。)
但我需要做的是:
我知道我可以通过使用MediaBox或CropBox设置来改变PDF在查看器中的显示,但是AddTemplate
并不尊重这些设置。我知道,使用AddTemplate
,我可以使用转换矩阵来定位页面,或者缩放或旋转页面,但是我不想缩小原始的PDF,我想要裁剪它。
谢谢
发布于 2018-03-23 20:27:59
我发现在将它添加到新的PDF之前,我可以使用导入页面的BoundingBox
来裁剪它(通过AddTemplate
)。
我的代码看起来是这样的:
PdfImportedPage page = writer.GetImportedPage(pageNumber);
// Crop!
page.BoundingBox = new Rectangle(llx, lly, urx, ury);
// Add to new PDF
writer.DirectContent.AddTemplate(page, x, y);
这就行了!
https://stackoverflow.com/questions/49457640
复制相似问题