![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/emscripten/tests/poppler/poppler/ |
Upload File : |
//======================================================================== // // PDFDocFactory.cc // // This file is licensed under the GPLv2 or later // // Copyright 2010 Hib Eris <hib@hiberis.nl> // Copyright 2010 Albert Astals Cid <aacid@kde.org> // //======================================================================== #include <config.h> #include "PDFDocFactory.h" #include "goo/GooList.h" #include "goo/GooString.h" #include "PDFDoc.h" #include "LocalPDFDocBuilder.h" #include "StdinPDFDocBuilder.h" #if ENABLE_LIBCURL #include "CurlPDFDocBuilder.h" #endif #include "ErrorCodes.h" //------------------------------------------------------------------------ // PDFDocFactory //------------------------------------------------------------------------ PDFDocFactory::PDFDocFactory(GooList *pdfDocBuilders) { if (pdfDocBuilders) { builders = pdfDocBuilders; } else { builders = new GooList(); } #if ENABLE_LIBCURL builders->insert(0, new CurlPDFDocBuilder()); #endif builders->insert(0, new StdinPDFDocBuilder()); builders->insert(0, new LocalPDFDocBuilder()); } PDFDocFactory::~PDFDocFactory() { if (builders) { deleteGooList(builders, PDFDocBuilder); } } PDFDoc * PDFDocFactory::createPDFDoc(const GooString &uri, GooString *ownerPassword, GooString *userPassword, void *guiDataA) { for (int i = builders->getLength() - 1; i >= 0 ; i--) { PDFDocBuilder *builder = (PDFDocBuilder *) builders->get(i); if (builder->supports(uri)) { return builder->buildPDFDoc(uri, ownerPassword, userPassword, guiDataA); } } error(-1, "Cannot handle URI '%s'.", uri.getCString()); GooString *fileName = uri.copy(); return PDFDoc::ErrorPDFDoc(errOpenFile, fileName); } void PDFDocFactory::registerPDFDocBuilder(PDFDocBuilder *pdfDocBuilder) { builders->append(pdfDocBuilder); }