技术支持,您好!
我想知道使用Aspose.PDF.dll自动智能裁剪Pdf每页四周白边的方法。
我的代码如下:
--------------VB.Net 2008的代码--------------------------
Dim Pdf = New Global.Aspose.Pdf.Document(sFile)
Dim Reslt As Global.Aspose.Pdf.Devices.Resolution = New Global.Aspose.Pdf.Devices.Resolution(72)
Dim JpegDevice As Global.Aspose.Pdf.Devices.JpegDevice = New Global.Aspose.Pdf.Devices.JpegDevice(Reslt, 100)
Dim Left, Top, Bottom, Right As Long, W As Long, H As Long
For i = 1 To Pdf.Pages.Count
On Error Resume Next
Dim PdfPage As Global.Aspose.Pdf.Page = Pdf.Pages(i)
W0 = Pdf.Pages(i).PageInfo.Width
H0 = Pdf.Pages(i).PageInfo.Height
On Error Resume Next
Kill(AppPath & “\Temp.jpeg”)
JpegDevice.Process(PdfPage, AppPath & “\QQTempp” & i & “.jpeg”)
shellexecute 0,“open”,“CropPdfEdges.exe”,CmdLine,0 '此行代码是调用外部程序CropPdfEdges.exe查找临时图片文件AppPath & "\Temp.jpeg"页面内容的左上角版心位置的起点坐标(Left,Top)和页面内容右下角的终点坐标(Right,Bottom)
‘假设识别出的起点坐标(Left,Top)=(54,117),终点坐标(Right,Bottom)=(115,80)
Dim CropBox As Global.Aspose.Pdf.Rectangle = Pdf.Pages(i).CropBox
Pdf.Pages(i).CropBox = New Global.Aspose.Pdf.Rectangle(CropBox.LLX + Left, CropBox.LLY + Top , CropBox.URX - Right, CropBox.URY -Bottom)
Pdf.Save(OutFile)
next
-------------------代码结束----------------------
执行 shellexecute 0,“open”,"CropPdfEdges.exe"时,每页Pdf页面被转换成图片文件,并对图片文件进行查找起点和终点坐标,是正确的;但是,执行如下代码时:
Pdf.Pages(i).CropBox = New Global.Aspose.Pdf.Rectangle(CropBox.LLX + Left, CropBox.LLY + Top , CropBox.URX - Right, CropBox.URY -Bottom)
最终得到的裁剪了的Pdf页面跟临时文件图片的结果不一样。
要如何修正方法和代码,方能实现我的目的呢?
另外,如果是扫描型的Pdf页面,如果自动智能矫正倾斜度,然后再自动智能裁剪掉白边或者黑边呢?
谢谢您的帮助!