我将tiff转换为pdf文件,但是图像显示在页面底部,如何从pdf页面的顶部开始图像.
private static String convertTiff2Pdf(String tiff) {
// target path PDF
String pdf = null;
try {
pdf = tiff.substring(0, tiff.lastIndexOf('.') + 1) + "pdf";
// New document A4 standard (LETTER)
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdf));
document.setMarginMirroring(true);
int pages = 0;
document.open();
PdfContentByte cb = writer.getDirectContent();
RandomAccessFileOrArray ra = null;
int comps = 0;
ra = new RandomAccessFileOrArray(tiff);
comps = TiffImage.getNumberOfPages(ra);
// Convertion statement
for (int c = 0; c < comps; ++c) {
Image img = TiffImage.getTiffImage(ra, c+1);
if (img != null) {
img.scalePercent(7200f / img.getDpiX(), 7200f / img.getDpiY());
img.setAbsolutePosition(0, 0);
img.scaleAbsolute(600, 250);
cb.addImage(img);
document.newPage();
++pages;
}
}
ra.close();
document.close();
} catch (Exception e) {
System.out.println(e);
pdf = null;
}
System.out.println("[" + tiff + "] -> [" + pdf + "] OK");
return pdf;
}
Run Code Online (Sandbox Code Playgroud)
您正在创建一个A4页面的新文档(而不是使用LETTER格式).这些页面的宽度为595磅,高度为842磅.坐标系的原点位于(0, 0)左下角,这正是您使用该方法添加图像的位置setAbsolutePosition(0, 0);
令人惊讶的是,您不会将页面大小调整为图像大小.相反,您想要在页面顶部添加图像.在这种情况下,您需要更改绝对位置的坐标,如下所示:
img.setAbsolutePosition(0, PageSize.A4.getHeight() - img.getScaledHeight());
Run Code Online (Sandbox Code Playgroud)
如果img.getScaledHeight()超过PageSize.A4.getHeight()(等于842),您的图像将被剪裁在底部.如果img.getScaledWidth()超过PageSize.A4.getWidth()(等于595),图像将在右侧被剪裁.
| 归档时间: |
|
| 查看次数: |
7047 次 |
| 最近记录: |