Create ChangePassword for pdf

This commit is contained in:
Svetlana Kulikova
2023-12-26 17:31:19 +03:00
parent 96929ac63a
commit 59fcd227ea
10 changed files with 243 additions and 13 deletions

View File

@ -651,7 +651,7 @@ namespace PdfWriter
}
}
}
void CDictObject::SetStream(CXref* pXref, CStream* pStream)
void CDictObject::SetStream(CXref* pXref, CStream* pStream, bool bThis)
{
if (m_pStream)
delete m_pStream;
@ -661,7 +661,8 @@ namespace PdfWriter
CNumberObject* pLength = new CNumberObject(0);
// Только stream object добавляются в таблицу xref автоматически
pXref->Add((CObjectBase*)this);
if (bThis)
pXref->Add((CObjectBase*)this);
pXref->Add((CObjectBase*)pLength);
Add("Length", (CObjectBase*)pLength);
@ -852,7 +853,7 @@ namespace PdfWriter
unsigned int unMaxObjId = m_pPrev ? pPrev->m_arrEntries.size() + pPrev->m_unStartOffset : m_arrEntries.size() + m_unStartOffset;
m_pTrailer->Add("Size", unMaxObjId);
if (m_pPrev)
if (m_pPrev && pPrev->m_unAddr)
m_pTrailer->Add("Prev", pPrev->m_unAddr);
pStream->WriteStr("trailer\012");
@ -916,7 +917,7 @@ namespace PdfWriter
CDictObject* pTrailer = m_pTrailer;
pTrailer->Add("Type", "XRef");
pTrailer->Add("Size", unMaxObjId + 1);
if (m_pPrev)
if (m_pPrev && pPrev->m_unAddr)
pTrailer->Add("Prev", pPrev->m_unAddr);
CArrayObject* pW = new CArrayObject();
pTrailer->Add("W", pW);