You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SelectPdf在VB.NET中合并PDF遇类型转换错误求助

解决SelectPdf在VB.NET中合并PDF时的InvalidCastException错误

你遇到的System.InvalidCastException: 'Conversion from string ""D:\PDF\1.pdf"" to type 'Integer' is not valid.'错误,核心原因是错误使用了PdfDocument的构造函数:该构造函数不支持直接传入文件路径字符串(它的重载参数为整数类型,比如页面尺寸枚举值),导致系统尝试将字符串转换为整数失败。

修正方案

SelectPdf中加载现有PDF文件,需要使用静态方法PdfDocument.LoadFromFile(),而非直接实例化PdfDocument并传入路径。同时推荐使用Using语句自动管理资源,避免手动调用Close()遗漏导致的资源泄漏。

修正后的完整代码

Public Sub MergePDF()
    Dim file1 As String = "D:\PDF\1.pdf"
    Dim file2 As String = "D:\PDF\2.pdf"

    ' Using语句会自动释放PDF文档资源,无需手动Close
    Using doc1 As PdfDocument = PdfDocument.LoadFromFile(file1)
        Using doc2 As PdfDocument = PdfDocument.LoadFromFile(file2)
            Using mergedDoc As New PdfDocument()
                ' 将两个PDF的页面追加到新文档
                mergedDoc.Append(doc1)
                mergedDoc.Append(doc2)

                ' 输出合并后的PDF到响应流
                mergedDoc.Save(Response, False, "Sample.pdf")
            End Using
        End Using
    End Using
End Sub

额外说明

如果你的SelectPdf版本特殊,可查看PdfDocument的构造函数重载列表,但绝大多数场景下,加载本地PDF文件的标准方式都是LoadFromFile静态方法。

内容的提问来源于stack exchange,提问作者delma wax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:31:14