Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用iTextSharp v4合并PDF会引发异常_C#_Pdf_Pdf Generation_Itextsharp - Fatal编程技术网

C# 尝试使用iTextSharp v4合并PDF会引发异常

C# 尝试使用iTextSharp v4合并PDF会引发异常,c#,pdf,pdf-generation,itextsharp,C#,Pdf,Pdf Generation,Itextsharp,我尝试了两个不同的代码示例,它们都抛出了相同的异常: System.InvalidCastException was unhandled by user code Message=Unable to cast object of type 'iTextSharp.text.pdf.PdfArray' to type 'iTextSharp.text.pdf.PRIndirectReference'. Source=itextsharp StackTrace: at iT

我尝试了两个不同的代码示例,它们都抛出了相同的异常:

System.InvalidCastException was unhandled by user code
  Message=Unable to cast object of type 'iTextSharp.text.pdf.PdfArray' to type 'iTextSharp.text.pdf.PRIndirectReference'.
  Source=itextsharp
  StackTrace:
       at iTextSharp.text.pdf.PdfCopy.CopyObject(PdfObject inp)
       at iTextSharp.text.pdf.PdfCopy.CopyDictionary(PdfDictionary inp)
       at iTextSharp.text.pdf.PdfCopy.AddPage(PdfImportedPage iPage)
本例使用PdfCopy。我还用PdfWriter试用过:

    public MemoryStream Merge(MemoryStream outputStream,List<PdfReader> documents)
    {
        if (outputStream == null || !outputStream.CanWrite)
            throw new Exception("OutputStream is null or you can't write to it.");

        Document newDocument = null;
        try
        {
            newDocument = new Document(documents[0].GetPageSizeWithRotation(1));
            PdfCopy pdfWriter = new PdfCopy(newDocument, outputStream);

            newDocument.Open();
            //PdfContentByte pdfContentByte = pdfWriter.DirectContent;

            foreach (PdfReader pdfReader in documents)
            {
                for (int page = 1; page <= pdfReader.NumberOfPages; page++)
                {
                    //newDocument.NewPage();
                    PdfImportedPage importedPage = pdfWriter.GetImportedPage(pdfReader, page);
                    pdfWriter.AddPage(importedPage);
                }
            }
        }
        finally
        {
            outputStream.Flush();
            if (newDocument != null)
                newDocument.Close();
            outputStream.Close();
        }
        return outputStream;
    }
公共内存流合并(内存流输出流,列表文档)
{
if(outputStream==null | |!outputStream.CanWrite)
抛出新异常(“OutputStream为null或无法写入它”);
Document newDocument=null;
尝试
{
newDocument=新文档(文档[0]。GetPageSizeWithRotation(1));
PdfCopy pdfWriter=新的PdfCopy(newDocument,outputStream);
newDocument.Open();
//PdfContentByte PdfContentByte=pdfWriter.DirectContent;
foreach(文档中的PdfReader PdfReader)
{

对于(int page=1;page),我怀疑您的PDF文件不好。我们可以看看吗?