尝试用PDF框保存.pfd时,VB.net控制台应用程序崩溃
我试图用vb.net中的PDFBox库更改PDF文件, 在我试图保存PDF之前,一切都很顺利,它崩溃了,出现了以下stacktrace: org.apache.pdfbox.exceptions.COSVisitorException wurde nicht-behandelt尝试用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
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问题。