X-Git-Url: http://downloads.foxitsoftware.com/web/?p=pdfium.git;a=blobdiff_plain;f=fpdfsdk%2Fsrc%2Ffpdfsave.cpp;h=54c9253d2e4ed20e4b4efb97cc6f18445d2903ce;hp=68b9b4c933ea1efeed837efca8ddb4fc171844ba;hb=2a0a26c94ef8131ee29ac4d466c42593cf2ff005;hpb=ac19d2d8f64ab87577f167e0a8df075a7fe3ffdc diff --git a/fpdfsdk/src/fpdfsave.cpp b/fpdfsdk/src/fpdfsave.cpp index 68b9b4c..54c9253 100644 --- a/fpdfsdk/src/fpdfsave.cpp +++ b/fpdfsdk/src/fpdfsave.cpp @@ -1,7 +1,7 @@ // Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. - + // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #include "../../public/fpdf_edit.h" @@ -14,84 +14,75 @@ #include #endif -class CFX_IFileWrite FX_FINAL : public IFX_StreamWrite -{ - -public: - CFX_IFileWrite(); - FX_BOOL Init( FPDF_FILEWRITE * pFileWriteStruct ); - virtual FX_BOOL WriteBlock(const void* pData, size_t size) FX_OVERRIDE; - virtual void Release() FX_OVERRIDE {} - -protected: - FPDF_FILEWRITE* m_pFileWriteStruct; +class CFX_IFileWrite final : public IFX_StreamWrite { + public: + CFX_IFileWrite(); + FX_BOOL Init(FPDF_FILEWRITE* pFileWriteStruct); + virtual FX_BOOL WriteBlock(const void* pData, size_t size) override; + virtual void Release() override {} + + protected: + FPDF_FILEWRITE* m_pFileWriteStruct; }; -CFX_IFileWrite::CFX_IFileWrite() -{ - m_pFileWriteStruct = NULL; +CFX_IFileWrite::CFX_IFileWrite() { + m_pFileWriteStruct = NULL; } -FX_BOOL CFX_IFileWrite::Init( FPDF_FILEWRITE * pFileWriteStruct ) -{ - if (!pFileWriteStruct) - return FALSE; - else - { - m_pFileWriteStruct = pFileWriteStruct; - } - return TRUE; -} +FX_BOOL CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) { + if (!pFileWriteStruct) + return FALSE; -FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size) -{ - if (m_pFileWriteStruct) - { - m_pFileWriteStruct->WriteBlock( m_pFileWriteStruct, pData, size ); - return TRUE; - } - else - return FALSE; + m_pFileWriteStruct = pFileWriteStruct; + return TRUE; } -FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite,FPDF_DWORD flags, FPDF_BOOL bSetVersion, - int fileVerion) -{ - CPDF_Document* pDoc = (CPDF_Document*)document; - if (!pDoc) - return 0; - - if ( flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY ) - { - flags = 0; - } - - CPDF_Creator FileMaker(pDoc); - if(bSetVersion) - FileMaker.SetFileVersion(fileVerion); - if(flags == FPDF_REMOVE_SECURITY) - { - flags = 0; - FileMaker.RemoveSecurity(); - } - CFX_IFileWrite* pStreamWrite = NULL; - FX_BOOL bRet; - pStreamWrite = new CFX_IFileWrite; - pStreamWrite->Init( pFileWrite ); - bRet = FileMaker.Create(pStreamWrite, flags); - delete pStreamWrite; - return bRet; +FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size) { + if (!m_pFileWriteStruct) + return FALSE; + + m_pFileWriteStruct->WriteBlock(m_pFileWriteStruct, pData, size); + return TRUE; } -DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy( FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, - FPDF_DWORD flags ) -{ - return _FPDF_Doc_Save(document, pFileWrite, flags, FALSE , 0); +FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, + FPDF_FILEWRITE* pFileWrite, + FPDF_DWORD flags, + FPDF_BOOL bSetVersion, + int fileVerion) { + CPDF_Document* pDoc = (CPDF_Document*)document; + if (!pDoc) + return 0; + + if (flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY) { + flags = 0; + } + + CPDF_Creator FileMaker(pDoc); + if (bSetVersion) + FileMaker.SetFileVersion(fileVerion); + if (flags == FPDF_REMOVE_SECURITY) { + flags = 0; + FileMaker.RemoveSecurity(); + } + CFX_IFileWrite* pStreamWrite = NULL; + FX_BOOL bRet; + pStreamWrite = new CFX_IFileWrite; + pStreamWrite->Init(pFileWrite); + bRet = FileMaker.Create(pStreamWrite, flags); + delete pStreamWrite; + return bRet; } +DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(FPDF_DOCUMENT document, + FPDF_FILEWRITE* pFileWrite, + FPDF_DWORD flags) { + return _FPDF_Doc_Save(document, pFileWrite, flags, FALSE, 0); +} -DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion( FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, - FPDF_DWORD flags, int fileVersion) -{ - return _FPDF_Doc_Save(document, pFileWrite, flags, TRUE , fileVersion); +DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document, + FPDF_FILEWRITE* pFileWrite, + FPDF_DWORD flags, + int fileVersion) { + return _FPDF_Doc_Save(document, pFileWrite, flags, TRUE, fileVersion); }