2
私は生成している1つのファイルにそれを保存しているpdfのシャープな文書がうまくいきます。私が試してみて、同じPDF文書からいくつかのファイルに保存した場合、私は、次のエラーメッセージが表示されます。PDFSharpオブジェクトを複数のファイルに保存する方法は?
Test Error : UnitTests.PdfFocusCalResultOutputterTester.Test_MakePDF
System.InvalidOperationException : The dictionary already has a stream.
at PdfSharp.Pdf.PdfDictionary.CreateStream(Byte[] value)
at PdfSharp.Pdf.Advanced.PdfToUnicodeMap.PrepareForSave()
at PdfSharp.Pdf.Advanced.PdfType0Font.PrepareForSave()
at PdfSharp.Pdf.Advanced.PdfFontTable.PrepareForSave()
at PdfSharp.Pdf.PdfDocument.PrepareForSave()
at PdfSharp.Pdf.PdfDocument.DoSave(PdfWriter writer)
at PdfSharp.Pdf.PdfDocument.Save(Stream stream, Boolean closeStream)
at ResultOutputter.PdfFocusCalResultOutputter.RenderToFile(String filename) in c:\projects\testing\pdffocuscalresultoutputter.cpp:line 802
次のように私は単にPdfDocument
の私のインスタンスにPdfSharp::Pdf::PdfDocument::Save
を呼んでいる:
System::IO::FileStream^ s = gcnew System::IO::FileStream("firstpdf.pdf", System::IO::FileMode::Create);
m_document->Save(s, false);
s->Flush();
s->Close();
System::IO::FileStream^ s2 = gcnew System::IO::FileStream("secondpdf.pdf", System::IO::FileMode::Create);
m_document->Save(s2, false);
s2->Flush();
s2->Close();
私は生成したpdfを再利用したいのですが、再作成する必要がありますか? ...またはPDFファイルを変更してストリームをクリアしますか? –
誰かがこれを行う必要がある場合は、メモリストリームを使用することができます:http://stackoverflow.com/questions/1073277/pdfsharp-save-to-memorystream –
Open-modify-saveは機能します。オープン・モディファイ・セーブ・モディファイ・セーブは動作しません。 Open-modify-save-open-modify-saveが機能するので、中間ステップをファイルに保存し、ストリームに保存し、ストリームをファイルにコピーしてからストリームを開き、さらに変更を加えます。 ご迷惑をおかけして申し訳ありませんが、「バグを修正」するのはやや複雑だと言われました。 –