diff --git a/PdfReader/PdfReader.cpp b/PdfReader/PdfReader.cpp index 541bbf1d54..6dd507f5c9 100644 --- a/PdfReader/PdfReader.cpp +++ b/PdfReader/PdfReader.cpp @@ -430,7 +430,7 @@ return 0; // return wsXml; return L""; } - void CPdfReader::AddToPage(int nPageIndex, IRenderer* pPdfWriter, IRenderer* pNewRenderer, const std::wstring& sFile) + void CPdfReader::AddToPage(int nPageIndex, IRenderer* pPdfWriter, const std::wstring& sFile) { long lRendererType; pPdfWriter->get_Type(&lRendererType); diff --git a/PdfReader/PdfReader.h b/PdfReader/PdfReader.h index 7fd75be77f..0156db48f1 100644 --- a/PdfReader/PdfReader.h +++ b/PdfReader/PdfReader.h @@ -97,7 +97,7 @@ namespace PdfReader NSFonts::IFontManager* GetFontManager(); std::wstring ToXml(const std::wstring& wsXmlPath); - void AddToPage(int nPageIndex, IRenderer* pPdfWriter, IRenderer* pNewRenderer, const std::wstring& sFile); + void AddToPage(int nPageIndex, IRenderer* pPdfWriter, const std::wstring& sFile); #ifdef BUILDING_WASM_MODULE virtual BYTE* GetStructure(); diff --git a/PdfWriter/Src/Document.cpp b/PdfWriter/Src/Document.cpp index 1204136b23..628178082f 100644 --- a/PdfWriter/Src/Document.cpp +++ b/PdfWriter/Src/Document.cpp @@ -1058,24 +1058,15 @@ namespace PdfWriter if (!pStream || !pStream->OpenFile(wsPath, false)) return; - // не шифрует - // Шифруем документ, если это необходимо - CEncrypt* pEncrypt = NULL; - if (m_bEncrypt) - { - pEncrypt = m_pEncryptDict->GetEncrypt(); - PrepareEncryption(); - } - // Освобождается в деструкторе pXref как m_pPrev CXref* pXrefNew = new CXref(this, nSizeXRef); + pPage->AddContents(pXrefNew); #ifndef FILTER_FLATE_DECODE_DISABLED if (m_unCompressMode & COMP_TEXT) pPage->SetFilter(STREAM_FILTER_FLATE_DECODE); #endif - - pPage->AddCommands(pXrefNew, L""); // Выполнение команд на странице + pPage->AddCommands(pXrefNew); // Выполнение команд на странице pXrefNew->SetPrevAddr(nPosLastXRef); pXref->SetPrev(pXrefNew); @@ -1086,7 +1077,7 @@ namespace PdfWriter CObjectBase* pRoot = new CProxyObject(pBase); pXref->GetTrailer()->Add("Root", pRoot); - pXref->WriteToStream(pStream, pEncrypt); + pXref->WriteToStream(pStream, NULL); RELEASEOBJECT(pBase); RELEASEOBJECT(pStream); diff --git a/PdfWriter/Src/Pages.cpp b/PdfWriter/Src/Pages.cpp index a31a087e37..dab2ef181e 100644 --- a/PdfWriter/Src/Pages.cpp +++ b/PdfWriter/Src/Pages.cpp @@ -1423,19 +1423,22 @@ namespace PdfWriter { Add("Group", pDict); } - void CPage::AddCommands(CXref* pXref, const std::wstring& sCommands) + void CPage::AddCommands(CXref* pXref) { m_pXref = pXref; - m_pContents->Add(new CDictObject(pXref)); - m_pStream = ((CDictObject*)m_pContents->Get(m_pContents->GetCount() - 1))->GetStream(); - // ТЕСТ КОММАНД + // ТЕСТОВЫЕ КОММАНДЫ MoveTo(10, 10); LineTo(20, 20); CurveTo(70, 30, 30, 20, 50, 50); ClosePath(); Fill(); } + void CPage::AddContents(CXref* pXref) + { + m_pContents->Add(new CDictObject(pXref)); + m_pStream = ((CDictObject*)m_pContents->Get(m_pContents->GetCount() - 1))->GetStream(); + } //---------------------------------------------------------------------------------------- // CTextWord //---------------------------------------------------------------------------------------- diff --git a/PdfWriter/Src/Pages.h b/PdfWriter/Src/Pages.h index dd4094e562..68887cc1f4 100644 --- a/PdfWriter/Src/Pages.h +++ b/PdfWriter/Src/Pages.h @@ -142,7 +142,8 @@ namespace PdfWriter CMatrix* GetTransform(); void AddGroup(CDictObject* pDict); - void AddCommands(CXref* pXref, const std::wstring& sCommands); + void AddCommands(CXref* pXref); + void AddContents(CXref* pXref); private: diff --git a/PdfWriter/test/test.cpp b/PdfWriter/test/test.cpp index f0055a7f77..7758eae8a3 100644 --- a/PdfWriter/test/test.cpp +++ b/PdfWriter/test/test.cpp @@ -50,8 +50,8 @@ int main() */ } - // на какую страницу, писатель PdfWriter, IRenderer с командами дозаписи - pReader->AddToPage(0, &pdfWriter, NULL, NSFile::GetProcessDirectory() + L"/test.pdf"); + // на какую страницу, писатель PdfWriter, файл в который дописать + pReader->AddToPage(0, &pdfWriter, NSFile::GetProcessDirectory() + L"/test.pdf"); //pdfWriter.SaveToFile(NSFile::GetProcessDirectory() + L"/res.pdf"); RELEASEOBJECT(pReader); RELEASEOBJECT(pApplicationFonts);