尝试用PDF框保存.pfd时,VB.net控制台应用程序崩溃

尝试用PDF框保存.pfd时,VB.net控制台应用程序崩溃,vb.net,pdf,pdfbox,ikvm,Vb.net,Pdf,Pdfbox,Ikvm,我试图用vb.net中的PDFBox库更改PDF文件, 在我试图保存PDF之前,一切都很顺利,它崩溃了,出现了以下stacktrace: org.apache.pdfbox.exceptions.COSVisitorException wurde nicht-behandelt HResult=-2146233088 Message=java.security.NoSuchAlgorithmException: class configured for MessageDigest(pr

我试图用vb.net中的PDFBox库更改PDF文件, 在我试图保存PDF之前,一切都很顺利,它崩溃了,出现了以下stacktrace: org.apache.pdfbox.exceptions.COSVisitorException wurde nicht-behandelt

  HResult=-2146233088

  Message=java.security.NoSuchAlgorithmException: class configured for MessageDigest(provider: SUN)cannot be found.

  Message (Exception)=java.security.NoSuchAlgorithmException: class configured for MessageDigest(provider: SUN)cannot be found.

  Source=pdfbox-1.8.7

  Source (Exception)=pdfbox-1.8.7

  StackTrace:

       bei org.apache.pdfbox.pdfwriter.COSWriter.write(PDDocument doc)

       bei org.apache.pdfbox.pdmodel.PDDocument.save(OutputStream output)

       bei org.apache.pdfbox.pdmodel.PDDocument.save(File file)

       bei org.apache.pdfbox.pdmodel.PDDocument.save(String fileName)

       bei PDFAnfertigen.Module1.TextAusPDFAuslesen(String pPDFPfad) in C:\Users\fengels\Documents\Visual Studio 2013\Projects\PDFAnfertigen\PDFAnfertigen\Module1.vb:Zeile 44.

       bei PDFAnfertigen.Module1.Main() in C:\Users\fengels\Documents\Visual Studio 2013\Projects\PDFAnfertigen\PDFAnfertigen\Module1.vb:Zeile 12.

       bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

       bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

       bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

       bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)

       bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       bei System.Threading.ThreadHelper.ThreadStart()

  InnerException: java.security.NoSuchAlgorithmException

       HResult=-2146233088

       Message=class configured for MessageDigest(provider: SUN)cannot be found.

       Message (Exception)=class configured for MessageDigest(provider: SUN)cannot be found.

       Source=IKVM.OpenJDK.Core

       Source (Exception)=IKVM.OpenJDK.Core

       StackTrace:

            bei sun.security.jca.GetInstance.getInstance(String type, Class clazz, String algorithm)

            bei java.security.Security.getImpl(String , String , String )

            bei java.security.MessageDigest.getInstance(String algorithm)

            bei org.apache.pdfbox.pdfwriter.COSWriter.write(PDDocument doc)

       InnerException: java.lang.ClassNotFoundException

            HResult=-2146233088

            Message=sun.security.provider.MD5

            Message (Exception)=sun.security.provider.MD5

            Source=IKVM.Runtime

            Source (Exception)=IKVM.Runtime

            StackTrace:

                 bei IKVM.NativeCode.java.lang.Class.forName0(String name, Boolean initialize, ClassLoader loader)

                 bei java.lang.Class.forName0(String , Boolean , ClassLoader )

                 bei java.lang.Class.forName(String className, CallerID )

                 bei java.security.Provider.Service.getImplClass()

            InnerException: 
我不知道这意味着什么,谷歌搜索也没有那么有效,这是我的代码,即使我认为这与它无关

Dim objPDFDokument As PDDocument = PDDocument.load(pPDFPfad)
        Do
            eingefügt = False
            While intSeite < objPDFDokument.getDocumentCatalog.getAllPages.size
                Dim Dateipfad() As String = NachDateiZuordnungSuchen(intSeite, pPDFPfad)
                If Dateipfad IsNot Nothing Then
                    For Each strDateipfad As String In Dateipfad
                        If Path.GetExtension(strDateipfad).Equals(".pdf") Then
                            Dim objPDFeinfuegDatei As PDDocument = LadePdf(strDateipfad)
                            For i As Integer = 0 To objPDFeinfuegDatei.getDocumentCatalog.getAllPages.size - 1
                                eingefügt = True
                                intSeite += 1
                                objPDFDokument = FuegeSeiteEin(objPDFDokument, objPDFeinfuegDatei, intSeite)
                            Next
                        End If
                    Next
                End If
                intSeite += 1
            End While
        Loop Until eingefügt = False

        objPDFDokument.save(Path.Combine(Path.GetDirectoryName(pPDFPfad), "test.pdf"))
        objPDFDokument.close()

PDFBox是一个java库。如果您在.net环境中使用它,您可能正在使用某些工具,例如IKVM。你应该把它添加为标签。顺便说一句,当前的pdfbox版本是1.8.8这不是问题的原因,但我提到它是因为1.8.7不是一个很好的版本。看起来你的IKVM缺少sun.security.provider.MD5类。我不知道这个项目,所以我不知道它是否应该拥有它,你可能应该试着联系并询问,无论如何,它看起来不像PDFBox问题。