大家好,我在旋转 PDF 页面时需要介绍一些用例。
我需要检查每个页面的旋转值并将其旋转到0度。
当我在 Adobe 中查看一些文档时,它显示我是 90 度,但实际上是 0 度。
我需要涵盖这两个用例,我已经使用java PDFBox编写了一段代码,它将得到旋转度数显示错误的结果, 如果有人知道如何找到以及决定学位的方面是什么,请帮助我完成它。有代码或维基可供参考, 我正在开发一个 Spring Boot 项目。
PDDocument document;
public void getPdfFile(String pdfPath) throws IOException {
File file = new File(pdfPath);
document = PDDocument.load(file);
int pageCount = document.getNumberOfPages();
for(int i = 0; i < pageCount; i++) {
PDPage page = document.getPage(i);
System.out.println( page.getRotation());
if(page.getRotation() != 0) {
page.setRotation(0);
}
}
document.save("/Users/tejasreddy/Desktop/CE/StorePDF/rotated1_rotated.pdf");
document.close();
}
谢谢特哈斯。
对于 PDF 页面旋转属性的含义似乎存在误解,所以我将在这里解释一下。
可见页面区域的尺寸和坐标范围由页面的 CropBox 条目给出。该区域中的 x 坐标向右增加,y 坐标向上增加。在此区域中,页面内容流的指令可以在任何方向或方向上绘制文本和其他内容。
页面的 Rotate 条目(即“页面旋转”)指示查看器程序显示由裁剪框定义的页面区域,顺时针旋转该条目的度数值(必须是 90° 的倍数) .
就是这样。
因此,页面旋转值不一定与页面上任何内容的方向一致。 (当然,在创建 PDF 时,人们通常会选择裁剪框和旋转值,以便尽可能轻松地添加内容并在查看器中阅读内容。但这在技术上并不是强制执行的。)
我也有类似的问题。我在 Excel、MicroSoft 365 中使用 vba。 我想添加注释,但如果页面旋转,注释也会旋转并位于不同的位置。 所以我拉进页面旋转。 (pg_rot = page.GetRotate) 并将其添加到注释的属性(props.rotate = Pg_rot),以及更改坐标(reter)
If objAVDoc.Open(pth, "") Then Set pdDoc = objAVDoc.GetPDDoc
Set jso = pdDoc.GetJSObject
If Not jso Is Nothing Then
Set page = pdDoc.AcquirePage(0)
Pg_rot = page.GetRotate()
' This has been tested for 0 and 270 degrees
Select Case Pg_rot
Case Is = 0
recter(0) = 410
recter(1) = 780
recter(2) = 600
recter(3) = 730
Case Is = 270
recter(0) = 780
recter(1) = 410
recter(2) = 730
recter(3) = 60
End Select
Set annot = jso.AddAnnot
Set props = annot.getprops
props.page = 0
props.rotate = Pg_rot
props.Type = "FreeText"
props.rect = recter
props.author = author
props.contents = note
annot.setProps props
If pdDoc.Save(PDSaveFull, pth) = False Then
MsgBox "FAIL - " & pth
pdDoc.Close
Else
MsgBox "success"
pdDoc.Close
End If
我无法理解上面代码片段的其余部分。 (如果结束,将应用程序设置为无等)