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

时间:2017-08-01 10:04:52

标签: aspose aspose.pdf

我是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)

1 个答案:

答案 0 :(得分:0)

我发现我的PDF确实存在问题。我能够通过此链接验证这一点

3-HEIGHTS™ PDF VALIDATOR ONLINE TOOL