我已编写代码来执行以下操作:
为此,我使用PdfWriter.GetImportedPage
方法从原始PDF获取当前页面,然后使用PdfContentByte.AddTemplate(page, x, y)
方法将原始页面放在新PDF的当前页面上。< / p>
我的新挑战是我需要在将原始PDF添加到新PDF之前裁剪原始PDF。例如,想象一下我想要在施加它之前裁剪原始PDF的2“。输入的PDF仍然是8.5”x 11“,新的PDF仍然是17”x 11“,但是两个”副本“新版本中的原始PDF将从其顶部,右侧,底部和左侧移除2个。
希望这些图像可以使这一点更加清晰。这就是我现在所做的,做一个2-up拼版。 (这是在游泳。)
但这就是我需要做的事情:
我知道我可以使用MediaBox或CropBox设置更改查看器中PDF的显示,但AddTemplate
不遵守这些设置。我知道使用AddTemplate
我可以使用变换矩阵来定位页面或缩放或旋转它,但我不想缩小原始PDF,我想裁剪它。
由于
答案 0 :(得分:0)
我发现在将其添加到新PDF(通过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);
进行裁剪。
所以我的代码看起来像这样:
for component in issue["fields"]["components"]:
print component["name"]
这就是诀窍!