以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导出PDF错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126789)

--  作者:goldenfont
--  发布时间:2018/10/29 12:23:00
--  导出PDF错误
我的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就会出现上面的错误了,啥情况?

--  作者:有点甜
--  发布时间:2018/10/29 13:16:00
--  
你的ms office必须是2010或以上才行。如果是2003,不支持转换。如果是2007,需要安装save as pdf插件
--  作者:goldenfont
--  发布时间:2018/10/29 14:22:00
--  
我用的是2007,安装了Acrobat,在excel里可以直接另存为PDF的,但是程序用就会出这个错误,是版本的问题吗?
--  作者:有点甜
--  发布时间: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