iText7将不会初始化

问题描述 投票:0回答:1

我有hangfire(hangfire.io),它是开源作业调度程序,运行使用iText7生成pdf的作业。当我将作业作为单元测试运行时,它可以工作。当我通过hangfire运行它时,由于某种依赖性问题而出错。我没有使用任何加密,只有最基本的iText7功能。

MemoryStream newSourceMS = new MemoryStream();
PdfWriter writer = new PdfWriter(newSourceMS);
writer.SetCloseStream(false);
PdfDocument pdfDocument = new PdfDocument(writer); //ERROR HERE

错误消息是:“'iText.IO.Util.EncodingUtil'的类型初始值设定项引发了异常。”

堆栈跟踪

   at iText.Kernel.Pdf.PdfEncryption.GenerateNewDocumentId()
   at iText.Kernel.Pdf.PdfDocument.Open(PdfVersion newPdfVersion)
   at iText.Kernel.Pdf.PdfDocument..ctor(PdfWriter writer, DocumentProperties properties)
   at iText.Kernel.Pdf.PdfDocument..ctor(PdfWriter writer)

我有itext.forms.dll,itext.html2pdf.dll,itext.io.dll,itext.kernel.dll,itext.layout.dll,itext.styledxmlparser.dll,itext.svg.dll和BouncyCastle.Crypto。 BIN中的dll用于Hangfire。

缺少某些其他依赖项,我不知道是什么。

任何想法都将不胜感激。

更新

通过添加System.Security.Crptography.Encoding,它得到了进一步的发展。可能是答案。

itext7 hangfire
1个回答
0
投票

与编写器初始化PDFDocument时遇到类似的问题。

        PdfWriter writer = new PdfWriter(outStream);
        PdfDocument pdf = new PdfDocument(writer);

尝试按照建议的方式添加Cryptography.Encoding程序包,但它不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.