| Index: core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp
|
| diff --git a/core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp
|
| index d3d55b91b5ec46a6777c65afd2ed95169ce7d66a..7acd368683e16eb144f83445ed2cdfb041d7f81e 100644
|
| --- a/core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp
|
| +++ b/core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp
|
| @@ -53,8 +53,8 @@ void CPDF_PageContentGenerator::GenerateContent() {
|
| if (pContent) {
|
| pPageDict->RemoveFor("Contents");
|
| }
|
| - CPDF_Stream* pStream = new CPDF_Stream(nullptr, 0, nullptr);
|
| - pStream->SetData(buf.GetBuffer(), buf.GetLength(), FALSE, FALSE);
|
| + CPDF_Stream* pStream = new CPDF_Stream;
|
| + pStream->SetData(buf.GetBuffer(), buf.GetLength());
|
| m_pDocument->AddIndirectObject(pStream);
|
| pPageDict->SetReferenceFor("Contents", m_pDocument, pStream->GetObjNum());
|
| }
|
| @@ -109,21 +109,25 @@ void CPDF_PageContentGenerator::ProcessForm(CFX_ByteTextBuf& buf,
|
| const uint8_t* data,
|
| uint32_t size,
|
| CFX_Matrix& matrix) {
|
| - if (!data || !size) {
|
| + if (!data || !size)
|
| return;
|
| - }
|
| - CPDF_Stream* pStream = new CPDF_Stream(nullptr, 0, nullptr);
|
| +
|
| CPDF_Dictionary* pFormDict = new CPDF_Dictionary;
|
| pFormDict->SetNameFor("Type", "XObject");
|
| pFormDict->SetNameFor("Subtype", "Form");
|
| +
|
| CFX_FloatRect bbox = m_pPage->GetPageBBox();
|
| matrix.TransformRect(bbox);
|
| pFormDict->SetRectFor("BBox", bbox);
|
| +
|
| + CPDF_Stream* pStream = new CPDF_Stream;
|
| pStream->InitStream(data, size, pFormDict);
|
| buf << "q " << matrix << " cm ";
|
| +
|
| CFX_ByteString name = RealizeResource(pStream, "XObject");
|
| buf << "/" << PDF_NameEncode(name) << " Do Q\n";
|
| }
|
| +
|
| void CPDF_PageContentGenerator::TransformContent(CFX_Matrix& matrix) {
|
| CPDF_Dictionary* pDict = m_pPage->m_pFormDict;
|
| CPDF_Object* pContent =
|
| @@ -164,8 +168,8 @@ void CPDF_PageContentGenerator::TransformContent(CFX_Matrix& matrix) {
|
| contentStream.LoadAllData(pStream);
|
| ProcessForm(buf, contentStream.GetData(), contentStream.GetSize(), matrix);
|
| }
|
| - CPDF_Stream* pStream = new CPDF_Stream(nullptr, 0, nullptr);
|
| - pStream->SetData(buf.GetBuffer(), buf.GetLength(), FALSE, FALSE);
|
| + CPDF_Stream* pStream = new CPDF_Stream;
|
| + pStream->SetData(buf.GetBuffer(), buf.GetLength());
|
| m_pDocument->AddIndirectObject(pStream);
|
| m_pPage->m_pFormDict->SetReferenceFor("Contents", m_pDocument,
|
| pStream->GetObjNum());
|
|
|