在 AddImage 函数中找不到交叉引用 table 或交叉引用流

Cross reference table or cross reference stream not found in AddImage function

我是 Aspose PDF 新手。我不明白为什么会出现此交叉引用错误。当图像被添加到 pdf 文件时会发生这种情况。

下面是代码示例。

// Gets the image file to be merged with the document
var b1 = GetDocumentFile(imageLayer.UNIQUE_ID);
if (b1.File.DocumentLayer?.PAGE_NUMBER != null)
{
    var i = b1.File.DocumentLayer.PAGE_NUMBER.Value;
    var pngBin = EFSUtil.ReadFileFromFileServer(b1.File.FullFilePathAndName, b1.Server);

    pngBin = CheckIfWebPAndProcess(pngBin);

    //open document based ont eh stream
    var pdfDocument = new Document(pdfMemoryStream);
    var rect = pdfDocument.Pages[i].GetPageRect(true);
    pdfDocument.Pages[i].AddImage(new MemoryStream(pngBin), rect); <-- Error hit here

    var bMemStrm = new MemoryStream();
    pdfDocument.Save(bMemStrm);
    pdfMemoryStream = bMemStrm;
}

我试图获得一些关于 AddImage() 期间为什么会发生错误的有价值的信息,我也试图了解为什么会发生错误以及如何解决它但没有成功。我能找到的最近的是这些链接。

Manipulate Images

Page class

我希望你能帮我解决这个问题。谢谢

更新

不确定这是否有帮助,但这是 AddImage 中出现问题时的堆栈跟踪

   at   .   ​()
   at   .(Int32 , Int32& )
   at   .   ​(Int32 )
   at ​  .(Int32 )
   at Aspose.Pdf.OperatorCollection.79au5vc3bv4m9r8vf6tce224vh3rwyeh ​()
   at Aspose.Pdf.OperatorCollection.(IList )
   at Aspose.Pdf.OperatorCollection.(IList ,  )
   at Aspose.Pdf.OperatorCollection.(List`1 )
   at Aspose.Pdf.OperatorCollection.Add(ICollection ops)
   at Aspose.Pdf.Page.(Stream , Rectangle , Matrix , CompositingParameters , Boolean , Boolean ,   & )
   at Aspose.Pdf.Page.(Stream , Rectangle , Matrix , CompositingParameters ,   & )
   at Aspose.Pdf.Page.AddImage(Stream imageStream, Rectangle imageRect)

我发现我的 PDF 确实有问题。我能够通过这个 link

验证这一点

3-HEIGHTS™ PDF VALIDATOR ONLINE TOOL