让PdfStamper使用MemoryStreams(c#,itextsharp)字节数组)。简单吧?嗯,那是昨天。今天我无法让它工作。这是旧代码,它使用FileStreams并且它有效:FileAccess.Read)){...使用(PdfStamperst=PdfStamper.CreateSignature(pdfReader,newFileStream(destination,FileMode.Create,FileAccess.Write),'')){PdfSignatureAppearancesap=st.SignatureAppearance;sap.SetCrypto(键、链、空、PdfSignatureAppearance.WINCER_SIGNED);sap.Reason=原因;sap.Location=位置;返回目的地;下面是我自己的返工,抛出System.ObjectDisposedException:无法访问已关闭的流。publicstaticbyte[]PdfSigner(PdfReaderpdfReader,stringpassword,stringreason,stringlocation,stringpathToPfx){使用(FileStreampfxFile=newFileStream(pathToPfx,FileMode.Open,FileAccess.Read)){...MemoryStreamoutputStream=new内存流();使用(PdfStamperst=PdfStamper.CreateSignature(pdfReader,outputStream,'')){st.Writer.CloseStream=false;PdfSignatureAppearancesap=st.SignatureAppearance;sap.SetCrypto(key,chain,null,PdfSignatureAppearance.NEWINCER_SI);sap.Reason=原因;sap.Location=位置;st.Close();outputStream.Position=0;返回outputStream.ToArray();如果我评论st.Close();它创建一个空文档。我究竟做错了什么?不具体针对你的签名代码,但是在使用MemoryStream和PdfStamper时,请遵循这个通用模式:以上是C#学习教程:让PdfStamper使用MemoryStreams(c#,itextsharp)分享所有内容,如果对大家有用的话和需要了解更多C#学习教程,希望大家多多关注—using(MemoryStreamms=newMemoryStream()){using(PdfStamperstamper=newPdfStamper(reader,ms,'',true)){//dostuff}返回ms.ToArray();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
