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

时间:2015-03-04 15:38:23

标签: vb.net pdf pdfbox ikvm

我试图在vb.net中使用PDFBox库更改PDF文件, evrything一直很好,直到我试图保存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()

0 个答案:

没有答案