Foxtable(狐表)用户栏目专家坐堂 → 导出PDF错误


  共有2817人关注过本帖树形打印复制链接

主题:导出PDF错误

帅哥哟,离线,有人找我吗?
goldenfont
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3892 威望:0 精华:0 注册:2016/4/25 17:36:00
导出PDF错误  发帖心情 Post By:2018/10/29 12:23:00 [只看该作者]

我的Excel报表,用Excel没问题,但是导出到PDF中会出现以下错误,
---------------------------
版本:2018.10.9.1
---------------------------
代码执行出错,错误信息:
System.ArgumentException: 值不在预期的范围内。
   在 Microsoft.Office.Interop.Excel.WorkbookClass.ExportAsFixedFormat(XlFixedFormatType Type, Object Filename, Object Quality, Object IncludeDocProperties, Object IgnorePrintAreas, Object From, Object To, Object OpenAfterPublish, Object FixedFormatExtClassPtr)
   在 Foxtable.XLS.Book.SaveToPdf(String fl)
   在 UserCode.Test()


这是什么问题啊?
代码如下:
Dim Book As New XLS.Book(ProjectPath & "Output\1.xls")
Dim fl As String = ProjectPath & "Output\1.pdf"
Book.Build() '生成细节区
Book.SaveToPDF(fl) '保存为PDF文件
Dim Proc As New Process '打开PDF文件
Proc.File = fl
Proc.Start()
保存到1.xls没问题,打开,保存到1.pdf就会出现上面的错误了,啥情况?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/29 13:16:00 [只看该作者]

你的ms office必须是2010或以上才行。如果是2003,不支持转换。如果是2007,需要安装save as pdf插件

 回到顶部
帅哥哟,离线,有人找我吗?
goldenfont
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3892 威望:0 精华:0 注册:2016/4/25 17:36:00
  发帖心情 Post By:2018/10/29 14:22:00 [只看该作者]

我用的是2007,安装了Acrobat,在excel里可以直接另存为PDF的,但是程序用就会出这个错误,是版本的问题吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/29 14:26:00 [只看该作者]

执行下面的代码是否报错?

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("d:\会议签到表.xls")
    '创建Excel文件对应的PDF文件
    wb.Saved = True
    wb.ExportAsFixedFormat(MSExcel.XlFixedFormatType.xlTypePDF, "d:\会议签到表.pdf", MsExcel.XlFixedFormatQuality.xlQualityStandard, True, False,  System.Reflection.Missing.Value,  System.Reflection.Missing.Value, True,  System.Reflection.Missing.Value)
    app.quit
    msgbox("OK")
catch ex As exception
    msgbox(ex.message)
    app.quit
End try

 

 

如果报错,你需要安装完整版本的32位的ms office


 回到顶部