首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel VBA -使用VBA裁剪PDF页面

Excel VBA -使用VBA裁剪PDF页面
EN

Stack Overflow用户
提问于 2018-06-20 07:12:34
回答 1查看 1.6K关注 0票数 2

我编写了一段代码,对pdf页面进行裁剪,然后使用AdobeAcrobat10.0类型库为Excel重新插入此页面到全局pdf中。这段代码在我的电脑上运行得很好,但在我的一位同事身上却长得太多了。我认为它可能来自分辨率(1440x900对我的,1600x900对我的同事),但我只是不知道分辨率可能在代码中插入。

代码语言:javascript
代码运行次数:0
运行
复制
Dim acroRect, jso, page As Object
Dim pdf1 As Acrobat.CAcroPDDoc
Dim nameFile, s, exportCroppedPDF As String

Set acroRect = CreateObject("AcroExch.Rect")
Set pdf1 = CreateObject("AcroExch.PDDoc")

nameFile = "namefile.pdf"

If pdf1.Open(nameFile) Then
    Set jso = pdf1.GetJSObject
    Set page = pdf1.AcquirePage(pdf1.GetNumPages() - 1)

    'These values were found from some tests I did, there is no logic behind them
    acroRect.bottom = 22
    acroRect.Left = 35      
    acroRect.Right = 785    
    acroRect.Top = 589     

    page.CropPage (acroRect)

    exportCroppedPDF = "pathAndNamefile.pdf"

    s = jso.extractPages(0, pdf1.GetNumPages() - 1, exportCroppedPDF)

Else
    Debug.Print ("Can't open the file!")
End If

pdf1.Close
Set pdf1 = Nothing
Set acroRect = Nothing
Set jso = Nothing
Set page = Nothing

Debug.Print ("Crop successful")

我对这个库一点也不累加(代码来自我在互联网上找到的代码),所以我可能写错了一些行(但它一开始就起作用了)。非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 07:30:09

根据文档,CropPages有4个参数,其中acroRect应该是最后一个参数。

returnValue = Object.CropPages( nStartPage,nEndPage,nEvenOrOddPagesOnly,acroRect ) 参数:

  • nStartPage:裁剪的第一页。PDDoc对象的第一个页面是页0。
  • nEndPage:裁剪的最后一页。
  • nEvenOrOddPagesOnly值,指示将裁剪范围中的哪些页。必须是下列之一:
    • 0意味着裁剪范围内的所有页面
    • 1意味着仅裁剪范围内的奇数页。
    • 2意味着仅在范围内裁剪甚至页面。

  • acroRect指定在用户空间中指定的裁剪矩形的AcroExch.Rect
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50942314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档