2

一部のpdfをマージするために、PDFSharpで関数を作成したいと思います。

これが私のコードです

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を試してください。

または、Concatenate Documentsサンプルをご覧ください:
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 に答える