2

我想用 PDFSharp 创建一个函数来合并一些 pdf。

这是我的代码

public class PDF_Merge
{
    static string [] strTabPdfFiles;


    public static string SetPdfToMerge(string strPdfFilesInput)
    {
        strTabPdfFiles = strPdfFilesInput.Split(';');
        return "O";
    }

    public static string MergeToPdf(string strPdfFilesOutput)
    {
        try
        {
            PdfDocument objDocumentFinal = new PdfDocument(strPdfFilesOutput);

            foreach (string strDoc in strTabPdfFiles)
            {
                PdfDocument objDocument = PdfReader.Open(strDoc, PdfDocumentOpenMode.Import);

                foreach (PdfPage page in objDocument.Pages)
                {
                    objDocumentFinal.AddPage(page);
                }
                objDocument.Close();----------> Exception : File cannot be modified
            }
            objDocumentFinal.Close();

            objDocumentFinal.Save(strPdfFilesOutput);
        }
        catch (Exception ex)
        {
            return ex.Message;
        }

        return "O";
    }

}

我的问题是在 objDocument.Close() 调用中,我有一个异常:“无法修改文档”。

任何人都可以帮助我吗?

非常感谢这个库,

此致,

尼克修斯

4

2 回答 2

6

使用 PdfDocumentOpenMode.Import 打开的 PDF 文件仅供导入,不能修改。
尝试 PdfDocumentOpenMode.Modify 代替。

或查看连接文档示例:
http ://www.pdfsharp.net/wiki/ConcatenateDocuments-sample.ashx

于 2012-12-05T16:48:20.970 回答
3

我知道我迟到了,但我今天遇到了这个问题。

close 方法是尝试保存文档,因此需要.Modify. 在这种情况下,您根本不需要objDocument.Close()。您可以选择(并且可能应该?)调用objDocument.Dispose().

于 2013-03-12T18:59:20.180 回答