【发布时间】:2018-07-09 08:23:08
【问题描述】:
我正在处理 PDF 缩小然后给它加水印,同样我正在使用 itextpdf-5.5.1.jar。这是我用来缩小 PDF 的代码。在代码中,xPercentage 和 xPercentage 的值为 0.9f。当我缩小具有内容表的 PDF 时,页面上的内容正在正确缩小。当我转到目录时,超链接的边界框放错了位置。我注意到原始和缩小输出文档的边界框大小相同。如何根据内容缩小超链接的边界框?
public void shrinkPDF(String strFilePath , String strFileName) throws Exception{
PdfReader reader = new PdfReader(strFilePath+"//"+strFileName);
PdfStamper stamper = new PdfStamper(reader, new
FileOutputStream(strFilePath+"//Shrink_"+strFileName));
int n = reader.getNumberOfPages();
Map mpPDFLayer = stamper.getPdfLayers();
for (int p = 1; p <= n; p++) {
float offsetX = (reader.getPageSize(p).getWidth() * (1 - xPercentage)) / 2;
float offsetY = (reader.getPageSize(p).getHeight() * (1 - yPercentage)) / 2;
stamper.getUnderContent(p).setLiteral(
String.format("\nq %s 0 0 %s %s %s cm\nq\n",
xPercentage, yPercentage, offsetX, offsetY));
stamper.getOverContent(p).setLiteral("\nQ\nQ\n");
}
stamper.close();
reader.close();
}
【问题讨论】:
-
我的回答是否足以回答您的问题?如果没有,你为什么不要求澄清或更多细节。否则,你为什么不接受答案?
-
抱歉,stackoverflow 的新手。谢谢提醒。我正在研究注释以解决此问题。但是,我遇到了与相同代码的方向相关的另一个问题。我为此提出了另一个问题。
标签: java hyperlink itext pdf-generation bounding-box